From 41a4b683900e1b81f804848c40f8d920a0478507 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Sat, 15 Aug 2015 10:34:14 -0300 Subject: [PATCH] qtdemux: only look for more samples in moofs in pull-mode For playback of some fragmented formats with qtdemux it will try to look for the next moof after finishing one but it is only possible for pull-mode. For playback of streaming fragmented formats such as DASH it should just not try to look for another moof but instead wait for more data. https://bugzilla.gnome.org/show_bug.cgi?id=752602 https://bugzilla.gnome.org/show_bug.cgi?id=752603 --- gst/isomp4/qtdemux.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index 288848c61a..3e7a47b04f 100644 --- a/gst/isomp4/qtdemux.c +++ b/gst/isomp4/qtdemux.c @@ -7769,11 +7769,13 @@ done: /* if index has been completely parsed, free data that is no-longer needed */ if (n + 1 == stream->n_samples) { gst_qtdemux_stbl_free (stream); - GST_DEBUG_OBJECT (qtdemux, - "parsed all available samples; checking for more"); - while (n + 1 == stream->n_samples) - if (qtdemux_add_fragmented_samples (qtdemux) != GST_FLOW_OK) - break; + GST_DEBUG_OBJECT (qtdemux, "parsed all available samples;"); + if (qtdemux->pullbased) { + GST_DEBUG_OBJECT (qtdemux, "checking for more samples"); + while (n + 1 == stream->n_samples) + if (qtdemux_add_fragmented_samples (qtdemux) != GST_FLOW_OK) + break; + } } GST_OBJECT_UNLOCK (qtdemux);