summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hervey <edward@centricular.com>2017-06-27 11:48:08 +0200
committerEdward Hervey <bilboed@bilboed.com>2017-06-27 11:49:21 +0200
commitec24f4c9f2799ecd2a6b89b793b188a3fa2ae25d (patch)
tree6555593ec0cf4f0c15714243eaaaad1873c8a279
parent0bbdfa8ee9e969cba8f685842c1b78dcfa2da166 (diff)
asfdemux: More index handling
In the same vein as the previous commit, the end of the file might have been cut and therefore contains bogus data. If the object is too short, consider it as garbage and return a non-fatal flow. Regression introduced in 97294eb8bbed1b9dad7d3f2c52dd69eb1812cc06
-rw-r--r--gst/asfdemux/gstasfdemux.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gst/asfdemux/gstasfdemux.c b/gst/asfdemux/gstasfdemux.c
index 89404dd8..317f7723 100644
--- a/gst/asfdemux/gstasfdemux.c
+++ b/gst/asfdemux/gstasfdemux.c
@@ -1124,13 +1124,21 @@ gst_asf_demux_pull_indices (GstASFDemux * demux)
gst_buffer_unmap (buf, &map);
gst_buffer_replace (&buf, NULL);
+ if (ret == ASF_FLOW_NEED_MORE_DATA) {
+ /* Since indices are at the end of the file, if we need more data,
+ * we consider it as a non-fatal corrupted index */
+ ret = GST_FLOW_OK;
+ break;
+ }
+
if (G_UNLIKELY (ret != GST_FLOW_OK))
break;
++num_read;
}
- GST_DEBUG_OBJECT (demux, "read %u index objects", num_read);
+ GST_DEBUG_OBJECT (demux, "read %u index objects , returning %s", num_read,
+ gst_flow_get_name (ret));
return ret;
}