From d7c3be226cc808e049e3111ae32ff880b19bee00 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 19 Aug 2013 16:38:40 +0200 Subject: [PATCH] queue2: Clean up after the streaming thread has stopped https://bugzilla.gnome.org/show_bug.cgi?id=705835 --- plugins/elements/gstqueue2.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/elements/gstqueue2.c b/plugins/elements/gstqueue2.c index 2ed5475..bcdd497 100644 --- a/plugins/elements/gstqueue2.c +++ b/plugins/elements/gstqueue2.c @@ -3078,8 +3078,14 @@ gst_queue2_sink_activate_mode (GstPad * pad, GstObject * parent, GST_DEBUG_OBJECT (queue, "deactivating push mode"); queue->srcresult = GST_FLOW_FLUSHING; queue->sinkresult = GST_FLOW_FLUSHING; + GST_QUEUE2_MUTEX_UNLOCK (queue); + + /* wait until it is unblocked and clean up */ + GST_PAD_STREAM_LOCK (pad); + GST_QUEUE2_MUTEX_LOCK (queue); gst_queue2_locked_flush (queue, TRUE); GST_QUEUE2_MUTEX_UNLOCK (queue); + GST_PAD_STREAM_UNLOCK (pad); } result = TRUE; break; -- 2.7.4