wrappercamerabinsrc: Put source in NULL when it fails changing state
authorThiago Santos <thiago.sousa.santos@collabora.com>
Thu, 16 Feb 2012 04:12:58 +0000 (01:12 -0300)
committerThiago Santos <thiago.sousa.santos@collabora.com>
Thu, 16 Feb 2012 04:30:23 +0000 (01:30 -0300)
When source is being reset to change caps, check the return of
the state syncing function to avoid leaving the source in an
unconsistent state.

gst/camerabin2/gstwrappercamerabinsrc.c

index 2b45342..944cd2c 100644 (file)
@@ -162,7 +162,10 @@ gst_wrapper_camera_bin_reset_video_src_caps (GstWrapperCameraBinSrc * self,
     self->drop_newseg = TRUE;
 
     GST_DEBUG_OBJECT (self, "Bringing source up");
-    gst_element_sync_state_with_parent (self->src_vid_src);
+    if (!gst_element_sync_state_with_parent (self->src_vid_src)) {
+      GST_WARNING_OBJECT (self, "Failed to reset source caps");
+      gst_element_set_state (self->src_vid_src, GST_STATE_NULL);
+    }
 
     if (clock) {
       gst_element_set_clock (self->src_vid_src, clock);