0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 12:02:23 +02:00
mpv/demux
wm4 3c2f93aec8 demux_mkv: improve robustness by explicitly checking for level 1 elements
Matroska makes it pretty hard to resync correctly on broken files:
random data returns "valid" EBML IDs with a high probability, and when
trying to skip them it's likely that you skip a random amount of data
(instead of considering the element length invalid).

Improve upon this by skipping known level 1 elements only. Consider
everything else invalid and call the resync code. This might result in
annoying behavior when Matroska adds new level 1 elements, although it
won't be particularly harmful. Matroska doesn't really allow us to do
better (even mkvtoolnix explicitly checks for known level 1 elements).

Since we now don't always want to combine EBML element skipping and
resyncing, remove ebml_read_skip_or_resync_cluster(), and make
ebml_read_skip() more tolerant against skipping broken elements.

Also, don't resync when reading sub-elements, and instead do resyncing
when reading them results in an error.
2014-01-14 17:38:21 +01:00
..
codec_tags.c Split mpvcore/ into common/, misc/, bstr/ 2013-12-17 02:39:45 +01:00
codec_tags.h demux: remove gsh field from sh_audio/sh_video/sh_sub 2013-11-23 21:37:56 +01:00
demux_cue.c Split mpvcore/ into common/, misc/, bstr/ 2013-12-17 02:39:45 +01:00
demux_edl.c timeline: reject mplayer2 EDL files, change EDL header 2013-11-21 15:59:00 +01:00
demux_lavf.c demux_lavf: add hack for MicroDVD for assuming frame based timing 2014-01-10 00:02:06 +01:00
demux_libass.c charset_conv: mp_msg conversions 2013-12-21 21:43:16 +01:00
demux_mf.c stream: mp_msg conversions 2013-12-21 21:43:16 +01:00
demux_mkv.c demux_mkv: improve robustness by explicitly checking for level 1 elements 2014-01-14 17:38:21 +01:00
demux_playlist.c Split mpvcore/ into common/, misc/, bstr/ 2013-12-17 02:39:45 +01:00
demux_raw.c demux: mp_msg conversions 2013-12-21 21:43:16 +01:00
demux_subreader.c demux_subreader: reject file if not opened by --sub 2014-01-04 19:00:01 +01:00
demux.c demux: don't prefix tag output with demuxer name 2013-12-21 22:13:05 +01:00
demux.h demux_subreader: reject file if not opened by --sub 2014-01-04 19:00:01 +01:00
ebml.c demux_mkv: improve robustness by explicitly checking for level 1 elements 2014-01-14 17:38:21 +01:00
ebml.h demux_mkv: improve robustness by explicitly checking for level 1 elements 2014-01-14 17:38:21 +01:00
matroska.h demux_mkv: support some raw PCM variants 2013-11-11 18:40:59 +01:00
mf.c demux: mp_msg conversions 2013-12-21 21:43:16 +01:00
mf.h demux: mp_msg conversions 2013-12-21 21:43:16 +01:00
ms_hdr.h demux: rename Windows symbols 2013-11-02 15:14:12 +01:00
packet.h demux: export dts from demux_lavf, use it for avi 2013-11-25 23:13:01 +01:00
stheader.h Split mpvcore/ into common/, misc/, bstr/ 2013-12-17 02:39:45 +01:00