summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Santos <thiagoss@osg.samsung.com>2015-08-15 10:34:14 -0300
committerThiago Santos <thiagoss@osg.samsung.com>2015-08-15 11:06:02 -0300
commit41a4b683900e1b81f804848c40f8d920a0478507 (patch)
tree386d9e76abf068aaefe931aeb066a116f91f274b
parent64b06d1829493d9119022ed5e8476f3e9b486ec5 (diff)
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
-rw-r--r--gst/isomp4/qtdemux.c12
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);