From 524c478fa11bef0f97c08d9af3ced8ea523a6017 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Fri, 18 Nov 2011 03:31:32 -0300 Subject: [PATCH] camerabin2: Also reset video/audio filters before capturing Video and audio custom filter element should also be reset before starting a new capture, otherwise we get wrong-state errors --- gst/camerabin2/gstcamerabin2.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gst/camerabin2/gstcamerabin2.c b/gst/camerabin2/gstcamerabin2.c index 492c4eb411..dc310302c7 100644 --- a/gst/camerabin2/gstcamerabin2.c +++ b/gst/camerabin2/gstcamerabin2.c @@ -984,6 +984,10 @@ gst_camera_bin_video_reset_elements (gpointer u_data) /* reset element states to clear eos/flushing pads */ gst_element_set_state (camerabin->video_encodebin, GST_STATE_READY); gst_element_set_state (camerabin->videobin_capsfilter, GST_STATE_READY); + if (camerabin->video_filter) { + gst_element_set_state (camerabin->video_filter, GST_STATE_READY); + gst_element_sync_state_with_parent (camerabin->video_filter); + } gst_element_sync_state_with_parent (camerabin->videobin_capsfilter); gst_element_sync_state_with_parent (camerabin->video_encodebin); @@ -999,6 +1003,11 @@ gst_camera_bin_video_reset_elements (gpointer u_data) * and running until we really need them */ gst_element_set_state (camerabin->audio_src, GST_STATE_NULL); + if (camerabin->audio_filter) { + gst_element_set_state (camerabin->audio_filter, GST_STATE_READY); + gst_element_sync_state_with_parent (camerabin->audio_filter); + } + gst_element_sync_state_with_parent (camerabin->audio_capsfilter); gst_element_sync_state_with_parent (camerabin->audio_volume);