mirror of https://github.com/mpv-player/mpv
0f110ad0e2
demux_lavf.c forces seek to being determined as supported if STREAM_CTRL_HAS_AVSEEK is returned as success. But it always succeeds with current FFmpeg versions. (Seems like Libav commit cae448cf broke this in early 2016.) Now we can't determine via private API whether the underlying protocol supports read_seek anymore. The affected protocols (mostly rtmp) also set seekable=0, meaning they signal they're not seekable, even though read_seek would work. (My guess is that this can't be fixed because even though seekable is in theory a combination of elaborate flags [of which only 1 is defined, AVIO_SEEKABLE_NORMAL], a seekable!=0 always means it's byte-seekable in some way.) So the FFmpeg API is being garbage _again_, and all what we can do is determining this via protocol name and a whitelist. Should fix the behavior reported in #1701. |
||
---|---|---|
.. | ||
ai_alsa1x.c | ||
ai_oss.c | ||
ai_sndio.c | ||
audio_in.c | ||
audio_in.h | ||
cache.c | ||
cache_file.c | ||
cookies.c | ||
cookies.h | ||
dvb_tune.c | ||
dvb_tune.h | ||
dvbin.h | ||
frequencies.c | ||
frequencies.h | ||
rar.c | ||
rar.h | ||
stream.c | ||
stream.h | ||
stream_avdevice.c | ||
stream_bluray.c | ||
stream_cb.c | ||
stream_cdda.c | ||
stream_dvb.c | ||
stream_dvd.c | ||
stream_dvd_common.c | ||
stream_dvd_common.h | ||
stream_dvdnav.c | ||
stream_edl.c | ||
stream_file.c | ||
stream_lavf.c | ||
stream_libarchive.c | ||
stream_libarchive.h | ||
stream_memory.c | ||
stream_mf.c | ||
stream_null.c | ||
stream_rar.c | ||
stream_smb.c | ||
stream_tv.c | ||
tv.c | ||
tv.h | ||
tvi_def.h | ||
tvi_dummy.c | ||
tvi_v4l2.c |