From e8c782d119eccf364fa24812cdc90c40f60d65d6 Mon Sep 17 00:00:00 2001 From: Nayana Topolsky Date: Thu, 21 Feb 2019 13:29:31 +0100 Subject: [PATCH] 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 --- gst/gstpad.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gst/gstpad.c b/gst/gstpad.c index bc4bb77c55..456bf37752 100644 --- a/gst/gstpad.c +++ b/gst/gstpad.c @@ -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: