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
This commit is contained in:
Wim Taymans 2013-09-09 15:11:51 +02:00
parent 7b2e002879
commit 9f9bcbc405

View file

@ -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;