summaryrefslogtreecommitdiffstats
path: root/DOCS/man/options.rst
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2018-03-02 15:37:34 +0100
committerJan Ekström <jeebjp@gmail.com>2018-03-03 02:38:01 +0200
commit775b86212d4fbe1a25ce0f1552478e0fb9a7c25e (patch)
tree1ecfd53ab5896234a4f850f808e96d6068c61dbc /DOCS/man/options.rst
parentc917992359fdcae867b53ceab1427a1a9c6c8e78 (diff)
downloadmpv-775b86212d4fbe1a25ce0f1552478e0fb9a7c25e.tar.bz2
mpv-775b86212d4fbe1a25ce0f1552478e0fb9a7c25e.tar.xz
video: add option to reduce latency by 1 or 2 frames
The playback start logic explicitly waits until the first frame has been displayed. Usually this will introduce a wait of 1 vsync. For normal playback this doesn't matter, but with respect to low latency needs, this only leads to additional data getting queued up in the demuxer or network buffers. Another thing is that the timing logic decodes 1 frame ahead (= 1 frame extra latency) to determine the exact duration of a frame. To be fair, there doesn't really seem to be a hard reason why this is needed. With the current code, enabling the option does lead to A/V desync sometimes (if the demuxer FPS is too inaccurate), and also frame drops at playback start in some situations. But this all seems to be avoidable, if the timing logic were to be rewritten completely, which should probably happen in the future. Thus the new option comes with the warning that it can be removed any time. This is also why the option has "hack" in the name.
Diffstat (limited to 'DOCS/man/options.rst')
-rw-r--r--DOCS/man/options.rst20
1 files changed, 20 insertions, 0 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index 8d916ea849..c2180fd7e7 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -679,6 +679,26 @@ Video
``--vo=vdpau`` has its own code for the ``vo`` framedrop mode. Slight
differences to other VOs are possible.
+``--video-latency-hacks=<yes|no>``
+ Enable some things which tend to reduce video latency by 1 or 2 frames
+ (default: no). Note that this option might be removed without notice once
+ the player's timing code does not inherently need to do these things
+ anymore.
+
+ This does:
+
+ - Use the demuxer reported FPS for frame dropping. This avoids that the
+ player needs to decode 1 frame in advance, lowering total latency in
+ effect. This also means that if the demuxer reported FPS is wrong, or
+ the video filter chain changes FPS (e.g. deinterlacing), then it could
+ drop too many or not enough frames.
+ - Disable waiting for the first video frame. Normally the player waits for
+ the first video frame to be fully rendered before starting playback
+ properly. Some VOs will lazily initialize stuff when rendering the first
+ frame, so if this is not done, there is some likeliness that the VO has
+ to drop some frames if rendering the first frame takes longer than needed.
+
+
``--display-fps=<fps>``
Set the display FPS used with the ``--video-sync=display-*`` modes. By
default, a detected value is used. Keep in mind that setting an incorrect