mirror of https://github.com/mpv-player/mpv
7b8d360288
In insane files with a very huge number of subtitle events, and if the --demuxer-mkv-subtitle-preroll option is given, seeking can still overflow the packet queue. Normally, the subtitle_preroll variable specifies the maximum number of packets that can be added. But once this number is reached, the normal seeking behavior is enabled, which will add all subtitle packets with the right timestamps to the packet queue. At this point the next video keyframe can still be quite far away, with enough subtitle packets on the way to overflow the packet queue. Fix this by always setting an upper limit of subtitle packets read during seeking. This should provide additional robustness even if the preroll option is not used. This means that even with normal seeking, at most 500 subtitle packets are demuxed. Packets after that are discarded. One slightly questionable aspect of this commit is that subtitle_preroll is never reset in audio-only mode, but that is probably ok. |
||
---|---|---|
.. | ||
codec_tags.c | ||
codec_tags.h | ||
demux.c | ||
demux.h | ||
demux_cue.c | ||
demux_edl.c | ||
demux_lavf.c | ||
demux_libass.c | ||
demux_mf.c | ||
demux_mkv.c | ||
demux_mng.c | ||
demux_packet.h | ||
demux_raw.c | ||
demux_subreader.c | ||
ebml.c | ||
ebml.h | ||
matroska.h | ||
mf.c | ||
mf.h | ||
ms_hdr.h | ||
stheader.h |