funnel: Always push all sticky events whenever we forward a serialized event

Otherwise downstream will have an inconsistent set of sticky events at this
point, e.g. when a TAG event is pushed and downstream wants to relate it to
the stream by looking at the current STREAM_START event.

https://bugzilla.gnome.org/show_bug.cgi?id=768526
This commit is contained in:
Sebastian Dröge 2016-07-07 19:41:49 +03:00
parent 25bf63d6f7
commit c56e1d18c1

View file

@ -397,8 +397,12 @@ 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. */
}
if (forward && GST_EVENT_IS_SERIALIZED (event)) {
/* If no data is coming and we receive serialized event, need to forward all sticky events.
* Otherwise downstream has an inconsistent set of sticky events when
* handling the new event. */
unlock = TRUE;
GST_PAD_STREAM_LOCK (funnel->srcpad);