mirror of
https://github.com/mpv-player/mpv
synced 2025-01-24 16:43:28 +00:00
b56e2efd5f
Remove some redundant fields that controlled or indicated whether the demuxer was/could/should prefetch. Redefine how the eof/reading fields work. The in->eof field is now always valid, instead of weirdly being reset to false in random situations. The in->reading field now corresponds to whether the demuxer thread is working at all, and is reset if it stops doing anything. Also, I always found it stupid that dequeue_packet() forced the demuxer thread to retry reading if it was EOF. This makes little sense, but was probably added for files that are being appended to (running downloads). It makes no sense, because if the cache really tried to read until file EOF, it would encounter partial packets and throw errors, so all is lost anyway. Plus stream_file now handles this better. So stop this behavior, but add a temporary option that enables the old behavior. I think checking for ds->eager when enabling prefetching never really made sense (could be debated, but no, not really). On the other hand, the change above exposed a missing wakeup in the backward demuxing code. Some chances of regressions that could make it stuck in certain states or so, or incorrect demuxer cache state reporting to the player frontend. |
||
---|---|---|
.. | ||
af.rst | ||
ao.rst | ||
changes.rst | ||
console.rst | ||
encode.rst | ||
input.rst | ||
ipc.rst | ||
javascript.rst | ||
libmpv.rst | ||
lua.rst | ||
mpv.rst | ||
options.rst | ||
osc.rst | ||
stats.rst | ||
vf.rst | ||
vo.rst |