From 9ac409df48a1c8af0e5084023dd699f493b4c94d Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 4 Apr 2013 19:07:29 +0200 Subject: [PATCH] queue2: 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/gstqueue2.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/plugins/elements/gstqueue2.c b/plugins/elements/gstqueue2.c index fbf610eefe..2d69a9130b 100644 --- a/plugins/elements/gstqueue2.c +++ b/plugins/elements/gstqueue2.c @@ -2655,6 +2655,21 @@ gst_queue2_handle_src_event (GstPad * pad, GstObject * parent, GstEvent * event) gst_event_unref (event); } break; + case GST_EVENT_RECONFIGURE: + GST_QUEUE2_MUTEX_LOCK (queue); + /* assume downstream is linked now and try to push again */ + if (queue->srcresult == GST_FLOW_NOT_LINKED) { + queue->srcresult = GST_FLOW_OK; + queue->sinkresult = GST_FLOW_OK; + if (GST_PAD_MODE (pad) == GST_PAD_MODE_PUSH) { + gst_pad_start_task (pad, (GstTaskFunction) gst_queue2_loop, pad, + NULL); + } + } + GST_QUEUE2_MUTEX_UNLOCK (queue); + + res = gst_pad_push_event (queue->sinkpad, event); + break; default: res = gst_pad_push_event (queue->sinkpad, event); break;