pad: clear sticky event tag upon stream-start

When playing gapless there were situations when some sticky events
like tags were stuck at some pad and then revived much later.
Therefore it is better to clear them upon stream-start.

Fixes #360
This commit is contained in:
Nayana Topolsky 2019-02-21 13:29:31 +01:00 committed by GStreamer Merge Bot
parent d8b8a13285
commit e8c782d119

View file

@ -5233,9 +5233,10 @@ store_sticky_event (GstPad * pad, GstEvent * event)
/* Unset the EOS flag when received STREAM_START event, so pad can
* store sticky event and then push it later */
if (type == GST_EVENT_STREAM_START) {
GST_LOG_OBJECT (pad, "Removing pending EOS and StreamGroupDone events");
GST_LOG_OBJECT (pad, "Removing pending EOS, StreamGroupDone, TAG events");
remove_event_by_type (pad, GST_EVENT_EOS);
remove_event_by_type (pad, GST_EVENT_STREAM_GROUP_DONE);
remove_event_by_type (pad, GST_EVENT_TAG);
GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_EOS);
}
@ -5778,6 +5779,7 @@ gst_pad_send_event_unchecked (GstPad * pad, GstEvent * event,
GST_LOG_OBJECT (pad, "Removing pending EOS events");
remove_event_by_type (pad, GST_EVENT_EOS);
remove_event_by_type (pad, GST_EVENT_STREAM_GROUP_DONE);
remove_event_by_type (pad, GST_EVENT_TAG);
GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_EOS);
break;
default: