asfdemux; Don't assume index is present at end of file
authorEdward Hervey <edward@centricular.com>
Tue, 27 Jun 2017 08:25:42 +0000 (10:25 +0200)
committerEdward Hervey <bilboed@bilboed.com>
Tue, 27 Jun 2017 08:41:42 +0000 (10:41 +0200)
Some files have garbage at the end of the file, don't error out if we don't
find the index there.

Reverts back to previous behaviour (where corrupted/missing indexex were
not a fatal error).

Regression introduced in 97294eb8bbed1b9dad7d3f2c52dd69eb1812cc06

gst/asfdemux/gstasfdemux.c

index c7fa0d4..89404dd 100644 (file)
@@ -1090,9 +1090,12 @@ gst_asf_demux_pull_indices (GstASFDemux * demux)
     gst_buffer_map (buf, &map, GST_MAP_READ);
     g_assert (map.size >= 16 + 8);
     if (!asf_demux_peek_object (demux, map.data, 16 + 8, &obj, TRUE)) {
+      GST_DEBUG_OBJECT (demux, "No valid object, corrupted index, ignoring");
+      GST_MEMDUMP_OBJECT (demux, "Corrupted index ?", map.data, MIN (map.size,
+              64));
       gst_buffer_unmap (buf, &map);
       gst_buffer_replace (&buf, NULL);
-      ret = GST_FLOW_ERROR;
+      /* Non-fatal, return */
       break;
     }
     gst_buffer_unmap (buf, &map);