mpv/DOCS
wm4 10d0963d85 demux: improve and optimize cache pruning and seek range determination
The main purpose of this commit is avoiding any hidden O(n^2) algorithms
in the code for pruning the demuxer cache, and for determining the
seekable boundaries of the cache. The old code could loop over the whole
packet queue on every packet pruned in certain corner cases.

There are two ways how to reach the goal:
 1) commit a cardinal sin
 2) do everything incrementally

The cardinal sin is adding an extra field to demux_packet, which caches
the determined seekable range for a keyframe range. demux_packet is a
rather general data structure and thus shouldn't have any fields that
are not inherent to its use, and are only needed as an implementation
detail of code using it. But what are you gonna do, sue me?

In the future, demux.c might have its own packet struct though. Then the
other existing cardinal sin (the "next" field, from MPlayer times) could
be removed as well.

This commit also changes slightly how the seek end is determined. There
is a note on the manpage in case anyone finds the new behavior
confusing. It's somewhat cleaner and  might be needed for supporting
multiple ranges (although that's unclear).
2017-11-04 23:18:42 +01:00
..
man demux: improve and optimize cache pruning and seek range determination 2017-11-04 23:18:42 +01:00
client-api-changes.rst client API: minor bump + change entry for DRM related opengl-cb changes 2017-10-23 21:11:44 +02:00
compile-windows.md DOCS/compile-windows.md: update for changes to mpv and MSYS2 2017-10-02 01:28:54 +11:00
contribute.md DOCS/contribute.md: coding style exception 2017-08-30 10:34:16 +02:00
edl-mpv.rst DOCS/edl-mpv.rst: fix typo 2017-02-05 16:02:58 +01:00
encoding.rst player: change default section when loading encoding-profiles.conf 2017-07-12 13:11:14 +02:00
interface-changes.rst demux: add a back buffer and the ability to seek into it 2017-10-21 19:26:33 +02:00
mplayer-changes.rst vo_opengl: refactor into vo_gpu 2017-09-21 15:00:55 +02:00
release-policy.md Release 0.25.0 2017-04-23 01:57:53 +02:00
tech-overview.txt DOCS/tech-overview.txt: updates 2017-06-29 17:31:55 +02:00
waf-buildsystem.rst DOCS/waf-buildsystem.rst: fix typo 2017-02-15 10:41:26 +01:00