From 39bad1d6ca2600eb9d2ad46e3842b8a564cf6c43 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Thu, 16 Feb 2012 16:30:02 -0300 Subject: [PATCH] wrappercamerabinsrc: Put source to null when resetting caps 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 | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gst/camerabin2/gstwrappercamerabinsrc.c b/gst/camerabin2/gstwrappercamerabinsrc.c index 944cd2c2ed..03f775f92e 100644 --- a/gst/camerabin2/gstwrappercamerabinsrc.c +++ b/gst/camerabin2/gstwrappercamerabinsrc.c @@ -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;