summaryrefslogtreecommitdiffstats
path: root/DOCS
diff options
context:
space:
mode:
Diffstat (limited to 'DOCS')
-rw-r--r--DOCS/contribute.md10
-rw-r--r--DOCS/edl-mpv.rst43
-rw-r--r--DOCS/interface-changes.rst18
-rw-r--r--DOCS/man/input.rst19
-rw-r--r--DOCS/man/libmpv.rst59
-rw-r--r--DOCS/man/lua.rst5
-rw-r--r--DOCS/man/mpv.rst6
-rw-r--r--DOCS/man/options.rst219
-rw-r--r--DOCS/mplayer-changes.rst5
9 files changed, 312 insertions, 72 deletions
diff --git a/DOCS/contribute.md b/DOCS/contribute.md
index 9fc9d8d8bc..994e2040c1 100644
--- a/DOCS/contribute.md
+++ b/DOCS/contribute.md
@@ -101,18 +101,16 @@ mpv uses C99 with K&R formatting, with some exceptions.
do_something();
}
```
-- If the body of an if statement uses braces, the else branch should also
- use braces (and reverse).
+- If the if has an else branch, both branches should use braces, even if they're
+ technically redundant.
Example:
```C
if (a) {
- // do something
- something();
- something_else();
- } else {
one_line();
+ } else {
+ one_other_line();
}
```
- If an if condition spans multiple physical lines, then put the opening brace
diff --git a/DOCS/edl-mpv.rst b/DOCS/edl-mpv.rst
index b0f7238307..7c9f64e160 100644
--- a/DOCS/edl-mpv.rst
+++ b/DOCS/edl-mpv.rst
@@ -51,7 +51,8 @@ The rest of the lines belong to one of these classes:
1) An empty or commented line. A comment starts with ``#``, which must be the
first character in the line. The rest of the line (up until the next line
break) is ignored. An empty line has 0 bytes between two line feed bytes.
-2) A segment entry in all other cases.
+2) A header entry if the line starts with ``!``.
+3) A segment entry in all other cases.
Each segment entry consists of a list of named or unnamed parameters.
Parameters are separated with ``,``. Named parameters consist of a name,
@@ -63,8 +64,8 @@ Syntax::
segment_entry ::= <param> ( <param> ',' )*
param ::= [ <name> '=' ] ( <value> | '%' <number> '%' <valuebytes> )
-The ``name`` string can consist of any characters, except ``=%,;\n``. The
-``value`` string can consist of any characters except of ``,;\n``.
+The ``name`` string can consist of any characters, except ``=%,;\n!``. The
+``value`` string can consist of any characters except of ``,;\n!``.
The construct starting with ``%`` allows defining any value with arbitrary
contents inline, where ``number`` is an integer giving the number of bytes in
@@ -94,6 +95,42 @@ to ``20``, ``param3`` to ``value,escaped``, ``param4`` to ``value2``.
Instead of line breaks, the character ``;`` can be used. Line feed bytes and
``;`` are treated equally.
+Header entries start with ``!`` as first character after a line break. Header
+entries affect all other file entries in the EDL file. Their format is highly
+implementation specific. They should generally follow the file header, and come
+before any file entries.
+
+MP4 DASH
+========
+
+This is a header that helps implementing DASH, although it only provides a low
+level mechanism.
+
+If this header is set, the given url designates an mp4 init fragment. It's
+downloaded, and every URL in the EDL is prefixed with the init fragment on the
+byte stream level. This is mostly for use by mpv's internal ytdl support. The
+ytdl script will call youtube-dl, which in turn actually processes DASH
+manifests. It may work only for this very specific purpose and fail to be
+useful in other scenarios. It can be removed or changed in incompatible ways
+at any times.
+
+Example::
+
+ !mp4_dash,init=url
+
+The ``url`` is encoded as parameter value as defined in the general EDL syntax.
+It's expected to point to an "initialization fragment", which will be prefixed
+to every entry in the EDL on the byte stream level.
+
+The current implementation will
+
+- ignore stream start times
+- use durations as hint for seeking only
+- not adjust source timestamps
+- open and close segments (i.e. fragments) as needed
+- not add segment boundaries as chapter points
+- require full compatibility between all segments (same codec etc.)
+
Timestamp format
================
diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst
index a6133a3848..3f21bf8063 100644
--- a/DOCS/interface-changes.rst
+++ b/DOCS/interface-changes.rst
@@ -19,6 +19,24 @@ Interface changes
::
+ --- mpv 0.24.0 ---
+ - deprecate --hwdec-api and replace it with --opengl-hwdec-interop.
+ The new option accepts both --hwdec values, as well as named backends.
+ A minor difference is that --hwdec-api=no (which used to be the default)
+ now actually does not preload any interop layer, while the new default
+ ("") uses the value of --hwdec.
+ - drop deprecated --ad/--vd features
+ - drop deprecated --sub-codepage syntax
+ - rename properties:
+ - "drop-frame-count" to "decoder-frame-drop-count"
+ - "vo-drop-frame-count" to "frame-drop-count"
+ The old names still work, but are deprecated.
+ - remove the --stream-capture option and property. No replacement.
+ (--record-file might serve as alternative)
+ - add --sub-justify
+ - add --sub-ass-justify
+ - internally there's a different way to enable the demuxer cache now
+ it can be auto-enabled even if the stream cache remains disabled
--- mpv 0.23.0 ---
- remove deprecated vf_vdpaurb (use "--hwdec=vdpau-copy" instead)
- the following properties now have new semantics:
diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst
index 70a05dcaef..1399ef74e1 100644
--- a/DOCS/man/input.rst
+++ b/DOCS/man/input.rst
@@ -940,15 +940,19 @@ Property list
Total A-V sync correction done. Unavailable if audio or video is
disabled.
-``drop-frame-count``
+``decoder-frame-drop-count``
Video frames dropped by decoder, because video is too far behind audio (when
using ``--framedrop=decoder``). Sometimes, this may be incremented in other
situations, e.g. when video packets are damaged, or the decoder doesn't
follow the usual rules. Unavailable if video is disabled.
-``vo-drop-frame-count``
+ ``drop-frame-count`` is a deprecated alias.
+
+``frame-drop-count``
Frames dropped by VO (when using ``--framedrop=vo``).
+ ``vo-drop-frame-count`` is a deprecated alias.
+
``mistimed-frame-count``
Number of video frames that were not timed correctly in display-sync mode
for the sake of keeping A/V sync. This does not include external
@@ -1331,8 +1335,8 @@ Property list
This is known only once the VO has opened (and possibly later). With some
VOs (like ``opengl``), this might be never known in advance, but only when
the decoder attempted to create the hw decoder successfully. (Using
- ``--hwdec-preload`` can load it eagerly.) If there are multiple drivers
- loaded, they will be separated by ``,``.
+ ``--opengl-hwdec-interop`` can load it eagerly.) If there are multiple
+ drivers loaded, they will be separated by ``,``.
If no VO is active or no interop driver is known, this property is
unavailable.
@@ -1341,6 +1345,9 @@ Property list
multiple interop drivers for the same hardware decoder, depending on
platform and VO.
+ This is somewhat similar to the ``--opengl-hwdec-interop`` option, but
+ it returns the actually loaded backend, not the value of this option.
+
``video-format``
Video format as string.
@@ -1545,10 +1552,6 @@ Property list
This property is experimental and might be removed in the future.
-``stream-capture`` (RW)
- A filename, see ``--stream-capture``. Setting this will start capture using
- the given filename. Setting it to an empty string will stop it.
-
``tv-brightness``, ``tv-contrast``, ``tv-saturation``, ``tv-hue`` (RW)
TV stuff.
diff --git a/DOCS/man/libmpv.rst b/DOCS/man/libmpv.rst
index d3e78aa5bc..909a2bb447 100644
--- a/DOCS/man/libmpv.rst
+++ b/DOCS/man/libmpv.rst
@@ -14,3 +14,62 @@ mpv, further documentation is spread over a few places:
- http://mpv.io/manual/master/#list-of-input-commands
- http://mpv.io/manual/master/#properties
- https://github.com/mpv-player/mpv-examples/tree/master/libmpv
+
+C PLUGINS
+=========
+
+You can write C plugins for mpv. These use the libmpv API, although they do not
+use the libmpv library itself.
+
+Currently, they must be explicitly enabled at build time with
+``--enable-cplugins``. They are available on Linux/BSD platforms only.
+
+C plugins location
+------------------
+
+C plugins are put into the mpv scripts directory in its config directory
+(see the `FILES`_ section for details). They must have a ``.so`` file extension.
+They can also be explicitly loaded with the ``--script`` option.
+
+API
+---
+
+A C plugin must export the following function::
+
+ int mpv_open_cplugin(mpv_handle *handle)
+
+The plugin function will be called on loading time. This function does not
+return as long as your plugin is loaded (it runs in its own thread). The
+``handle`` will be deallocated as soon as the plugin function returns.
+
+The return value is interpreted as error status. A value of ``0`` is
+interpreted as success, while ``-1`` signals an error. In the latter case,
+the player prints an uninformative error message that loading failed.
+
+Return values other than ``0`` and ``-1`` are reserved, and trigger undefined
+behavior.
+
+Within the plugin function, you can call libmpv API functions. The ``handle``
+is created by ``mpv_create_client()`` (or actually an internal equivalent),
+and belongs to you. You can call ``mpv_wait_event()`` to wait for things
+happening, and so on.
+
+Note that the player might block until your plugin calls ``mpv_wait_event()``
+for the first time. This gives you a chance to install initial hooks etc.
+before playback begins.
+
+The details are quite similar to Lua scripts.
+
+Linkage to libmpv
+-----------------
+
+The current implementation requires that your plugins are **not** linked against
+libmpv. What your plugins uses are not symbols from a libmpv binary, but
+symbols from the mpv host binary.
+
+Examples
+--------
+
+See:
+
+- https://github.com/mpv-player/mpv-examples/tree/master/cplugins
diff --git a/DOCS/man/lua.rst b/DOCS/man/lua.rst
index 7d91090ca8..e2f47a862a 100644
--- a/DOCS/man/lua.rst
+++ b/DOCS/man/lua.rst
@@ -451,6 +451,11 @@ are useful only in special situations.
multiple properties at once, you might not want to act on each property
change, but only when all change notifications have been received.
+``mp.unregister_idle(fn)``
+ Undo ``mp.register_idle(fn)``. This removes all idle handlers that
+ are equal to the ``fn`` parameter. This uses normal Lua ``==`` comparison,
+ so be careful when dealing with closures.
+
``mp.enable_messages(level)``
Set the minimum log level of which mpv message output to receive. These
messages are normally printed to the terminal. By calling this function,
diff --git a/DOCS/man/mpv.rst b/DOCS/man/mpv.rst
index 7108306008..db0382893d 100644
--- a/DOCS/man/mpv.rst
+++ b/DOCS/man/mpv.rst
@@ -140,7 +140,7 @@ L
Toggle infinite looping.
Ctrl + and Ctrl -
- Adjust audio delay by +/- 0.1 seconds.
+ Adjust audio delay (A/V sync) by +/- 0.1 seconds.
u
Switch between applying no style overrides to SSA/ASS subtitles, and
@@ -673,6 +673,10 @@ PROTOCOLS
either aliases to documented protocols, or are just redirections to
protocols implemented and documented in FFmpeg.
+ ``data:`` is supported in FFmpeg (not in Libav), but needs to be in the
+ format ``data://``. This is done to avoid ambiguity with filenames. You
+ can also prefix it with ``lavf://`` or ``ffmpeg://``.
+
``ytdl://...``
By default, the youtube-dl hook script (enabled by default for mpv CLI)
only looks at http URLs. Prefixing an URL with ``ytdl://`` forces it to
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index eab9f8fefd..af9a3b913d 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -640,8 +640,8 @@ Video
``--opengl-backend=dxinterop`` (Windows only)
:dxva2-copy: copies video back to system RAM (Windows only)
:d3d11va: requires ``--vo=opengl`` with ``--opengl-backend=angle``
- (Windows only)
- :d3d11va-copy: copies video back to system RAM (Windows only)
+ (Windows 8+ only)
+ :d3d11va-copy: copies video back to system RAM (Windows 8+ only)
:mediacodec: copies video back to system RAM (Android only)
:rpi: requires ``--vo=opengl`` (Raspberry Pi only - default if available)
:rpi-copy: copies video back to system RAM (Raspberry Pi only)
@@ -669,6 +669,14 @@ Video
forcing it with ``--opengl-backend=x11``, but the vaapi/GLX interop is
said to be slower than ``vaapi-copy``.
+ The ``cuda`` and ``cuda-copy`` modes provides deinterlacing in the decoder
+ which is useful as there is no other deinterlacing mechanism in the opengl
+ output path. To use this deinterlacing you must pass the option:
+ ``vd-lavc-o=deint=[weave|bob|adaptive]``.
+ Pass ``weave`` (or leave the option unset) to not attempt any
+ deinterlacing. ``cuda`` should always be preferred unless the ``opengl``
+ vo is not being used or filters are required.
+
Most video filters will not work with hardware decoding as they are
primarily implemented on the CPU. Some exceptions are ``vdpaupp``,
``vdpaurb`` and ``vavpp``. See `VIDEO FILTERS`_ for more details.
@@ -719,18 +727,6 @@ Video
affect this additionally. This can give incorrect results even with
completely ordinary video sources.
- ``cuda`` is usually safe. Interlaced content can be deinterlaced by
- the decoder, which is useful as there is no other deinterlacing
- mechanism in the opengl output path. To use this deinterlacing you
- must pass the option: ``vd-lavc-o=deint=[weave|bob|adaptive]``. Pass
- ``weave`` to not attempt any deinterlacing.
- 10 and 12bit HEVC is available if the hardware supports it and a
- sufficiently new driver (> 375.xx) is used.
-
- ``cuda-copy`` has the same behaviour as ``cuda`` - including the ability
- to deinterlace inside the decoder. However, traditional deinterlacing
- filters can be used in this case.
-
``rpi`` always uses the hardware overlay renderer, even with
``--vo=opengl``.
@@ -746,12 +742,12 @@ Video
In particular, ``auto-copy`` will only select safe modes
(although potentially slower than other methods).
-``--hwdec-preload=<api>``
+``--opengl-hwdec-interop=<name>``
This is useful for the ``opengl`` and ``opengl-cb`` VOs for creating the
hardware decoding OpenGL interop context, but without actually enabling
hardware decoding itself (like ``--hwdec`` does).
- If set to ``no`` (default), the ``--hwdec`` option is used.
+ If set to an empty string (default), the ``--hwdec`` option is used.
For ``opengl``, if set, do not create the interop context on demand, but
when the VO is created.
@@ -762,6 +758,19 @@ Video
to temporarily set the ``hwdec`` option just during OpenGL context
initialization with ``mpv_opengl_cb_init_gl()``.
+ See ``--opengl-hwdec-interop=help`` for accepted values. This lists the
+ interop backend, with the ``--hwdec`` alias after it in ``[...]``. Consider
+ all values except the proper interop backend name, ``auto``, and ``no`` as
+ silently deprecated and subject to change. Also, if you use this in
+ application code (e.g. via libmpv), any value other than ``auto`` and ``no``
+ should be avoided, as backends can change.
+
+ Currently the option sets a single value. It is possible that the option
+ type changes to a list in the future.
+
+ The old alias ``--hwdec-preload`` has different behavior if the option value
+ is ``no``.
+
``--videotoolbox-format=<name>``
Set the internal pixel format used by ``--hwdec=videotoolbox`` on OSX. The
choice of the format can influence performance considerably. On the other
@@ -1132,41 +1141,31 @@ Audio
multichannel PCM, and mpv supports lossless DTS-HD decoding via
FFmpeg's new DCA decoder (based on libdcadec).
-``--ad=<[+|-]family1:(*|decoder1),[+|-]family2:(*|decoder2),...[-]>``
+``--ad=<decoder1,decoder2,...[-]>``
Specify a priority list of audio decoders to be used, according to their
decoder name. When determining which decoder to use, the first decoder that
matches the audio format is selected. If that is unavailable, the next
decoder is used. Finally, it tries all other decoders that are not
explicitly selected or rejected by the option.
- Specifying family names is deprecated. Entries like ``family:*`` prioritize
- all decoders of the given family.
-
``-`` at the end of the list suppresses fallback on other available
decoders not on the ``--ad`` list. ``+`` in front of an entry forces the
decoder. Both of these should not normally be used, because they break
normal decoder auto-selection! Both of these methods are deprecated.
- ``-`` in front of an entry disables selection of the decoder. This is
- deprecated.
-
.. admonition:: Examples
``--ad=mp3float``
Prefer the FFmpeg/Libav ``mp3float`` decoder over all other MP3
decoders.
- ``--ad=lavc:mp3float``
- Prefer the FFmpeg/Libav ``mp3float`` decoder over all other MP3
- decoders. (Using deprecated family syntax.)
-
``--ad=help``
List all available decoders.
.. admonition:: Warning
Enabling compressed audio passthrough (AC3 and DTS via SPDIF/HDMI) with
- this option is deprecated. Use ``--audio-spdif`` instead.
+ this option is not possible. Use ``--audio-spdif`` instead.
``--volume=<value>``
Set the startup volume. 0 means silence, 100 means no volume reduction or
@@ -1727,6 +1726,13 @@ Subtitles
Disabled by default.
+``--image-subs-video-resolution=<yes|no>``
+ Override the image subtitle resolution with the video resolution
+ (default: no). Normally, the subtitle canvas is fit into the video canvas
+ (e.g. letterboxed). Setting this option uses the video size as subtitle
+ canvas size. Can be useful to test broken subtitles, which often happen
+ when the video was trancoded, while attempting to keep the old subtitles.
+
``--sub-ass``, ``--no-sub-ass``
Render ASS subtitles natively (enabled by default).
@@ -1781,8 +1787,9 @@ Subtitles
subtitles are interpreted as UTF-8 with "Latin 1" as fallback for bytes
which are not valid UTF-8 sequences. iconv is never involved in this mode.
- This option changed in mpv 0.23.0. The old syntax is still emulated to some
- degree.
+ This option changed in mpv 0.23.0. Support for the old syntax was fully
+ removed in mpv 0.24.0.
+
``--sub-fix-timing``, ``--no-sub-fix-timing``
By default, subtitle timing is adjusted to remove minor gaps or overlaps
@@ -1965,6 +1972,18 @@ Subtitles
Vertical position (default: ``bottom``).
Details see ``--sub-align-x``.
+``--sub-justify=<auto|left|center|right>``
+ Control how multi line subs are justified irrespective of where they
+ are aligned (default: ``auto`` which justifies as defined by
+ ``--sub-align-y``).
+ Left justification is recommended to make the subs easier to read
+ as it is easier for the eyes.
+
+``--sub-ass-justify=<yes|no>``
+ Applies justification as defined by ``--sub-justify`` on ASS subtitles
+ if ``--sub-ass-style-override`` is not set to ``no``.
+ Default: ``no``.
+
``--sub-shadow-color=<color>``
See ``--sub-color``. Color used for sub text shadow.
@@ -2101,6 +2120,9 @@ Window
Enabled by default.
+``--snap-window``
+ (Windows only) Snap the player window to screen edges.
+
``--ontop``
Makes the player window stay on top of other windows.
@@ -2339,7 +2361,7 @@ Window
- ``--monitoraspect=16:9`` or ``--monitoraspect=1.7777``
``--hidpi-window-scale``, ``--no-hidpi-window-scale``
- (OS X only)
+ (OS X and X11 only)
Scale the window size according to the backing scale factor (default: yes).
On regular HiDPI resolutions the window opens with double the size but appears
as having the same size as on none-HiDPI resolutions. This is the default OS X
@@ -2724,6 +2746,27 @@ Demuxer
(This value tends to be fuzzy, because many file formats don't store linear
timestamps.)
+``--prefetch-playlist=<yes|no>``
+ Prefetch next playlist entry while playback of the current entry is ending
+ (default: no). This merely opens the URL of the next playlist entry as soon
+ as the current URL is fully read.
+
+ This does **not** work with URLs resolved by the ``youtube-dl`` wrapper,
+ and it won't.
+
+ This does not affect HLS (``.m3u8`` URLs) - HLS prefetching depends on the
+ demuxer cache settings and is on by default.
+
+ This can give subtly wrong results if per-file options are used, or if
+ options are changed in the time window between prefetching start and next
+ file played.
+
+ This can occasionally make wrong prefetching decisions. For example, it
+ can't predict whether you go backwards in the playlist, and assumes you
+ won't edit the playlist.
+
+ Highly experimental.
+
``--force-seekable=<yes|no>``
If the player thinks that the media is not seekable (e.g. playing from a
pipe, or it's an http stream with a server that doesn't support range
@@ -4288,16 +4331,70 @@ The following video options are currently all specific to ``--vo=opengl`` and
Windows only.
-``--opengl-dcomposition=<yes|no>``
- Allows DirectComposition when using the ANGLE backend (default: yes).
- DirectComposition implies flip-model presentation, which can improve
- rendering efficiency on Windows 8+ by avoiding a copy of the video frame.
- mpv uses it by default where possible, but it can cause poor behaviour with
- some drivers, such as a black screen or graphical corruption when leaving
- full-screen mode. Use "no" to disable it.
+``--angle-d3d11-feature-level=<11_0|10_1|10_0|9_3>``
+ Selects a specific feature level when using the ANGLE backend with D3D11.
+ By default, the highest available feature level is used. This option can be
+ used to select a lower feature level, which is mainly useful for debugging.
+ Note that OpenGL ES 3.0 is only supported at feature level 10_1 or higher.
+ Most extended OpenGL features will not work at lower feature levels
+ (similar to ``--opengl-dumb-mode``).
Windows with ANGLE only.
+``--angle-d3d11-warp=<yes|no|auto>``
+ Use WARP (Windows Advanced Rasterization Platform) when using the ANGLE
+ backend with D3D11 (default: auto). This is a high performance software
+ renderer. By default, it is used when the Direct3D hardware does not
+ support Direct3D 11 feature level 9_3. While the extended OpenGL features
+ will work with WARP, they can be very slow.
+
+ Windows with ANGLE only.
+
+``--angle-egl-windowing=<yes|no|auto>``
+ Use ANGLE's built in EGL windowing functions to create a swap chain
+ (default: auto). If this is set to ``no`` and the D3D11 renderer is in use,
+ ANGLE's built in swap chain will not be used and a custom swap chain that
+ is optimized for video rendering will be created instead. If set to
+ ``auto``, a custom swap chain will be used for D3D11 and the built in swap
+ chain will be used for D3D9. This option is mainly for debugging purposes,
+ in case the custom swap chain has poor performance or does not work.
+
+ If set to ``yes``, the ``--angle-max-frame-latency`` and
+ ``--angle-swapchain-length`` options will have no effect.
+
+ Windows with ANGLE only.
+
+``--angle-max-frame-latency=<1-16>``
+ Sets the maximum number of frames that the system is allowed to queue for
+ rendering with the ANGLE backend (default: 3). Lower values should make
+ VSync timing more accurate, but a value of ``1`` requires powerful
+ hardware, since the CPU will not be able to "render ahead" of the GPU.
+
+ Windows with ANGLE only.
+
+``--angle-renderer=<d3d9|d3d11|auto>``
+ Forces a specific renderer when using the ANGLE backend (default: auto). In
+ auto mode this will pick D3D11 for systems that support Direct3D 11 feature
+ level 9_3 or higher, and D3D9 otherwise. This option is mainly for
+ debugging purposes. Normally there is no reason to force a specific
+ renderer, though ``--angle-renderer=d3d9`` may give slightly better
+ performance on old hardware. Note that the D3D9 renderer only supports
+ OpenGL ES 2.0, so most extended OpenGL features will not work if this
+ renderer is selected (similar to ``--opengl-dumb-mode``).
+
+ Windows with ANGLE only.
+
+``--angle-swapchain-length=<2-16>``
+ Sets the number of buffers in the D3D11 presentation queue when using the
+ ANGLE backend (default: 6). At least 2 are required, since one is the back
+ buffer that mpv renders to and the other is the front buffer that is
+ presented by the DWM. Additional buffers can improve performance, because
+ for example, mpv will not have to wait on the DWM to release the front
+ buffer before rendering a new frame to it. For this reason, Microsoft
+ recommends at least 4.
+
+ Windows 8+ with ANGLE only.
+
``--opengl-sw``
Continue even if a software renderer is detected.
@@ -4322,6 +4419,9 @@ The following video options are currently all specific to ``--vo=opengl`` and
work.
x11
X11/GLX
+ x11probe
+ For internal autoprobing, equivalent to ``x11`` otherwise. Don't use
+ directly, it could be removed without warning as autoprobing is changed.
wayland
Wayland/EGL
drm
@@ -4561,6 +4661,7 @@ The following video options are currently all specific to ``--vo=opengl`` and
unavailable, it silently falls back on a normal framebuffer. Note that
if you set the ``--opengl-fbo-format`` option to a non-default value, a
format with alpha must be specified, or this won't work.
+ This does not work on X11 with EGL and Mesa (freedesktop bug 67676).
no
Ignore alpha component.
@@ -4716,21 +4817,10 @@ Miscellaneous
Input file type for ``mf://`` (available: jpeg, png, tga, sgi). By default,
this is guessed from the file extension.
-``--stream-capture=<filename>``
- Allows capturing the primary stream (not additional audio tracks or other
- kind of streams) into the given file. Capturing can also be started and
- stopped by changing the filename with the ``stream-capture`` property.
- Generally this will not produce usable results for anything else than MPEG
- or raw streams, unless capturing includes the file headers and is not
- interrupted. Note that, due to cache latencies, captured data may begin and
- end somewhat delayed compared to what you see displayed.
-
- The destination file is always appended. (Before mpv 0.8.0, the file was
- overwritten.)
-
-``--stream-dump=<filename>``
- Same as ``--stream-capture``, but do not start playback. Instead, the entire
- file is dumped.
+``--stream-dump=<destination-filename>``
+ Instead of playing a file, read its byte stream and write it to the given
+ destination file. The destination is overwritten. Can be useful to test
+ network-related behavior.
``--stream-lavf-o=opt1=value1,opt2=value2,...``
Set AVOptions on streams opened with libavformat. Unknown or misspelled
@@ -4773,6 +4863,29 @@ Miscellaneous
This does not affect playlist expansion, redirection, or other loading of
referenced files like with ordered chapters.
+``--record-file=<file>``
+ Record the current stream to the given target file. The target file will
+ always be overwritten without asking.
+
+ This remuxes the source stream without reencoding, which makes this a
+ highly fragile and experimental feature. It's entirely possible that this
+ writes files which are broken, not standards compliant, not playable with
+ all players (including mpv), or incomplete.
+
+ The target file format is determined by the file extension of the target
+ filename. It is recommended to use the same target container as the source
+ container if possible, and preferring Matroska as fallback.
+
+ Seeking during stream recording, or enabling/disabling stream recording
+ during playback, can cut off data, or produce "holes" in the output file.
+ These are technical restrictions. In particular, video data or subtitles
+ which were read ahead can produce such holes, which might cause playback
+ problems with various players (including mpv).
+
+ The behavior of this option might changed in the future, such as changing
+ it to a template (similar to ``--screenshot-template``), being renamed,
+ removed, or anything else, until it is declared semi-stable.
+
``--lavfi-complex=<string>``
Set a "complex" libavfilter filter, which means a single filter graph can
take input from multiple source audio and video tracks. The graph can result
diff --git a/DOCS/mplayer-changes.rst b/DOCS/mplayer-changes.rst
index 397bb47c9e..df33f66e3f 100644
--- a/DOCS/mplayer-changes.rst
+++ b/DOCS/mplayer-changes.rst
@@ -8,7 +8,10 @@ behaves. Although there are still many similarities to its ancestors, **mpv**
should generally be treated as a completely different program.
.. admonition:: Warning
- This document is not updated anymore, and is incomplete and outdated.
+
+ This document is **not updated** anymore, and is **incomplete** and
+ **outdated**. If you look for old option replacements, always check with
+ the current mpv manpage, as the options could have changed meanwhile.
General Changes from MPlayer to mpv
-----------------------------------