From 492e3deb956a0c9d8ce7ed0d6f25aa0737ae7f50 Mon Sep 17 00:00:00 2001 From: Kagami Hiiragi Date: Tue, 29 Dec 2015 22:12:46 +0300 Subject: demux_mkv: skip EBML void elements EBML_ID_VOID might occur at any level, see: https://github.com/Matroska-Org/ebml-specification/blob/master/specification.markdown This change prevents "Corrupt file detected" errors on completely valid files. --- demux/demux_mkv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'demux') diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c index 4b4e16c4b6..7f32e8d810 100644 --- a/demux/demux_mkv.c +++ b/demux/demux_mkv.c @@ -2609,7 +2609,7 @@ static int read_next_block(demuxer_t *demuxer, struct block_info *block) } // For the sake of robustness, consider even unknown level 1 // elements the same as unknown/broken IDs. - if (!ebml_is_mkv_level1_id(id) || + if ((!ebml_is_mkv_level1_id(id) && id != EBML_ID_VOID) || ebml_read_skip(demuxer->log, -1, s) != 0) { ebml_resync_cluster(demuxer->log, s); -- cgit v1.2.3