diff options
author | wm4 <wm4@nowhere> | 2015-01-09 02:10:42 +0100 |
---|---|---|
committer | Diogo Franco (Kovensky) <diogomfranco@gmail.com> | 2015-01-25 17:00:07 +0900 |
commit | ac06ba0aecfe764009602cec0cbc3f45b7538a1a (patch) | |
tree | 2487ad9d4bab936204364d6e0af540b57e43b11f | |
parent | 99dc774dbbee5628ae43da5c9227424e9951e5e0 (diff) | |
download | mpv-ac06ba0aecfe764009602cec0cbc3f45b7538a1a.tar.bz2 mpv-ac06ba0aecfe764009602cec0cbc3f45b7538a1a.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.
-rw-r--r-- | demux/demux_mkv.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c index 978a869246..49aa4ee94b 100644 --- a/demux/demux_mkv.c +++ b/demux/demux_mkv.c @@ -2278,8 +2278,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); |