summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2017-09-07 12:08:40 -0400
committerThibault Saunier <thibault.saunier@osg.samsung.com>2017-09-19 11:24:22 -0300
commit5dd5b163aeb2539a2134c00ab15eabe5a322357d (patch)
tree67af55822a9f7e6fb7485a90f0fdb5420a929c44
parentfaf44ac0e2705f2f4e4c17199642605ae62824eb (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.c5
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);