summaryrefslogtreecommitdiffstats
path: root/DOCS/man/en/options.rst
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-07-14 23:44:50 +0200
committerwm4 <wm4@nowhere>2013-07-14 23:44:50 +0200
commit65d8709152c5e3942e1a4db958be7cae80ea05b0 (patch)
treed40bddf44bf69f53319ff9d664e24ea90082a5be /DOCS/man/en/options.rst
parente18ffd6b998858ca0797cb0ce4aabd4a509655dd (diff)
downloadmpv-65d8709152c5e3942e1a4db958be7cae80ea05b0.tar.bz2
mpv-65d8709152c5e3942e1a4db958be7cae80ea05b0.tar.xz
demux_lavf: add terrible hack to make DVD playback just work
DVD playback had some trouble with PTS resets: libavformat's genpts feature would try reading until EOF (worst case) to find a new usable PTS in case a packet's PTS is not set correctly. Especially with slow DVD access, this would make the player to appear frozen. Reimplement it partially in demux_lavf.c, and use that code in the DVD case. This is heavily "inspired" by the code in av_read_frame from libavformat/utils.c. The difference is that we stop reading if no PTS has been found after 50 packets (consider this a heuristic). Also, we don't bother with the PTS wrapping and last-frame-before-EOF handling. Even with normal PTS wraps, the player frontend will go to hell for the duration of a frame anyway, and should recover quickly after that. The terribleness of this commit is mostly that we duplicate libavformat functionality, and that we suddenly need a packet queue.
Diffstat (limited to 'DOCS/man/en/options.rst')
-rw-r--r--DOCS/man/en/options.rst10
1 files changed, 10 insertions, 0 deletions
diff --git a/DOCS/man/en/options.rst b/DOCS/man/en/options.rst
index 58fc365db1..66cdadd120 100644
--- a/DOCS/man/en/options.rst
+++ b/DOCS/man/en/options.rst
@@ -559,6 +559,16 @@
``--demuxer-lavf-format=<value>``
Force a specific libavformat demuxer.
+``--demuxer-lavf-genpts-mode=<auto|lavf|builtin|no>``
+ Mode for deriving missing packet PTS values from packet DTS. ``lavf``
+ enables libavformat's ``genpts`` option. ``builtin`` enables equivalent
+ code in mpv. ``auto`` will enable either lavf (normal playback) or builtin
+ (DVD playback) in correct-pts mode. The difference between them is that
+ the builtin code will not potentially read until EOF trying to derive the
+ PTS (which is very bad for DVD playback). On the other hand, builtin might
+ give up too early, which is why lavf is preferred normally. ``no`` disables
+ both.
+
``--demuxer-lavf-o=<key>=<value>[,<key>=<value>[,...]]``
Pass AVOptions to libavformat demuxer.