summaryrefslogtreecommitdiff
path: root/plugins/elements/gstfunnel.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/elements/gstfunnel.c')
-rw-r--r--plugins/elements/gstfunnel.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/plugins/elements/gstfunnel.c b/plugins/elements/gstfunnel.c
index f5dedcca8..6c6af2baa 100644
--- a/plugins/elements/gstfunnel.c
+++ b/plugins/elements/gstfunnel.c
@@ -317,6 +317,15 @@ gst_funnel_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
GST_OBJECT_LOCK (funnel);
fpad->got_eos = FALSE;
GST_OBJECT_UNLOCK (funnel);
+ } else if (GST_EVENT_TYPE (event) == GST_EVENT_GAP) {
+ /* If no data is coming and we receive GAP event, need to forward sticky events. */
+ unlock = TRUE;
+ GST_PAD_STREAM_LOCK (funnel->srcpad);
+ GST_OBJECT_LOCK (funnel);
+ gst_object_replace ((GstObject **) & funnel->last_sinkpad,
+ GST_OBJECT (pad));
+ GST_OBJECT_UNLOCK (funnel);
+ gst_pad_sticky_events_foreach (pad, forward_events, funnel->srcpad);
}
if (forward)