From 9f9bcbc40578847821412e6949984cdc96ebf77a Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 9 Sep 2013 15:11:51 +0200 Subject: [PATCH] rtspsrc: only wait if we flushed Only wait for the STREAM_LOCK when we flushed something when sending a command for PAUSED or PLAYING. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=707611 --- gst/rtsp/gstrtspsrc.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index aa8ba98d5e..2be6543c5a 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -7102,10 +7102,11 @@ gst_rtspsrc_change_state (GstElement * element, GstStateChange transition) case GST_STATE_CHANGE_PAUSED_TO_PLAYING: case GST_STATE_CHANGE_PLAYING_TO_PAUSED: /* unblock the tcp tasks and make the loop waiting */ - gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_WAIT, CMD_LOOP); - /* make sure it is waiting before we send PAUSE or PLAY below */ - GST_RTSP_STREAM_LOCK (rtspsrc); - GST_RTSP_STREAM_UNLOCK (rtspsrc); + if (gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_WAIT, CMD_LOOP)) { + /* make sure it is waiting before we send PAUSE or PLAY below */ + GST_RTSP_STREAM_LOCK (rtspsrc); + GST_RTSP_STREAM_UNLOCK (rtspsrc); + } break; case GST_STATE_CHANGE_PAUSED_TO_READY: break;