qtdemux: only send initial gaps for non-fragmented streams
authorThiago Santos <thiagoss@osg.samsung.com>
Mon, 16 Nov 2015 13:58:32 +0000 (10:58 -0300)
committerThiago Santos <thiagoss@osg.samsung.com>
Tue, 17 Nov 2015 12:42:07 +0000 (09:42 -0300)
It would be unusual to have the header segment with an 'edts' atom
indicating gaps at the beginning when handling fragmented streams.

The header usually doesn't contain any timestamping information, this
should come from the playlist/manifest and the segments with media
in those scenarios.

https://bugzilla.gnome.org/show_bug.cgi?id=758171

gst/isomp4/qtdemux.c

index d89cfd0..f2c8c73 100644 (file)
@@ -5801,9 +5801,13 @@ gst_qtdemux_process_adapter (GstQTDemux * demux, gboolean force)
 
             demux->got_moov = TRUE;
             gst_qtdemux_check_send_pending_segment (demux);
-            for (n = 0; n < demux->n_streams; n++) {
-              gst_qtdemux_stream_send_initial_gap_segments (demux,
-                  demux->streams[n]);
+
+            /* fragmented streams headers shouldn't contain edts atoms */
+            if (!demux->fragmented) {
+              for (n = 0; n < demux->n_streams; n++) {
+                gst_qtdemux_stream_send_initial_gap_segments (demux,
+                    demux->streams[n]);
+              }
             }
 
             g_node_destroy (demux->moov_node);