matroskademux: do not error out on a block with unknown tracknumber

This commit is contained in:
Mark Nauwelaerts 2010-07-09 16:57:33 +02:00
parent bbded080e0
commit 18f37ffc9a

View file

@ -4405,13 +4405,17 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
/* fetch stream from num */
stream_num = gst_matroska_demux_stream_from_num (demux, num);
if (size < 3 || stream_num < 0 || stream_num >= demux->num_streams) {
gst_buffer_unref (buf);
buf = NULL;
GST_WARNING_OBJECT (demux, "Invalid stream %d or size %u", stream_num,
size);
if (G_UNLIKELY (size < 3)) {
GST_WARNING_OBJECT (demux, "Invalid size %u", size);
ret = GST_FLOW_ERROR;
break;
} else if (G_UNLIKELY (stream_num < 0 ||
stream_num >= demux->num_streams)) {
/* let's not give up on a stray invalid track number */
GST_WARNING_OBJECT (demux,
"Invalid stream %d for track number %" G_GUINT64_FORMAT
"; ignoring block", stream_num);
break;
}
stream = g_ptr_array_index (demux->src, stream_num);