wrappercamerabinsrc: Handle state change failures
authorThiago Santos <thiago.sousa.santos@collabora.co.uk>
Mon, 10 Jan 2011 18:19:04 +0000 (15:19 -0300)
committerThiago Santos <thiago.sousa.santos@collabora.co.uk>
Mon, 24 Jan 2011 17:50:29 +0000 (14:50 -0300)
When its internal element fails to change state, don't act as
if succeeded.

gst/camerabin2/gstwrappercamerabinsrc.c

index 9fec1e4..2f3d793 100644 (file)
@@ -942,6 +942,9 @@ gst_wrapper_camera_bin_src_change_state (GstElement * element,
 
   ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, trans);
 
+  if (ret == GST_STATE_CHANGE_FAILURE)
+    goto end;
+
   switch (trans) {
     case GST_STATE_CHANGE_READY_TO_NULL:
       gst_element_set_state (self->preview_pipeline->pipeline, GST_STATE_NULL);
@@ -954,6 +957,7 @@ gst_wrapper_camera_bin_src_change_state (GstElement * element,
       break;
   }
 
+end:
   return ret;
 }