rtspconnection: Empty queue when flush.

Empty the watchs queue when calling
gst_rtsp_watch_set_flushing with flushing variabel is TRUE.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728772
This commit is contained in:
Göran Jönsson 2014-04-23 08:06:36 +02:00 committed by Wim Taymans
parent 6750531504
commit 9685e7a583

View file

@ -3807,7 +3807,7 @@ timeout:
*
* When @flushing is %TRUE, abort a call to gst_rtsp_watch_wait_backlog()
* and make sure gst_rtsp_watch_write_data() returns immediately with
* #GST_RTSP_EINTR.
* #GST_RTSP_EINTR. And empty the queue.
*
* Since: 1.4
*/
@ -3819,5 +3819,9 @@ gst_rtsp_watch_set_flushing (GstRTSPWatch * watch, gboolean flushing)
g_mutex_lock (&watch->mutex);
watch->flushing = flushing;
g_cond_signal (&watch->queue_not_full);
if (flushing == TRUE) {
g_queue_foreach (watch->messages, (GFunc) gst_rtsp_rec_free, NULL);
g_queue_clear (watch->messages);
}
g_mutex_unlock (&watch->mutex);
}