mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-25 01:30:38 +00:00
composition: set next_eos_seqnum when we get seeked too.
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
This commit is contained in:
parent
48ed8c6d0e
commit
c391310539
1 changed files with 4 additions and 7 deletions
|
@ -1286,7 +1286,6 @@ gnl_composition_event_handler (GstPad * ghostpad, GstObject * parent,
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
GNL_OBJECT (comp)->wanted_seqnum = gst_event_get_seqnum (event);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case GST_EVENT_QOS:
|
case GST_EVENT_QOS:
|
||||||
|
@ -1298,7 +1297,7 @@ gnl_composition_event_handler (GstPad * ghostpad, GstObject * parent,
|
||||||
|
|
||||||
gst_event_parse_qos (event, &qostype, &prop, &diff, ×tamp);
|
gst_event_parse_qos (event, &qostype, &prop, &diff, ×tamp);
|
||||||
|
|
||||||
GST_INFO_OBJECT (comp,
|
GST_DEBUG_OBJECT (comp,
|
||||||
"timestamp:%" GST_TIME_FORMAT " segment.start:%" GST_TIME_FORMAT
|
"timestamp:%" GST_TIME_FORMAT " segment.start:%" GST_TIME_FORMAT
|
||||||
" segment.stop:%" GST_TIME_FORMAT " segment_start%" GST_TIME_FORMAT
|
" segment.stop:%" GST_TIME_FORMAT " segment_start%" GST_TIME_FORMAT
|
||||||
" segment_stop:%" GST_TIME_FORMAT, GST_TIME_ARGS (timestamp),
|
" segment_stop:%" GST_TIME_FORMAT, GST_TIME_ARGS (timestamp),
|
||||||
|
@ -1356,7 +1355,7 @@ gnl_composition_event_handler (GstPad * ghostpad, GstObject * parent,
|
||||||
/* Substract the amount of running time we've already outputted
|
/* Substract the amount of running time we've already outputted
|
||||||
* until the currently configured pipeline from the QoS timestamp.*/
|
* until the currently configured pipeline from the QoS timestamp.*/
|
||||||
timestamp -= curdiff;
|
timestamp -= curdiff;
|
||||||
GST_INFO_OBJECT (comp,
|
GST_DEBUG_OBJECT (comp,
|
||||||
"Creating new QoS event with timestamp %" GST_TIME_FORMAT,
|
"Creating new QoS event with timestamp %" GST_TIME_FORMAT,
|
||||||
GST_TIME_ARGS (timestamp));
|
GST_TIME_ARGS (timestamp));
|
||||||
event = gst_event_new_qos (qostype, prop, diff, timestamp);
|
event = gst_event_new_qos (qostype, prop, diff, timestamp);
|
||||||
|
@ -2578,13 +2577,14 @@ _set_real_eos_seqnum_from_seek (GnlComposition * comp, GstEvent * event)
|
||||||
|
|
||||||
if ((!reverse && priv->segment_stop < object->stop) ||
|
if ((!reverse && priv->segment_stop < object->stop) ||
|
||||||
(reverse && priv->segment_start > object->start)) {
|
(reverse && priv->segment_start > object->start)) {
|
||||||
|
priv->next_eos_seqnum = stack_seqnum;
|
||||||
g_atomic_int_set (&priv->real_eos_seqnum, 0);
|
g_atomic_int_set (&priv->real_eos_seqnum, 0);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
priv->next_eos_seqnum = stack_seqnum;
|
||||||
g_atomic_int_set (&priv->real_eos_seqnum, stack_seqnum);
|
g_atomic_int_set (&priv->real_eos_seqnum, stack_seqnum);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -2681,9 +2681,6 @@ update_pipeline (GnlComposition * comp, GstClockTime currenttime,
|
||||||
toplevel_seek = get_new_seek_event (comp, TRUE, updatestoponly);
|
toplevel_seek = get_new_seek_event (comp, TRUE, updatestoponly);
|
||||||
_set_real_eos_seqnum_from_seek (comp, toplevel_seek);
|
_set_real_eos_seqnum_from_seek (comp, toplevel_seek);
|
||||||
|
|
||||||
/* All EOS received from now on will be ignored */
|
|
||||||
priv->next_eos_seqnum = gst_event_get_seqnum (toplevel_seek);
|
|
||||||
|
|
||||||
_remove_all_update_sources (comp);
|
_remove_all_update_sources (comp);
|
||||||
|
|
||||||
/* If stacks are different, unlink/relink objects */
|
/* If stacks are different, unlink/relink objects */
|
||||||
|
|
Loading…
Reference in a new issue