From bda406c42f4005dd07e7997a1a2443a1543d69f6 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 4 Apr 2013 19:16:23 +0200 Subject: [PATCH] multiqueue: start pushing again on RECONFIGURE When we got NOT_LINKED before and we receive a RECONFIGURE event, start pushing again on the source pad. See https://bugzilla.gnome.org/show_bug.cgi?id=676304 --- plugins/elements/gstmultiqueue.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/plugins/elements/gstmultiqueue.c b/plugins/elements/gstmultiqueue.c index 90f452e..e22b6d0 100644 --- a/plugins/elements/gstmultiqueue.c +++ b/plugins/elements/gstmultiqueue.c @@ -1657,8 +1657,24 @@ static gboolean gst_multi_queue_src_event (GstPad * pad, GstObject * parent, GstEvent * event) { GstSingleQueue *sq = gst_pad_get_element_private (pad); + GstMultiQueue *mq = sq->mqueue; + gboolean ret; + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_RECONFIGURE: + GST_MULTI_QUEUE_MUTEX_LOCK (mq); + if (sq->srcresult == GST_FLOW_NOT_LINKED) + sq->srcresult = GST_FLOW_OK; + GST_MULTI_QUEUE_MUTEX_UNLOCK (mq); + + ret = gst_pad_push_event (sq->sinkpad, event); + break; + default: + ret = gst_pad_push_event (sq->sinkpad, event); + break; + } - return gst_pad_push_event (sq->sinkpad, event); + return ret; } static gboolean -- 2.7.4