summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Santos <thiago.sousa.santos@collabora.co.uk>2011-01-25 18:10:18 -0300
committerThiago Santos <thiago.sousa.santos@collabora.co.uk>2011-01-26 14:31:12 -0300
commit6395b4590886cf8d02d7198f8c4968c19a137848 (patch)
treee8364aad475addb5aa8dc645f93897135d4def04
parent3da135ce02b37bf16b9b6f5a56af41d4c395b5c8 (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.c4
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);