diff options
author | Thiago Santos <thiago.sousa.santos@collabora.co.uk> | 2011-01-25 18:10:18 -0300 |
---|---|---|
committer | Thiago Santos <thiago.sousa.santos@collabora.co.uk> | 2011-01-26 14:31:12 -0300 |
commit | 6395b4590886cf8d02d7198f8c4968c19a137848 (patch) | |
tree | e8364aad475addb5aa8dc645f93897135d4def04 | |
parent | 3da135ce02b37bf16b9b6f5a56af41d4c395b5c8 (diff) |
camerabin2: Handle videosink states more carefully
When going to ready, camerabin2 could create an empty file
if the videosink was put to ready. This patch only puts videosink
to ready on the PAUSED_TO_READY state change if it is on PAUSED
or PLAYING.
-rw-r--r-- | gst/camerabin2/gstcamerabin2.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gst/camerabin2/gstcamerabin2.c b/gst/camerabin2/gstcamerabin2.c index 8b82c7fbb..22d37e993 100644 --- a/gst/camerabin2/gstcamerabin2.c +++ b/gst/camerabin2/gstcamerabin2.c @@ -630,8 +630,10 @@ gst_camera_bin_change_state (GstElement * element, GstStateChange trans) switch (trans) { case GST_STATE_CHANGE_PAUSED_TO_READY: + if (GST_STATE (camera->videosink) >= GST_STATE_PAUSED) + gst_element_set_state (camera->videosink, GST_STATE_READY); + gst_tag_setter_reset_tags (GST_TAG_SETTER (camera)); - gst_element_set_state (camera->videosink, GST_STATE_READY); break; case GST_STATE_CHANGE_READY_TO_NULL: gst_element_set_state (camera->videosink, GST_STATE_NULL); |