0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 20:03:10 +02:00

demux_mkv: fix realvideo extradata handling

The code handling larger-than-minimum realvideo extradata sizes was
complete nonsense. It tried to add the additional data to the exported
track extradata by reading data from the input stream, which was
completely bogus as this code is called long after the original
Matroska track extradata information has been read. As a result the
data read had nothing to do with correct values, and the read call
messed up the stream position which likely broke further parsing of
the file and caused complete playback failure. Change the code to
instead copy any additional part at the end of input extradata to the
end of output extradata. I believe this is the intended semantics,
though I haven't verified it from any specs.
This commit is contained in:
Uoti Urpala 2010-05-26 08:32:40 +03:00
parent 07e4261aa2
commit aa07b6d578

View File

@ -1229,8 +1229,7 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track,
mmioFOURCC('R', 'V', track->codec_id[9], '0');
dst = (unsigned char *) (bih + 1);
// copy type1 and type2 info from rv properties
memcpy(dst, src - 8, 8);
stream_read(demuxer->stream, dst + 8, cnt);
memcpy(dst, src - 8, 8 + cnt);
track->realmedia = 1;
#ifdef CONFIG_QTX_CODECS