mirror of
https://github.com/mpv-player/mpv
synced 2025-03-25 04:38:01 +00: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:
parent
07e4261aa2
commit
aa07b6d578
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user