qtdemux: avoid looping reading the 'moof' atom forever
authorThiago Santos <thiagoss@osg.samsung.com>
Tue, 24 Feb 2015 13:50:52 +0000 (10:50 -0300)
committerThiago Santos <thiagoss@osg.samsung.com>
Mon, 6 Jul 2015 14:00:20 +0000 (11:00 -0300)
It gets stuck if it only finds a moof and no mfra/mfro or moov
atoms. Skip the moof to continue the parsing to have it either
play or error out.

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

gst/isomp4/qtdemux.c

index 430d5f6..04cc4e4 100644 (file)
@@ -3313,6 +3313,8 @@ gst_qtdemux_loop_state_header (GstQTDemux * qtdemux)
       }
       if (qtdemux_pull_mfro_mfra (qtdemux)) {
         /* FIXME */
+      } else {
+        qtdemux->offset += length;      /* skip moof and keep going */
       }
       if (qtdemux->got_moov) {
         GST_INFO_OBJECT (qtdemux, "moof header, got moov, done with headers");