mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-07 07:58:51 +00:00
composition: Handle the case were we get an EOS right after a segment
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
This commit is contained in:
parent
f0dbc0fcd6
commit
92105a17a5
1 changed files with 10 additions and 0 deletions
|
@ -239,6 +239,8 @@ _gnl_composition_add_entry (GnlComposition * comp, GnlObject * object);
|
||||||
static gboolean
|
static gboolean
|
||||||
_gnl_composition_remove_entry (GnlComposition * comp, GnlObject * object);
|
_gnl_composition_remove_entry (GnlComposition * comp, GnlObject * object);
|
||||||
static void _deactivate_stack (GnlComposition * comp);
|
static void _deactivate_stack (GnlComposition * comp);
|
||||||
|
static GstPadProbeReturn _add_emit_commited_and_restart_task (GnlComposition *
|
||||||
|
comp);
|
||||||
|
|
||||||
|
|
||||||
/* COMP_REAL_START: actual position to start current playback at. */
|
/* COMP_REAL_START: actual position to start current playback at. */
|
||||||
|
@ -1213,6 +1215,14 @@ ghost_event_probe_handler (GstPad * ghostpad G_GNUC_UNUSED,
|
||||||
GST_ERROR_OBJECT (comp, "Got EOS, last EOS seqnum id : %i current "
|
GST_ERROR_OBJECT (comp, "Got EOS, last EOS seqnum id : %i current "
|
||||||
"seq num is: %i", comp->priv->real_eos_seqnum, seqnum);
|
"seq num is: %i", comp->priv->real_eos_seqnum, seqnum);
|
||||||
|
|
||||||
|
if (priv->commited_probeid && comp->priv->awaited_segment_seqnum == 0) {
|
||||||
|
|
||||||
|
GST_INFO_OBJECT (comp, "We got an EOS right after seeing the right"
|
||||||
|
" segment, restarting task");
|
||||||
|
gst_pad_remove_probe (GNL_OBJECT_SRC (comp), priv->commited_probeid);
|
||||||
|
_add_emit_commited_and_restart_task (comp);
|
||||||
|
}
|
||||||
|
|
||||||
if (g_atomic_int_compare_and_exchange (&comp->priv->real_eos_seqnum,
|
if (g_atomic_int_compare_and_exchange (&comp->priv->real_eos_seqnum,
|
||||||
seqnum, 1)) {
|
seqnum, 1)) {
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue