basevideoencoder: handle failures in start() and stop()

This commit is contained in:
Alessandro Decina 2011-10-31 11:36:06 +01:00 committed by Sebastian Dröge
parent f27ca88ecc
commit 247e410df0

View file

@ -899,7 +899,8 @@ gst_base_video_encoder_change_state (GstElement * element,
case GST_STATE_CHANGE_READY_TO_PAUSED:
gst_base_video_encoder_reset (base_video_encoder);
if (base_video_encoder_class->start) {
base_video_encoder_class->start (base_video_encoder);
if (!base_video_encoder_class->start (base_video_encoder))
goto start_error;
}
break;
default:
@ -912,7 +913,8 @@ gst_base_video_encoder_change_state (GstElement * element,
case GST_STATE_CHANGE_PAUSED_TO_READY:
gst_base_video_encoder_reset (base_video_encoder);
if (base_video_encoder_class->stop) {
base_video_encoder_class->stop (base_video_encoder);
if (!base_video_encoder_class->stop (base_video_encoder))
goto stop_error;
}
break;
default:
@ -920,6 +922,14 @@ gst_base_video_encoder_change_state (GstElement * element,
}
return ret;
start_error:
GST_WARNING_OBJECT (base_video_encoder, "failed to start");
return GST_STATE_CHANGE_FAILURE;
stop_error:
GST_WARNING_OBJECT (base_video_encoder, "failed to stop");
return GST_STATE_CHANGE_FAILURE;
}
/**