summaryrefslogtreecommitdiffstats
path: root/demux/demux_mkv.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-01-09 02:10:42 +0100
committerwm4 <wm4@nowhere>2015-01-09 02:10:42 +0100
commit33dd9147ae859b712c52eecfadc8ff97e3d07575 (patch)
tree7236ee87e5291b1cf9a48c5150cc89180f4a55f5 /demux/demux_mkv.c
parenta37d75d4971558a14227cabbd95abbe8d6f37f32 (diff)
downloadmpv-33dd9147ae859b712c52eecfadc8ff97e3d07575.tar.bz2
mpv-33dd9147ae859b712c52eecfadc8ff97e3d07575.tar.xz
demux_mkv: improve robustness against broken libavcodec parsers
The VP9 codec parser has a bug: it doesn't set the data/size pointers passed to it. As I understand, it must always do this, and in fact, if it doesn't some libavcodec generic code would be in trouble too. This helps with #1448, but is not the full fix for it. The codec parser must be fixed in libavcodec itself.
Diffstat (limited to 'demux/demux_mkv.c')
-rw-r--r--demux/demux_mkv.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c
index ed5b2c74a9..2b93148747 100644
--- a/demux/demux_mkv.c
+++ b/demux/demux_mkv.c
@@ -2272,8 +2272,8 @@ static bool mkv_parse_packet(mkv_track_t *track, bstr *raw, bstr *out)
}
if (track->av_parser && track->av_parser_codec) {
while (raw->len) {
- uint8_t *data;
- int size;
+ uint8_t *data = NULL;
+ int size = 0;
int len = av_parser_parse2(track->av_parser, track->av_parser_codec,
&data, &size, raw->start, raw->len,
AV_NOPTS_VALUE, AV_NOPTS_VALUE, 0);