mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-22 05:56:31 +00:00
pad: Remove SEGMENT sticky events when flushing
When flushing, it is expected that upstream will send a SEGMENT event afterwards. This also avoids stray SEGMENT events from coming through after a flush.
This commit is contained in:
parent
b909061031
commit
418dcd7277
1 changed files with 3 additions and 1 deletions
|
@ -4464,6 +4464,7 @@ gst_pad_push_event_unchecked (GstPad * pad, GstEvent * event,
|
||||||
/* Remove sticky EOS events */
|
/* Remove sticky EOS events */
|
||||||
GST_LOG_OBJECT (pad, "Removing pending EOS events");
|
GST_LOG_OBJECT (pad, "Removing pending EOS events");
|
||||||
remove_event_by_type (pad, GST_EVENT_EOS);
|
remove_event_by_type (pad, GST_EVENT_EOS);
|
||||||
|
remove_event_by_type (pad, GST_EVENT_SEGMENT);
|
||||||
GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_EOS);
|
GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_EOS);
|
||||||
|
|
||||||
type |= GST_PAD_PROBE_TYPE_EVENT_FLUSH;
|
type |= GST_PAD_PROBE_TYPE_EVENT_FLUSH;
|
||||||
|
@ -4751,8 +4752,9 @@ gst_pad_send_event_unchecked (GstPad * pad, GstEvent * event,
|
||||||
GST_CAT_DEBUG_OBJECT (GST_CAT_EVENT, pad, "cleared flush flag");
|
GST_CAT_DEBUG_OBJECT (GST_CAT_EVENT, pad, "cleared flush flag");
|
||||||
}
|
}
|
||||||
/* Remove pending EOS events */
|
/* Remove pending EOS events */
|
||||||
GST_LOG_OBJECT (pad, "Removing pending EOS events");
|
GST_LOG_OBJECT (pad, "Removing pending EOS and SEGMENT events");
|
||||||
remove_event_by_type (pad, GST_EVENT_EOS);
|
remove_event_by_type (pad, GST_EVENT_EOS);
|
||||||
|
remove_event_by_type (pad, GST_EVENT_SEGMENT);
|
||||||
GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_EOS);
|
GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_EOS);
|
||||||
|
|
||||||
GST_OBJECT_UNLOCK (pad);
|
GST_OBJECT_UNLOCK (pad);
|
||||||
|
|
Loading…
Reference in a new issue