wrappercamerabinsrc: Put source to null when resetting caps
authorThiago Santos <thiago.sousa.santos@collabora.com>
Thu, 16 Feb 2012 19:30:02 +0000 (16:30 -0300)
committerThiago Santos <thiago.sousa.santos@collabora.com>
Fri, 17 Feb 2012 01:51:21 +0000 (22:51 -0300)
It seems that v4l2src isn't happy when switching formats on ready
state, it works when putting it to NULL. Keep this workaround in
wrappercamerabinsrc while v4l2src isn't fixed.

Fixes #849832

gst/camerabin2/gstwrappercamerabinsrc.c

index 944cd2c..03f775f 100644 (file)
@@ -156,7 +156,13 @@ gst_wrapper_camera_bin_reset_video_src_caps (GstWrapperCameraBinSrc * self,
     clock = gst_element_get_clock (self->src_vid_src);
     base_time = gst_element_get_base_time (self->src_vid_src);
 
-    gst_element_set_state (self->src_vid_src, GST_STATE_READY);
+    /* Ideally, we should only need to get the source to READY here,
+     * but it seems v4l2src isn't happy with this. Putting to NULL makes
+     * it work.
+     *
+     * TODO fix this in v4l2src
+     */
+    gst_element_set_state (self->src_vid_src, GST_STATE_NULL);
     set_capsfilter_caps (self, caps);
 
     self->drop_newseg = TRUE;