diff options
author | Thiago Santos <thiagoss@osg.samsung.com> | 2015-08-15 10:34:14 -0300 |
---|---|---|
committer | Thiago Santos <thiagoss@osg.samsung.com> | 2015-08-15 11:06:02 -0300 |
commit | 41a4b683900e1b81f804848c40f8d920a0478507 (patch) | |
tree | 386d9e76abf068aaefe931aeb066a116f91f274b /gst/isomp4 | |
parent | 64b06d1829493d9119022ed5e8476f3e9b486ec5 (diff) | |
download | gstreamer-plugins-good-41a4b683900e1b81f804848c40f8d920a0478507.tar.gz |
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
Diffstat (limited to 'gst/isomp4')
-rw-r--r-- | gst/isomp4/qtdemux.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index 288848c61..3e7a47b04 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); |