mirror of
https://github.com/mpv-player/mpv
synced 2025-01-24 08:33:34 +00:00
b2ba73c7b6
rawvideo is a rather primitive demuxer that doesn't implement track switching. The problem was that during track switching the demuxer implementations normally set the stream IDs in order to do the switch, and since rawvideo obviously didn't do that, so the current stream in ds->sh / demuxer->video->sh was set to NULL. (The frontend always assumes track switching is successful, which is a reasonable assumption - failing due to missing video codecs etc. is in separate codepaths.) Later, demux_rawvideo_fill_buffer() in demux_rawvideo.c tried to dereference the NULL stream and crashed. Other trivial single-stream demuxers worked fine, because they didn't try to access ds->sh. |
||
---|---|---|
.. | ||
asf.h | ||
asfguid.h | ||
asfheader.c | ||
asfheader.h | ||
aviheader.c | ||
aviheader.h | ||
aviprint.c | ||
aviprint.h | ||
demux_asf.c | ||
demux_avi.c | ||
demux_cue.c | ||
demux_edl.c | ||
demux_gif.c | ||
demux_lavf.c | ||
demux_mf.c | ||
demux_mkv.c | ||
demux_mng.c | ||
demux_mpg.c | ||
demux_packet.h | ||
demux_rawaudio.c | ||
demux_rawvideo.c | ||
demux_ts.c | ||
demux_ts.h | ||
demuxer.c | ||
demuxer.h | ||
ebml.c | ||
ebml.h | ||
extension.c | ||
matroska.h | ||
mf.c | ||
mf.h | ||
mp3_hdr.c | ||
mp3_hdr.h | ||
mp_taglists.c | ||
mp_taglists.h | ||
mpeg_hdr.c | ||
mpeg_hdr.h | ||
ms_hdr.h | ||
parse_es.c | ||
parse_es.h | ||
stheader.h | ||
video.c |