mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
baseparse: Fix seqnum handling in pull mode
After a seek in pull mode, we should use the seek seqnum for all following operations, not some random seqnums Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/577>
This commit is contained in:
parent
58558bb90c
commit
bc641acb9f
1 changed files with 7 additions and 1 deletions
|
@ -3830,7 +3830,12 @@ gst_base_parse_sink_activate_mode (GstPad * pad, GstObject * parent,
|
||||||
case GST_PAD_MODE_PULL:
|
case GST_PAD_MODE_PULL:
|
||||||
if (active) {
|
if (active) {
|
||||||
GstEvent *ev = gst_event_new_segment (&parse->segment);
|
GstEvent *ev = gst_event_new_segment (&parse->segment);
|
||||||
parse->priv->segment_seqnum = gst_event_get_seqnum (ev);
|
|
||||||
|
if (parse->priv->segment_seqnum != GST_SEQNUM_INVALID)
|
||||||
|
gst_event_set_seqnum (ev, parse->priv->segment_seqnum);
|
||||||
|
else
|
||||||
|
parse->priv->segment_seqnum = gst_event_get_seqnum (ev);
|
||||||
|
|
||||||
parse->priv->pending_events =
|
parse->priv->pending_events =
|
||||||
g_list_prepend (parse->priv->pending_events, ev);
|
g_list_prepend (parse->priv->pending_events, ev);
|
||||||
result = TRUE;
|
result = TRUE;
|
||||||
|
@ -4608,6 +4613,7 @@ gst_base_parse_handle_seek (GstBaseParse * parse, GstEvent * event)
|
||||||
gst_event_parse_seek (event, &rate, &format, &flags,
|
gst_event_parse_seek (event, &rate, &format, &flags,
|
||||||
&start_type, &start, &stop_type, &stop);
|
&start_type, &start, &stop_type, &stop);
|
||||||
seqnum = gst_event_get_seqnum (event);
|
seqnum = gst_event_get_seqnum (event);
|
||||||
|
parse->priv->segment_seqnum = seqnum;
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (parse, "seek to format %s, rate %f, "
|
GST_DEBUG_OBJECT (parse, "seek to format %s, rate %f, "
|
||||||
"start type %d at %" GST_TIME_FORMAT ", end type %d at %"
|
"start type %d at %" GST_TIME_FORMAT ", end type %d at %"
|
||||||
|
|
Loading…
Reference in a new issue