diff options
author | Nicolas Dufresne <nicolas.dufresne@collabora.com> | 2017-09-07 12:08:40 -0400 |
---|---|---|
committer | Thibault Saunier <thibault.saunier@osg.samsung.com> | 2017-09-19 11:24:22 -0300 |
commit | 5dd5b163aeb2539a2134c00ab15eabe5a322357d (patch) | |
tree | 67af55822a9f7e6fb7485a90f0fdb5420a929c44 | |
parent | faf44ac0e2705f2f4e4c17199642605ae62824eb (diff) |
nlecomposition: Always execute seeks
We have an optiominisation to avoid double seeks when a seek is passed
the end of the current stack. The problem, is that we no longer flush
the pipeline when this code is reached. This patch comments out this
optimization adding a FIXME. As mention, flushing the stack instead of
seeking would work, but does not seem trivial considering all the
mechanic inplace to forward or not the events.
https://bugzilla.gnome.org/show_bug.cgi?id=787405
-rw-r--r-- | plugins/nle/nlecomposition.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/plugins/nle/nlecomposition.c b/plugins/nle/nlecomposition.c index 61159cb188..151ddc0f8e 100644 --- a/plugins/nle/nlecomposition.c +++ b/plugins/nle/nlecomposition.c @@ -552,6 +552,10 @@ _seek_pipeline_func (NleComposition * comp, SeekData * seekd) GST_DEBUG_OBJECT (seekd->comp, "Segment now has flags:%d", priv->segment->flags); + /* FIXME: The idea was to avoid seeking on a stack if we know we will endup + * passed the end, but then we loose the flush, wich leads to hangs. Long + * term, we should just flush the stack instead to avoid the double seek. */ +#if 0 if (priv->segment->start >= NLE_OBJECT_STOP (seekd->comp)) { GST_INFO_OBJECT (seekd->comp, "Start %" GST_TIME_FORMAT " > comp->stop: %" GST_TIME_FORMAT @@ -560,6 +564,7 @@ _seek_pipeline_func (NleComposition * comp, SeekData * seekd) GST_FIXME_OBJECT (seekd->comp, "HANDLE error async!"); return; } +#endif _post_start_composition_update (seekd->comp, gst_event_get_seqnum (seekd->event), COMP_UPDATE_STACK_ON_SEEK); |