summaryrefslogtreecommitdiffstats
path: root/DOCS
diff options
context:
space:
mode:
Diffstat (limited to 'DOCS')
-rw-r--r--DOCS/client-api-changes.rst10
-rw-r--r--DOCS/compatibility.rst22
-rw-r--r--DOCS/interface-changes.rst14
-rw-r--r--DOCS/interface-changes/add-input-commands.txt1
-rw-r--r--DOCS/interface-changes/add-win32-context-menu.txt2
-rw-r--r--DOCS/interface-changes/cmd-nonrepeatable.txt1
-rw-r--r--DOCS/interface-changes/dolby-vision-configuration.txt1
-rw-r--r--DOCS/interface-changes/escape-ass.txt1
-rw-r--r--DOCS/interface-changes/floating-point_property_expansion.txt1
-rw-r--r--DOCS/interface-changes/input-select.txt1
-rw-r--r--DOCS/interface-changes/input-touch-emulate-mouse.txt1
-rw-r--r--DOCS/interface-changes/native-touch.txt1
-rw-r--r--DOCS/interface-changes/normalize-path.txt1
-rw-r--r--DOCS/interface-changes/option-info-expects-file.txt1
-rw-r--r--DOCS/interface-changes/osdscale.txt3
-rw-r--r--DOCS/interface-changes/pa-defaults.txt1
-rw-r--r--DOCS/interface-changes/show-in-taskbar.txt1
-rw-r--r--DOCS/interface-changes/sub-text-ass-full.txt1
-rw-r--r--DOCS/interface-changes/sub-text-ass.txt1
-rw-r--r--DOCS/interface-changes/sub-times.txt1
-rw-r--r--DOCS/interface-changes/term-size.txt1
-rw-r--r--DOCS/interface-changes/touch-pos.txt1
-rw-r--r--DOCS/interface-changes/track-list-decoder-tag.txt1
-rw-r--r--DOCS/interface-changes/vo-tct-buffering.txt1
-rw-r--r--DOCS/interface-changes/wasapi-exclusive-buffer.txt1
-rw-r--r--DOCS/man/ao.rst19
-rw-r--r--DOCS/man/console.rst2
-rw-r--r--DOCS/man/input.rst201
-rw-r--r--DOCS/man/javascript.rst4
-rw-r--r--DOCS/man/lua.rst43
-rw-r--r--DOCS/man/mpv.rst69
-rw-r--r--DOCS/man/options.rst113
-rw-r--r--DOCS/man/osc.rst90
-rw-r--r--DOCS/man/stats.rst49
-rw-r--r--DOCS/man/vf.rst18
-rw-r--r--DOCS/man/vo.rst4
36 files changed, 537 insertions, 146 deletions
diff --git a/DOCS/client-api-changes.rst b/DOCS/client-api-changes.rst
index 565912cb81..e48cda4fa0 100644
--- a/DOCS/client-api-changes.rst
+++ b/DOCS/client-api-changes.rst
@@ -31,11 +31,13 @@ API changes
===========
::
+
--- mpv 0.38.0 ---
- 2.3 - partially revert the changes from API version 1.27, remove libmpv as the default VO and
- move it to the bottom of the auto-probing order. this restores the behaviour prior API
- version 1.27 on all platforms other than macOS, but still auto selects libmpv/cocoa-cb
- on macOS if it was built with support for cocoa-cb.
+ 2.3 - partially revert the changes from API version 1.27, remove libmpv as
+ the default VO and move it to the bottom of the auto-probing order.
+ This restores the prior behavior on all platforms other than macOS,
+ but still auto selects libmpv/cocoa-cb on macOS if it was built with
+ support for cocoa-cb.
--- mpv 0.37.0 ---
2.2 - add mpv_time_ns()
--- mpv 0.36.0 ---
diff --git a/DOCS/compatibility.rst b/DOCS/compatibility.rst
index 3d6ec2cdfc..aeef8fc7ca 100644
--- a/DOCS/compatibility.rst
+++ b/DOCS/compatibility.rst
@@ -29,7 +29,16 @@ All of these are important for interfacing both with end users and API users
(which include Lua scripts, libmpv, and the JSON IPC). As such, they constitute
a large part of the user interface and APIs.
-All incompatible changes to this must be declared in interface-changes.rst.
+Certain options and commands may have documented default values. These default
+values are considered a part of the API since scripts may already rely on these
+documented behaviors. Changing these defaults are considered incompatible
+changes and must be documented. Undocumented default values do not subject to
+this requirement, and it is recommended to discourage such usage in the related
+documentations if there is a need to frequently change such defaults.
+
+All incompatible changes to this must be declared in interface-changes.rst,
+which include the types of changes, the impact of these changes, and suggested
+actions to address such impact so that the incompatibility is alleviated.
(This may also list compatible additions, but it's not a requirement.)
Degrees of importance and compatibility preservation
@@ -49,8 +58,17 @@ functionality still works, and a replacement is available (if technically
reasonable). For example, a feature deprecated in mpv 0.30.0 may be removed in
mpv 0.32.0. Minor releases do not count towards this.
+Under extraordinary circumstances, such as missed incompatible changes that are
+already included in a release, critical security fixes, or a severe shortage of
+developer time to address the known incompatible changes, important/often used
+parts may be broken immediately, but the change must be extensively documented:
+all of the related documentations (including manpage, interface-changes.rst,
+etc., retrospectively modified if applicable) must clearly state the following:
+the fact that the change is a breaking change; the version when the breaking
+change happened; and the reason, impact, and suggested remedy actions.
+
Less useful parts can be broken immediately, but must come with some sort of
-removal warning-
+removal warning.
Parts for debugging and testing may be removed any time, potentially even
without any sort of documentation.
diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst
index 5371fd43fe..28f6005653 100644
--- a/DOCS/interface-changes.rst
+++ b/DOCS/interface-changes.rst
@@ -30,6 +30,14 @@ Interface changes
::
--- mpv 0.38.0 ---
+ - add `term-size` property
+ - add the `escape-ass` command
+ - add `>` for fixed precision floating-point property expansion
+ - add `--input-comands` option
+ - change `--pulse-latency-hacks` default to `yes`
+ - add `context-menu` command
+ - add `menu-data` property
+ - add `--vo-tct-buffering` option
- add `begin-vo-dragging` command
- add `--deinterlace-field-parity` option
- add `--volume-gain`, `--volume-gain-min`, and `--volume-gain-max` options
@@ -56,7 +64,11 @@ Interface changes
- change `--hidpi-window-scale` default to `no`
- add `insert-next`, `insert-next-play`, `insert-at`, and `insert-at-play`
actions to `loadfile` and `loadlist` commands
- - add `index` argument to `loadfile` and `loadlist` commands
+ - add `index` argument to `loadlist` command
+ - add `index` argument to `loadfile` command. This breaks all existing
+ uses of this command which make use of the argument to include the list of
+ options to be set while the file is playing. To address this problem, the
+ third argument now needs to be set to -1 if the fourth argument needs to be used.
- move the `options` argument of the `loadfile` command from the third
parameter to the fourth (after `index`)
- add `--drag-and-drop=insert-next` option
diff --git a/DOCS/interface-changes/add-input-commands.txt b/DOCS/interface-changes/add-input-commands.txt
deleted file mode 100644
index 3db6bd4055..0000000000
--- a/DOCS/interface-changes/add-input-commands.txt
+++ /dev/null
@@ -1 +0,0 @@
-add `--input-comands` option
diff --git a/DOCS/interface-changes/add-win32-context-menu.txt b/DOCS/interface-changes/add-win32-context-menu.txt
deleted file mode 100644
index 10cc63b0ef..0000000000
--- a/DOCS/interface-changes/add-win32-context-menu.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-add `context-menu` command
-add `menu-data` property
diff --git a/DOCS/interface-changes/cmd-nonrepeatable.txt b/DOCS/interface-changes/cmd-nonrepeatable.txt
new file mode 100644
index 0000000000..887b44b982
--- /dev/null
+++ b/DOCS/interface-changes/cmd-nonrepeatable.txt
@@ -0,0 +1 @@
+add `nonrepeatable` input command prefix
diff --git a/DOCS/interface-changes/dolby-vision-configuration.txt b/DOCS/interface-changes/dolby-vision-configuration.txt
new file mode 100644
index 0000000000..9383310fb9
--- /dev/null
+++ b/DOCS/interface-changes/dolby-vision-configuration.txt
@@ -0,0 +1 @@
+add `track-list/N/dolby-vision-profile` and `track-list/N/dolby-vision-level`
diff --git a/DOCS/interface-changes/escape-ass.txt b/DOCS/interface-changes/escape-ass.txt
deleted file mode 100644
index 93ec1ca5e5..0000000000
--- a/DOCS/interface-changes/escape-ass.txt
+++ /dev/null
@@ -1 +0,0 @@
-add the `escape-ass` command
diff --git a/DOCS/interface-changes/floating-point_property_expansion.txt b/DOCS/interface-changes/floating-point_property_expansion.txt
deleted file mode 100644
index eeda63d113..0000000000
--- a/DOCS/interface-changes/floating-point_property_expansion.txt
+++ /dev/null
@@ -1 +0,0 @@
-add `>` for fixed precision floating-point property expansion
diff --git a/DOCS/interface-changes/input-select.txt b/DOCS/interface-changes/input-select.txt
new file mode 100644
index 0000000000..03e421a6c7
--- /dev/null
+++ b/DOCS/interface-changes/input-select.txt
@@ -0,0 +1 @@
+`add mp.input.select()`
diff --git a/DOCS/interface-changes/input-touch-emulate-mouse.txt b/DOCS/interface-changes/input-touch-emulate-mouse.txt
new file mode 100644
index 0000000000..00b08b7715
--- /dev/null
+++ b/DOCS/interface-changes/input-touch-emulate-mouse.txt
@@ -0,0 +1 @@
+add --input-touch-emulate-mouse option
diff --git a/DOCS/interface-changes/native-touch.txt b/DOCS/interface-changes/native-touch.txt
new file mode 100644
index 0000000000..91c3a53bad
--- /dev/null
+++ b/DOCS/interface-changes/native-touch.txt
@@ -0,0 +1 @@
+add --native-touch option
diff --git a/DOCS/interface-changes/normalize-path.txt b/DOCS/interface-changes/normalize-path.txt
new file mode 100644
index 0000000000..5abdaf421d
--- /dev/null
+++ b/DOCS/interface-changes/normalize-path.txt
@@ -0,0 +1 @@
+add the `normalize-path` command
diff --git a/DOCS/interface-changes/option-info-expects-file.txt b/DOCS/interface-changes/option-info-expects-file.txt
new file mode 100644
index 0000000000..c8a54da0a7
--- /dev/null
+++ b/DOCS/interface-changes/option-info-expects-file.txt
@@ -0,0 +1 @@
+add "option-info/<name>/expects-file" sub-property
diff --git a/DOCS/interface-changes/osdscale.txt b/DOCS/interface-changes/osdscale.txt
new file mode 100644
index 0000000000..38eec1afc8
--- /dev/null
+++ b/DOCS/interface-changes/osdscale.txt
@@ -0,0 +1,3 @@
+change `vidscale` script option type to string for osc.lua
+change `vidscale` script option type to string for stats.lua
+change `vidscale` default from `yes` to `auto` for osc.lua and stats.lua
diff --git a/DOCS/interface-changes/pa-defaults.txt b/DOCS/interface-changes/pa-defaults.txt
deleted file mode 100644
index 7298de173a..0000000000
--- a/DOCS/interface-changes/pa-defaults.txt
+++ /dev/null
@@ -1 +0,0 @@
-change `--pulse-latency-hacks` default to `yes`
diff --git a/DOCS/interface-changes/show-in-taskbar.txt b/DOCS/interface-changes/show-in-taskbar.txt
new file mode 100644
index 0000000000..c37bda0872
--- /dev/null
+++ b/DOCS/interface-changes/show-in-taskbar.txt
@@ -0,0 +1 @@
+add `--show-in-taskbar` option
diff --git a/DOCS/interface-changes/sub-text-ass-full.txt b/DOCS/interface-changes/sub-text-ass-full.txt
new file mode 100644
index 0000000000..e0f4206af8
--- /dev/null
+++ b/DOCS/interface-changes/sub-text-ass-full.txt
@@ -0,0 +1 @@
+add `sub-text/ass-full` sub-property
diff --git a/DOCS/interface-changes/sub-text-ass.txt b/DOCS/interface-changes/sub-text-ass.txt
new file mode 100644
index 0000000000..58db3f7f0c
--- /dev/null
+++ b/DOCS/interface-changes/sub-text-ass.txt
@@ -0,0 +1 @@
+deprecate `sub-text-ass` property; add `sub-text/ass` sub-property
diff --git a/DOCS/interface-changes/sub-times.txt b/DOCS/interface-changes/sub-times.txt
new file mode 100644
index 0000000000..8c2929b15a
--- /dev/null
+++ b/DOCS/interface-changes/sub-times.txt
@@ -0,0 +1 @@
+change type of `sub-start` and `sub-end` properties to time
diff --git a/DOCS/interface-changes/term-size.txt b/DOCS/interface-changes/term-size.txt
deleted file mode 100644
index dd65a66256..0000000000
--- a/DOCS/interface-changes/term-size.txt
+++ /dev/null
@@ -1 +0,0 @@
-add `term-size` property
diff --git a/DOCS/interface-changes/touch-pos.txt b/DOCS/interface-changes/touch-pos.txt
new file mode 100644
index 0000000000..a390d2369f
--- /dev/null
+++ b/DOCS/interface-changes/touch-pos.txt
@@ -0,0 +1 @@
+add `touch-pos` property
diff --git a/DOCS/interface-changes/track-list-decoder-tag.txt b/DOCS/interface-changes/track-list-decoder-tag.txt
new file mode 100644
index 0000000000..2e999af3c2
--- /dev/null
+++ b/DOCS/interface-changes/track-list-decoder-tag.txt
@@ -0,0 +1 @@
+add `track-list/N/decoder`
diff --git a/DOCS/interface-changes/vo-tct-buffering.txt b/DOCS/interface-changes/vo-tct-buffering.txt
deleted file mode 100644
index 7f1b74e490..0000000000
--- a/DOCS/interface-changes/vo-tct-buffering.txt
+++ /dev/null
@@ -1 +0,0 @@
-add `--vo-tct-buffering` option
diff --git a/DOCS/interface-changes/wasapi-exclusive-buffer.txt b/DOCS/interface-changes/wasapi-exclusive-buffer.txt
new file mode 100644
index 0000000000..161f2271c7
--- /dev/null
+++ b/DOCS/interface-changes/wasapi-exclusive-buffer.txt
@@ -0,0 +1 @@
+add `--wasapi-exclusive-buffer` option
diff --git a/DOCS/man/ao.rst b/DOCS/man/ao.rst
index 4ac1cc52ee..f03f64242e 100644
--- a/DOCS/man/ao.rst
+++ b/DOCS/man/ao.rst
@@ -15,6 +15,10 @@ in the list.
See ``--ao=help`` for a list of compiled-in audio output drivers sorted by
autoprobe order.
+ Note that the default audio output driver is subject to change, and must
+ not be relied upon. If a certain AO needs to be used, it must be
+ explicitly specified.
+
Available audio output drivers are:
``alsa``
@@ -297,3 +301,18 @@ Available audio output drivers are:
``wasapi``
Audio output to the Windows Audio Session API.
+
+ The following global options are supported by this audio output:
+
+ ``--wasapi-exclusive-buffer=<default|min|1-2000000>``
+ Set buffer duration in exclusive mode (i.e., with
+ ``--audio-exclusive=yes``). ``default`` and ``min`` use the default and
+ minimum device period reported by WASAPI, respectively. You can also
+ directly specify the buffer duration in microseconds, in which case a
+ duration shorter than the minimum device period will be rounded up to
+ the minimum period.
+
+ The default buffer duration should provide robust playback in most
+ cases, but reportedly on some devices there are glitches following
+ stream resets under the default setting. In such cases, specifying a
+ shorter duration might help.
diff --git a/DOCS/man/console.rst b/DOCS/man/console.rst
index b9f169f1cc..69cc103c15 100644
--- a/DOCS/man/console.rst
+++ b/DOCS/man/console.rst
@@ -123,7 +123,7 @@ Configuration
This script can be customized through a config file ``script-opts/console.conf``
placed in mpv's user directory and through the ``--script-opts`` command-line
-option. The configuration syntax is described in `ON SCREEN CONTROLLER`_.
+option. The configuration syntax is described in `mp.options functions`_.
Key bindings can be changed in a standard way, see for example stats.lua
documentation.
diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst
index 6d6b64c1ad..479e2a4272 100644
--- a/DOCS/man/input.rst
+++ b/DOCS/man/input.rst
@@ -487,7 +487,7 @@ Remember to quote string arguments in input.conf (see `Flat command syntax`_).
``insert-at-play`` actions. When used with those actions, the new item will
be inserted at the index position in the playlist, or appended to the end if
index is less than 0 or greater than the size of the playlist. This argument
- will be ignored for all other actions.
+ will be ignored for all other actions. This argument is added in mpv 0.38.0.
The fourth argument is a list of options and values which should be set
while the file is playing. It is of the form ``opt1=value1,opt2=value2,..``.
@@ -496,6 +496,14 @@ Remember to quote string arguments in input.conf (see `Flat command syntax`_).
options are set during playback, and restored to the previous value at end
of playback (see `Per-File Options`_).
+ .. warning::
+
+ Since mpv 0.38.0, an insertion index argument is added as the third argument.
+ This breaks all existing uses of this command which make use of the argument
+ to include the list of options to be set while the file is playing. To address
+ this problem, the third argument now needs to be set to -1 if the fourth
+ argument needs to be used.
+
``loadlist <url> [<flags> [<index>]]``
Load the given playlist file or URL (like ``--playlist``).
@@ -775,7 +783,11 @@ Remember to quote string arguments in input.conf (see `Flat command syntax`_).
Steps through the secondary subtitles.
``sub-seek <skip> <flags>``
- Seek to the next (skip set to 1) or the previous (skip set to -1) subtitle.
+ Change video and audio position such that the subtitle event after
+ ``<skip>`` subtitle events is displayed. For example, ``sub-seek 1`` skips
+ to the next subtitle, ``sub-seek -1`` skips to the previous subtitles, and
+ ``sub-seek 0`` seeks to the beginning of the current subtitle.
+
This is similar to ``sub-step``, except that it seeks video and audio
instead of adjusting the subtitle delay.
@@ -788,7 +800,7 @@ Remember to quote string arguments in input.conf (see `Flat command syntax`_).
For embedded subtitles (like with Matroska), this works only with subtitle
events that have already been displayed, or are within a short prefetch
- range.
+ range. See `Cache`_ for details on how to control the available prefetch range.
``print-text <text>``
Print text to stdout. The string can contain properties (see
@@ -806,12 +818,12 @@ Remember to quote string arguments in input.conf (see `Flat command syntax`_).
<level>
The minimum OSD level to show the text at (see ``--osd-level``).
-``expand-text <string>``
+``expand-text <text>``
Property-expand the argument and return the expanded string. This can be
used only through the client API or from a script using
``mp.command_native``. (see `Property Expansion`_).
-``expand-path "<string>"``
+``expand-path "<text>"``
Expand a path's double-tilde placeholders into a platform-specific path.
As ``expand-text``, this can only be used through the client API or from
a script using ``mp.command_native``.
@@ -823,6 +835,33 @@ Remember to quote string arguments in input.conf (see `Flat command syntax`_).
This line of Lua would show the location of the user's mpv
configuration directory on the OSD.
+``normalize-path <filename>``
+ Return a canonical representation of the path ``filename`` by converting it
+ to an absolute path, removing consecutive slashes, removing ``.``
+ components, resolving ``..`` components, and converting slashes to
+ backslashes on Windows. Symlinks are not resolved unless the platform is
+ Unix-like and one of the path components is ``..``. If ``filename`` is a
+ URL, it is returned unchanged. This can only be used through the client API
+ or from a script using ``mp.command_native``.
+
+ .. admonition:: Example
+
+ ``mp.osd_message(mp.command_native({"normalize-path", "/foo//./bar"}))``
+
+ This line of Lua prints "/foo/bar" on the OSD.
+
+``escape-ass <text>``
+ Modify ``text`` so that commands and functions that interpret ASS tags,
+ such as ``osd-overlay`` and ``mp.create_osd_overlay``, will display it
+ verbatim, and return it. This can only be used through the client API or
+ from a script using ``mp.command_native``.
+
+ .. admonition:: Example
+
+ ``mp.osd_message(mp.command_native({"escape-ass", "foo {bar}"}))``
+
+ This line of Lua prints "foo \\{bar}" on the OSD.
+
``show-progress``
Show the progress bar, the elapsed time and the total duration of the file
on the OSD. ``no-osd`` has no effect on this command.
@@ -1262,18 +1301,6 @@ Input Commands that are Possibly Subject to Change
use the ``mp.create_osd_overlay()`` helper instead of invoking this
command directly.
-``escape-ass <text>``
- Modify ``text`` so that commands and functions that interpret ASS tags,
- such as ``osd-overlay`` and ``mp.create_osd_overlay``, will display it
- verbatim, and return it. This can only be used through the client API or
- from a script using ``mp.command_native``.
-
- .. admonition:: Example
-
- ``mp.osd_message(mp.command_native({"escape-ass", "foo {bar}"}))``
-
- This line of Lua prints "foo \\{bar}" on the OSD.
-
``script-message [<arg1> [<arg2> [...]]]``
Send a message to all clients, and pass it the following list of arguments.
What this message means, how many arguments it takes, and what the arguments
@@ -1799,6 +1826,9 @@ prefixes can be specified. They are separated by whitespace.
This prefix forces enabling key repeat in any case. For a list of commands:
the first command determines the repeatability of the whole list (up to and
including version 0.33 - a list was always repeatable).
+``nonrepeatable``
+ For some commands, keeping a key pressed runs the command repeatedly.
+ This prefix forces disabling key repeat in any case.
``async``
Allow asynchronous execution (if possible). Note that only a few commands
will support this (usually this is explicitly documented). Some commands
@@ -2318,6 +2348,11 @@ Property list
other byte-oriented input layer) in bytes per second. May be inaccurate or
missing.
+ ``ts-per-stream`` is an array containing an entry for each stream type: video,
+ audio, and subtitle. For each stream type, the details for the demuxer cache
+ for that stream type are available as ``cache-duration``, ``reader-pts`` and
+ ``cache-end``.
+
When querying the property with the client API using ``MPV_FORMAT_NODE``,
or with Lua ``mp.get_property_native``, this will return a mpv_node with
the following contents:
@@ -2337,6 +2372,12 @@ Property list
"reader-pts" MPV_FORMAT_DOUBLE
"cache-duration" MPV_FORMAT_DOUBLE
"raw-input-rate" MPV_FORMAT_INT64
+ "ts-per-stream" MPV_FORMAT_NODE_ARRAY
+ MPV_FORMAT_NODE_MAP
+ "type" MPV_FORMAT_STRING
+ "cache-duration" MPV_FORMAT_DOUBLE
+ "reader-pts" MPV_FORMAT_DOUBLE
+ "cache-end" MPV_FORMAT_DOUBLE
Other fields (might be changed or removed in the future):
@@ -2522,7 +2563,7 @@ Property list
Display aspect ratio as float.
``video-params/aspect-name``
- Display aspect ratio name as string. The name coresponds to motion
+ Display aspect ratio name as string. The name corresponds to motion
picture film format that introduced given aspect ratio in film.
``video-params/par``
@@ -2690,30 +2731,6 @@ Property list
enabled, or after precise seeking). Files with imprecise timestamps (such
as Matroska) might lead to unstable results.
-``window-scale`` (RW)
- Window size multiplier. Setting this will resize the video window to the
- values contained in ``dwidth`` and ``dheight`` multiplied with the value
- set with this property. Setting ``1`` will resize to original video size
- (or to be exact, the size the video filters output). ``2`` will set the
- double size, ``0.5`` halves the size.
-
- Note that setting a value identical to its previous value will not resize
- the window. That's because this property mirrors the ``window-scale``
- option, and setting an option to its previous value is ignored. If this
- value is set while the window is in a fullscreen, the multiplier is not
- applied until the window is taken out of that state. Writing this property
- to a maximized window can unmaximize the window depending on the OS and
- window manager. If the window does not unmaximize, the multiplier will be
- applied if the user unmaximizes the window later.
-
- See ``current-window-scale`` for the value derived from the actual window
- size.
-
- Since mpv 0.31.0, this always returns the previously set value (or the
- default value), instead of the value implied by the actual window size.
- Before mpv 0.31.0, this returned what ``current-window-scale`` returns now,
- after the window was created.
-
``current-window-scale`` (RW)
The ``window-scale`` value calculated from the current window size. This
has the same value as ``window-scale`` if the window size was not changed
@@ -2722,10 +2739,9 @@ Property list
calculated from the last non-fullscreen size of the window. The property
is unavailable if no video is active.
- When setting this property in the fullscreen or maximized state, the behavior
- is the same as window-scale. In all other cases, setting the value of this
- property will always resize the window. This does not affect the value of
- ``window-scale``.
+ It is also possible to write to this property. This has the same behavior as
+ writing ``window-scale``. Note that writing to ``current-window-scale`` will
+ not affect the value of ``window-scale``.
``focused``
Whether the window has focus. Might not be supported by all VOs.
@@ -2736,11 +2752,11 @@ Property list
are the GDI names (\\.\DISPLAY1, \\.\DISPLAY2, etc.) and the first display
in the list will be the one that Windows considers associated with the
window (as determined by the MonitorFromWindow API.) On macOS these are the
- Display Product Names as used in the System Information and only one display
- name is returned since a window can only be on one screen. On Wayland, these
- are the wl_output names if protocol version >= 4 is used
- (LVDS-1, HDMI-A-1, X11-1, etc.), or the wl_output model reported by the
- geometry event if protocol version < 4 is used.
+ Display Product Names as used in the System Information with a serial number
+ in brackets and only one display name is returned since a window can only be
+ on one screen. On Wayland, these are the wl_output names if protocol
+ version >= 4 is used (LVDS-1, HDMI-A-1, X11-1, etc.), or the wl_output model
+ reported by the geometry event if protocol version < 4 is used.
``display-fps``
The refresh rate of the current display. Currently, this is the lowest FPS
@@ -2825,7 +2841,7 @@ Property list
not being opened yet or not being supported by the VO.
``mouse-pos``
- Read-only - last known mouse position, normalizd to OSD dimensions.
+ Read-only - last known mouse position, normalized to OSD dimensions.
Has the following sub-properties (which can be read as ``MPV_FORMAT_NODE``
or Lua table with ``mp.get_property_native``):
@@ -2838,6 +2854,35 @@ Property list
coordinates should be ignored when this value is false, because the
video backends update them only when the pointer hovers the window.
+``touch-pos``
+ Read-only - last known touch point positions, normalized to OSD dimensions.
+
+ This has a number of sub-properties. Replace ``N`` with the 0-based touch
+ point index. Whenever a new finger touches the screen, a new touch point is
+ added to the list of touch points with the smallest unused ``N`` available.
+
+ ``touch-pos/count``
+ Number of active touch points.
+
+ ``touch-pos/N/x``, ``touch-pos/N/y``
+ Position of the Nth touch point.
+
+ ``touch-pos/N/id``
+ Unique identifier of the touch point. This can be used to identify
+ individual touch points when their indexes change.
+
+ When querying the property with the client API using ``MPV_FORMAT_NODE``,
+ or with Lua ``mp.get_property_native``, this will return a mpv_node with
+ the following contents:
+
+ ::
+
+ MPV_FORMAT_NODE_ARRAY
+ MPV_FORMAT_NODE_MAP (for each touch point)
+ "x" MPV_FORMAT_INT64
+ "y" MPV_FORMAT_INT64
+ "id" MPV_FORMAT_INT64
+
``sub-ass-extradata``
The current ASS subtitle track's extradata. There is no formatting done.
The extradata is returned as a string as-is. This property is not
@@ -2848,25 +2893,38 @@ Property list
stripped. If the subtitle is not text-based (i.e. DVD/BD subtitles), an
empty string is returned.
-``sub-text-ass``
- Like ``sub-text``, but return the text in ASS format. Text subtitles in
- other formats are converted. For native ASS subtitles, events that do
- not contain any text (but vector drawings etc.) are not filtered out. If
- multiple events match with the current playback time, they are concatenated
- with line breaks. Contains only the "Text" part of the events.
+ This has sub-properties for different formats:
+
+ ``sub-text/ass``
+ Like ``sub-text``, but return the text in ASS format. Text subtitles in
+ other formats are converted. For native ASS subtitles, events that do
+ not contain any text (but vector drawings etc.) are not filtered out. If
+ multiple events match with the current playback time, they are concatenated
+ with line breaks. Contains only the "Text" part of the events.
- This property is not enough to render ASS subtitles correctly, because ASS
- header and per-event metadata are not returned. You likely need to do
- further filtering on the returned string to make it useful.
+ This property is not enough to render ASS subtitles correctly, because ASS
+ header and per-event metadata are not returned. Use ``/ass-full`` for that.
+
+ ``sub-text/ass-full``
+ Like ``sub-text-ass``, but return the full event with all fields, formatted as
+ lines in a .ass text file. Use with ``sub-ass-extradata`` for style information.
+
+``sub-text-ass`` (deprecated)
+ Deprecated alias for ``sub-text/ass``.
``secondary-sub-text``
- Same as ``sub-text``, but for the secondary subtitles.
+ Same as ``sub-text`` (with the same sub-properties), but for the secondary subtitles.
``sub-start``
The current subtitle start time (in seconds). If there's multiple current
subtitles, returns the first start time. If no current subtitle is present
null is returned instead.
+ This has a sub-property:
+
+ ``sub-start/full``
+ ``sub-start`` with milliseconds.
+
``secondary-sub-start``
Same as ``sub-start``, but for the seconda