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
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);