summaryrefslogtreecommitdiffstats
path: root/DOCS
diff options
context:
space:
mode:
Diffstat (limited to 'DOCS')
-rw-r--r--DOCS/build-system-differences.md70
-rw-r--r--DOCS/client-api-changes.rst12
-rw-r--r--DOCS/compile-windows.md69
-rw-r--r--DOCS/contribute.md43
-rw-r--r--DOCS/interface-changes.rst211
-rw-r--r--DOCS/interface-changes/example.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/track-list-decoder-tag.txt1
-rw-r--r--DOCS/interface-changes/wasapi-exclusive-buffer.txt1
-rw-r--r--DOCS/man/af.rst42
-rw-r--r--DOCS/man/ao.rst102
-rw-r--r--DOCS/man/changes.rst3
-rw-r--r--DOCS/man/console.rst79
-rw-r--r--DOCS/man/encode.rst21
-rw-r--r--DOCS/man/input.rst533
-rw-r--r--DOCS/man/ipc.rst4
-rw-r--r--DOCS/man/javascript.rst25
-rw-r--r--DOCS/man/libmpv.rst12
-rw-r--r--DOCS/man/lua.rst129
-rw-r--r--DOCS/man/mpv.rst314
-rw-r--r--DOCS/man/options.rst1551
-rw-r--r--DOCS/man/osc.rst53
-rw-r--r--DOCS/man/stats.rst75
-rw-r--r--DOCS/man/vf.rst66
-rw-r--r--DOCS/man/vo.rst196
-rw-r--r--DOCS/mplayer-changes.rst14
-rw-r--r--DOCS/release-policy.md33
-rw-r--r--DOCS/tech-overview.txt122
-rw-r--r--DOCS/waf-buildsystem.rst157
32 files changed, 2480 insertions, 1463 deletions
diff --git a/DOCS/build-system-differences.md b/DOCS/build-system-differences.md
deleted file mode 100644
index 7b1a5e5bfd..0000000000
--- a/DOCS/build-system-differences.md
+++ /dev/null
@@ -1,70 +0,0 @@
-# Differences Between Meson and Waf
-
-mpv currently supports two different build systems: waf and meson. In general,
-option names between both build systems are mostly the same. In most cases,
-``--enable-foo`` in waf becomes ``-Dfoo=enabled`` in meson. Likewise,
-``--disable-foo`` becomes ``-Dfoo=disabled``. For the rest of this document,
-Waf options will be noted as ``--foo`` while meson options are noted as
-``foo``.
-
-## Universal Options
-
-Meson has several [universal options](https://mesonbuild.com/Builtin-options.html#universal-options)
-that you get for free. In some cases, these overlapped with custom waf options.
-
-* ``--libmpv-static`` and ``--libmpv-shared`` were combined into one option:
- ``libmpv``. Use ``default_library`` to control if you want to build static or
- shared libraries.
-* Waf had a boolean ``--optimize`` option. In meson, this is a universal option,
- ``optimization``, which can take several different values. In mpv's meson
- build, the default is ``2``.
-* Instead of ``--debug-build``, meson simply calls it ``debug``. It is enabled
- by default.
-
-## Changed Options
-
-* The legacy lua names (``52``, ``52deb``, etc.) for ``--lua`` are not
- supported in the meson build. Instead, pass the generic pkg-config values
- such as ``lua52``, ``lua5.2``, etc.
-* ``--lgpl`` was changed to ``gpl``. If ``gpl`` is false, the build is LGPL2.1+.
-
-### Boolean Options
-
-The following options are all booleans that accept ``true`` or ``false``
-instead of ``enabled`` or ``disabled``.
-
-* ``build-date``
-* ``cplayer``
-* ``gpl``
-* ``libmpv``
-* ``ta-leak-report``
-* ``tests``
-
-## Removed Options
-
-There are options removed with no equivalent in the meson build.
-
-* ``--asm`` was removed since it doesn't do anything.
-* ``--android`` was removed since meson knows if the machine is android.
-* ``--clang-compilation-database`` was removed. Meson can do this on its own
- by invoking ninja (``ninja -t compdb``).
-* ``--tvos`` was removed since it doesn't do anything.
-* ``--static-build`` was removed. Use ``default_library``.
-* ``--swift-static`` was removed. The swift library always dynamically links.
-
-## Renamed Options
-
-These are some other options that were renamed.
-
-* ``--gl-wayland`` was renamed to ``egl-wayland``.
-* ``--swift`` was renamed to ``swift-build``.
-
-## Other
-
-* The meson build supports passing the ``SOURCE_DATE_EPOCH`` environment variable
-during the compilation step for those who want reproducibility without having to
-disable the build date.
-* The ``Configuration`` line shown by ``mpv -v`` does not show everything passed on
-cli since meson does not have any easy way to access a user's argv. Instead, it
-simply shows whatever the value of ``prefix`` is regardless if it was specified
-or not.
diff --git a/DOCS/client-api-changes.rst b/DOCS/client-api-changes.rst
index f1203436b2..e48cda4fa0 100644
--- a/DOCS/client-api-changes.rst
+++ b/DOCS/client-api-changes.rst
@@ -32,6 +32,16 @@ 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 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 ---
+ 2.1 - add mpv_del_property()
--- mpv 0.35.0 ---
2.0 - remove headers/functions of the obsolete opengl_cb API
- remove mpv_opengl_init_params.extra_exts field
@@ -269,7 +279,7 @@ API changes
- extend the "--start" option; a leading "+", which was previously
insignificant is now significant
- add "cache-free" and "cache-used" properties
- - OSX: the "coreaudio" AO spdif code is split into a separate AO
+ - macOS: the "coreaudio" AO spdif code is split into a separate AO
--- mpv 0.4.0 ---
1.0 - the API is declared stable
diff --git a/DOCS/compile-windows.md b/DOCS/compile-windows.md
index 58f0daecf0..04bc200f37 100644
--- a/DOCS/compile-windows.md
+++ b/DOCS/compile-windows.md
@@ -4,28 +4,43 @@ Compiling for Windows
Compiling for Windows is supported with MinGW-w64. This can be used to produce
both 32-bit and 64-bit executables, and it works for building on Windows and
cross-compiling from Linux and Cygwin. MinGW-w64 is available from:
-http://mingw-w64.sourceforge.net.
+https://www.mingw-w64.org/
While building a complete MinGW-w64 toolchain yourself is possible, there are a
few build environments and scripts to help ease the process, such as MSYS2 and
MXE. Note that MinGW environments included in Linux distributions are often
broken, outdated and useless, and usually don't use MinGW-w64.
-**Warning**: the original MinGW (http://www.mingw.org) is unsupported.
+**Warning**: the original MinGW (https://osdn.net/projects/mingw/) is unsupported.
Cross-compilation
=================
-When cross-compiling, you have to run mpv's configure with these arguments:
-
-```bash
-DEST_OS=win32 TARGET=i686-w64-mingw32 ./waf configure
+When cross-compiling, it is recommended to use a meson crossfile to setup
+the cross compiling environment. A minimal example is included below:
+
+```ini
+[binaries]
+c = 'x86_64-w64-mingw32-gcc'
+cpp = 'x86_64-w64-mingw32-g++'
+ar = 'x86_64-w64-mingw32-ar'
+strip = 'x86_64-w64-mingw32-strip'
+exe_wrapper = 'wine64'
+
+[host_machine]
+system = 'windows'
+cpu_family = 'x86_64'
+cpu = 'x86_64'
+endian = 'little'
```
+See [meson's documentation](https://mesonbuild.com/Cross-compilation.html) for
+more information.
+
[MXE](https://mxe.cc) makes it very easy to bootstrap a complete MingGW-w64
environment from a Linux machine. See a working example below.
-Alternatively, you can try [mingw-w64-cmake](https://github.com/lachs0r/mingw-w64-cmake),
+Alternatively, you can try [mpv-winbuild-cmake](https://github.com/shinchiro/mpv-winbuild-cmake),
which bootstraps a MinGW-w64 environment and builds mpv and dependencies.
Example with MXE
@@ -79,11 +94,8 @@ export PATH=/opt/mxe/usr/bin/:$PATH
cd ..
git clone https://github.com/mpv-player/mpv.git
cd mpv
-python ./bootstrap.py
-DEST_OS=win32 TARGET=i686-w64-mingw32.static ./waf configure
-# Or, if 64 bit version,
-# DEST_OS=win32 TARGET=x86_64-w64-mingw32.static ./waf configure
-./waf build
+meson setup build --crossfile crossfile
+meson compile -C build
```
Native compilation with MSYS2
@@ -99,7 +111,7 @@ To build 64-bit mpv on Windows:
Installing MSYS2
----------------
-1. Download an installer from https://msys2.github.io/
+1. Download an installer from https://www.msys2.org/
Both the i686 and the x86_64 version of MSYS2 can build 32-bit and 64-bit
mpv binaries when running on a 64-bit version of Windows, but the x86_64
@@ -132,37 +144,30 @@ Installing mpv dependencies
```bash
# Install MSYS2 build dependencies and a MinGW-w64 compiler
-pacman -S git python $MINGW_PACKAGE_PREFIX-{pkg-config,gcc}
+pacman -S git $MINGW_PACKAGE_PREFIX-{python,pkgconf,gcc,meson}
# Install the most important MinGW-w64 dependencies. libass and lcms2 are also
# pulled in as dependencies of ffmpeg.
-pacman -S $MINGW_PACKAGE_PREFIX-{ffmpeg,libjpeg-turbo,lua51}
+pacman -S $MINGW_PACKAGE_PREFIX-{ffmpeg,libjpeg-turbo,luajit}
```
Building mpv
------------
-Clone the latest mpv from git and install waf. **Note:** ``/usr/bin/python3``
-is invoked directly here, since an MSYS2 version of Python is required.
-
-```bash
-git clone https://github.com/mpv-player/mpv.git && cd mpv
-/usr/bin/python3 bootstrap.py
-```
-
Finally, compile and install mpv. Binaries will be installed to
``/mingw64/bin`` or ``/mingw32/bin``.
```bash
-/usr/bin/python3 waf configure CC=gcc.exe --check-c-compiler=gcc --prefix=$MSYSTEM_PREFIX
-/usr/bin/python3 waf install
+meson setup build --prefix=$MSYSTEM_PREFIX
+meson compile -C build
```
Or, compile and install both libmpv and mpv:
```bash
-/usr/bin/python3 waf configure CC=gcc.exe --check-c-compiler=gcc --enable-libmpv-shared --prefix=$MSYSTEM_PREFIX
-/usr/bin/python3 waf install
+meson setup build -Dlibmpv=true --prefix=$MSYSTEM_PREFIX
+meson compile -C build
+meson install -C build
```
Linking libmpv with MSVC programs
@@ -177,13 +182,11 @@ To do this, you need a Visual Studio which supports ``stdint.h`` (recent ones do
and you need to create a import library for the mpv DLL:
```bash
-lib /def:mpv.def /name:mpv-1.dll /out:mpv.lib /MACHINE:X64
+lib /name:mpv-1.dll /out:mpv.lib /MACHINE:X64
```
The string in the ``/name:`` parameter must match the filename of the DLL (this
-is simply the filename the MSVC linker will use). The ``mpv.def`` can be
-retrieved from the mpv build directory, or can be produced by MingGW's
-gendef.exe helper from the mpv DLL.
+is simply the filename the MSVC linker will use).
Static linking is not possible.
@@ -208,6 +211,4 @@ Use of the ANGLE OpenGL backend requires a copy of the D3D compiler DLL that
matches the version of the D3D SDK that ANGLE was built with
(``d3dcompiler_43.dll`` in case of MinGW-built ANGLE) in the path or in the
same folder as mpv. It must be of the same architecture (x86_64 / i686) as the
-mpv you compiled. You can find copies here:
-
-https://mpv.srsfckn.biz/d3dcompiler.7z
+mpv you compiled.
diff --git a/DOCS/contribute.md b/DOCS/contribute.md
index c33cab1467..4d2af4ea4e 100644
--- a/DOCS/contribute.md
+++ b/DOCS/contribute.md
@@ -5,13 +5,13 @@ General
-------
The main contact for mpv development is IRC, specifically #mpv
-and #mpv-devel on Libera.chat. Github is used for code review and
+and #mpv-devel on Libera.chat. GitHub is used for code review and
long term discussions.
Sending patches
---------------
-- Make a github pull request, or send a link to a plaintext patch created with
+- Make a GitHub pull request, or send a link to a plaintext patch created with
``git format-patch``.
- Plain diffs posted as pastebins are not acceptable! (Especially if the http
link returns HTML.) They only cause extra work for everyone, because they lack
@@ -111,13 +111,13 @@ Always squash fixup commits when making changes to pull requests
- If you make fixup commits to your pull request, you should generally squash
them with "git rebase -i". We prefer to have pull requests in a merge
ready state.
-- We don't squash-merge (nor do we use github's feature that does this) because
+- We don't squash-merge (nor do we use GitHub's feature that does this) because
pull requests with multiple commits are perfectly legitimate, and the only
thing that makes sense in non-trivial cases.
- With complex pull requests, it *may* make sense to keep them separate, but
they should be clearly marked as such. Reviewing commits is generally easier
with fixups squashed.
-- Reviewers are encouraged to look at individual commits instead of github's
+- Reviewers are encouraged to look at individual commits instead of GitHub's
"changes from all commits" view (which just encourages bad git and review
practices).
@@ -131,16 +131,28 @@ Touching user-visible parts may require updating the mpv docs
- Changes to command line options (addition/modification/removal) must be
documented in options.rst.
- Changes to input properties or input commands must be documented in input.rst.
-- All incompatible changes to the user interface (options, properties, commands)
- must be documented with a small note in interface-changes.rst. (Additions may
- be documented there as well, but this isn't required.)
- Changes to the libmpv API must be reflected in the libmpv's headers doxygen,
and in client-api-changes.rst.
+Interface change policy
+-----------------------
+
+- All incompatible changes to the user interface (options, properties, commands)
+ must be documented by making a new text file with a txt extension containing a
+ small note in the DOCS/interface-changes directory.
+- The name of the file should be brief and related to the commit that makes the
+ change.
+- Grouping multiple related changes in the same file is also OK. Just be sure to
+ put each separate change on a different line.
+- Documenting additions in DOCS/interface-changes is optional but encouraged.
+- interface-changes.rst is never directly updated except when making new major
+ releases.
+- See DOCS/interface-changes/example.txt for an example.
+
Code formatting
---------------
-mpv uses C99 with K&R formatting, with some exceptions.
+mpv uses C11 with K&R formatting, with some exceptions.
- Use the K&R indent style.
- Use 4 spaces of indentation, never use tabs (except in Makefiles).
@@ -153,9 +165,9 @@ mpv uses C99 with K&R formatting, with some exceptions.
some_function(a, b, c);
}
```
-- Break lines on 80 columns. There is a hard limit of 85 columns. You may ignore
+- Break lines on 80 columns. There is a hard limit of 100 columns. You may ignore
this limit if there's a strong case that not breaking the line will increase
- readability. Going over 85 columns might provoke endless discussions about
+ readability. Going over 100 columns might provoke endless discussions about
whether such a limit is needed or not, so avoid it.
- If the body of an if/for/while statement has more than 1 physical lines, then
always add braces, even if they're technically redundant.
@@ -224,15 +236,16 @@ New code must follow the following conventions:
General coding
--------------
-- Use C99. Also freely make use of C99 features if it's appropriate, such as
- stdbool.h. (Except VLA and complex number types.)
+- Use C11. Also freely make use of C11 features if it's appropriate, but do not
+ use VLA and complex number types.
- Don't use non-standard language (such as GNU C-only features). In some cases
they may be warranted, if they are optional (such as attributes enabling
printf-like format string checks). "#pragma once" is allowed as an exception.
- But in general, standard C99 must be used.
+ But in general, standard C11 must be used.
- The same applies to libc functions. We have to be Windows-compatible too. Use
- functions guaranteed by C99 or POSIX only, unless your use is guarded by a
- configure check. There is some restricted use of C11 (ask on IRC for details).
+ functions guaranteed by C11 or POSIX only, unless your use is guarded by a
+ configure check. Be mindful of MinGW-specifics since C11 support is not always
+ guaranteed.
- Prefer fusing declaration and initialization, rather than putting declarations
on the top of a block. Obvious data flow is more important than avoiding
mixing declarations and statements, which is just a C90 artifact.
diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst
index c1d24496b3..b55ef97739 100644
--- a/DOCS/interface-changes.rst
+++ b/DOCS/interface-changes.rst
@@ -17,19 +17,222 @@ a large part of the user interface and APIs.
Also see compatibility.rst.
-This document lists changes to them. New changes are added to the top. Usually,
-only incompatible or important changes are mentioned. New options/commands/etc.
-are not always listed.
+This document lists changes to them. New options/commands/etc. are not always
+listed.
+
+**Never** write to this file directly except when making releases. New changes
+are added in the interface-changes directory instead. See contribute.md for more
+details.
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
+ - add `current-gpu-context` property
+ - add `--secondary-sub-ass-override` option
+ - add `--input-preprocess-wheel` option
+ - remove shared-script-properties (user-data is a replacement)
+ - add `--secondary-sub-delay`, decouple secondary subtitles from
+ `--sub-delay`
+ - add the `--osd-bar-border-size` option
+ - `--screenshot-avif-pixfmt` no longer defaults to yuv420p
+ - `--screenshot-avif-opts` defaults to lossless screenshot
+ - rename key `MP_KEY_BACK` to `MP_KEY_GO_BACK`
+ - add `--sub-filter-sdh-enclosures` option
+ - added the `mp.input` scripting API to query the user for textual input
+ - add `forced` choice to `subs-with-matching-audio`
+ - remove `--term-remaining-playtime` option
+ - change fallback deinterlace to bwdif
+ - add the command `load-config-file`
+ - add the command `load-input-conf`
+ - remove `--vo=rpi`, `--gpu-context=rpi`, and `--hwdec=mmal`
+ - add `auto` choice to `--deinterlace`
+ - change `--teletext-page` default from 100 to 0 ("subtitle" in lavc)
+ - 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
+ - move the `options` argument of the `loadfile` command from the third
+ parameter to the fourth (after `index`)
+ - add `--drag-and-drop=insert-next` option
+ - rename `--background` to `--background-color`
+ - remove `--alpha` and reintroduce `--background` option for better control
+ over blending alpha components into specific background types
+ - add `--border-background` option
+ - add `video-target-params` property
+ - add `hdr10plus` sub-parameter to `format` video filter
+ - remove `--focus-on-open` and add replacement `--focus-on`
+ - remove debanding from the high-quality profile
+ --- mpv 0.37.0 ---
+ - `--save-position-on-quit` and its associated commands now store state files
+ in %LOCALAPPDATA% instead of %APPDATA% directory by default on Windows.
+ - change `--subs-with-matching-audio` default from `no` to `yes`
+ - change `--subs-fallback` default from `no` to `default`
+ - add the `--hdr-peak-percentile` option
+ - include `--hdr-peak-percentile` in the `gpu-hq` profile
+ - change `--audiotrack-pcm-float` default from `no` to `yes`
+ - add video-params/aspect-name
+ - change type of `--sub-pos` to float
+ - The remaining time printed in the terminal is now adjusted for speed by default.
+ You can disable this with `--no-term-remaining-playtime`.
+ - add `playlist-path` and `playlist/N/playlist-path` properties
+ - add `--x11-wid-title` option
+ - add `--libplacebo-opts` option
+ - add `--audio-file-exts`, `--cover-art-auto-exts`, and `--sub-auto-exts`
+ - change `slang` default back to NULL
+ - remove special handling of the `auto` value from `--alang/slang/vlang` options
+ - add `--subs-match-os-language` as a replacement for `--slang=auto`
+ - add `always` option to `--subs-fallback-forced`
+ - remove `auto` choice from `--sub-forced-only`
+ - remove `auto-forced-only` property
+ - rename `--sub-forced-only` to `--sub-forced-events-only`
+ - remove `sub-forced-only-cur` property (`--sub-forced-events-only` is a replacement)
+ - remove deprecated `video-aspect` property
+ - add `--video-crop`
+ - add `video-params/crop-[w,h,x,y]`
+ - remove `--tone-mapping-mode`
+ - change `--subs-fallback-forced` so that it works alongside `--slang`
+ - add `--icc-3dlut-size=auto` and make it the default
+ - add `--scale=ewa_lanczos4sharpest`
+ - remove `--scale-wblur`, `--cscale-wblur`, `--dscale-wblur`, `--tscale-wblur`
+ - remove `bcspline` filter (`bicubic` is now the same as `bcspline`)
+ - rename `--cache-dir` and `--cache-unlink-files` to `--demuxer-cache-dir` and
+ `--demuxer-cache-unlink-files`
+ - enable `--correct-downscaling`, `--linear-downscaling`, `--sigmoid-upscaling`
+ - `--cscale` defaults to `--scale` if not defined
+ - change `--tscale` default to `oversample`
+ - change `--dither-depth` to `auto`
+ - deprecate `--profile=gpu-hq`, add `--profile=<fast|high-quality>`
+ - change `--dscale` default to `hermite`
+ - update defaults to `--hdr-peak-decay-rate=20`, `--hdr-scene-threshold-low=1.0`,
+ `--hdr-scene-threshold-high=3.0`
+ - update defaults to `--deband-threshold=48`, `--deband-grain=32`
+ - add `--directory-mode=auto` and make it the default
+ - remove deprecated `--profile=opengl-hq`
+ - remove several legacy fallbacks for old deprecated options (now they will just
+ error out like normal)
+ - remove deprecated `drop-frame-count` and `vo-drop-frame-count` property aliases
+ - remove the ability to write to the `display-fps` property (use `override-display-fps`
+ instead)
+ - writing the current value to playlist-pos will no longer restart playback (use
+ `playlist-play-index` instead)
+ - remove deprecated `--oaoffset`, `--oafirst`, `--ovoffset`, `--ovfirst`,
+ `--demuxer-force-retry-on-eof`, `--fit-border` options
+ - remove deprecated `--record-file` option
+ - remove deprecated `--vf-defaults` and `--af-defaults` options
+ - `--drm-connector` no longer allows selecting the card number (use `--drm-device`
+ instead)
+ - add `--title-bar` option
+ - add `--window-corners` option
+ - rename `--cdrom-device` to `--cdda-device`
+ - remove `--scale-cutoff`, `--cscale-cutoff`, `--dscale-cutoff`, `--tscale-cutoff`
+ - remove `--scaler-lut-size`
+ - deprecate shared-script-properties (user-data is a replacement)
+ - add `--backdrop-type` option
+ - add `--window-affinity` option
+ - `--config-dir` no longer forces cache and state files to also reside in there
+ - deprecate `--demuxer-cue-codepage` in favor of `--metadata-codepage`
+ - change the default of `metadata-codepage` to `auto`
+ - add `playlist-next-playlist` and `playlist-prev-playlist` commands
+ - change `video-codec` to show description or name, not both
+ - deprecate `--cdda-toc-bias` option, offsets are always checked now
+ - disable `--allow-delayed-peak-detect` by default
+ - rename `--fps` to `--container-fps-override`
+ - rename `--override-display-fps` to `--display-fps-override`
+ - rename `--sub-ass-force-style` to `--sub-ass-style-overrides`
+ - alias `--screenshot-directory` to `--screenshot-dir`
+ - alias `--watch-later-directory` to `--watch-later-dir`
+ - rename `--play-dir` to `--play-direction`
+ - `--js-memory-report` is now used for enabling memory reporting for javascript
+ scripts
+ - drop support for `-del` syntax for list options
+ - `--demuxer-hysteresis-secs` now respects `--cache-secs` and/or
+ `--demuxer-readahead-secs` as well
+ - add hdr metadata to `video-params` property
+ - add `--target-gamut`
+ - change the way display names are retrieved on macOS, usage of options and properties
+ `--fs-screen-name`, `--screen-name` and `display-names` needs to be adjusted
+ - remove OpenGL cocoa backend that was deprecated in 0.29
+ - remove `border`, `fullscreen`, `ontop`, `osd-level` and `pause`
+ from default `--watch-later-options`
+ - add `video-*` and `secondary-sub-visibility` to default `--watch-later-options`
--- mpv 0.36.0 ---
+ - add `--target-contrast`
+ - Target luminance value is now also applied when ICC profile is used.
+ `--icc-use-luma` has been added to use ICC profile luminance value.
+ If target luminance and ICC luminance is not used, old behavior apply,
+ defaulting to 203 nits. (Only applies for `--vo=gpu-next`)
+ - `playlist/N/title` gets set upon opening the file if it wasn't already set
+ and a title is available.
+ - add the `--vo=kitty` video output driver, as well as the options
+ `--vo-kitty-cols`, `--vo-kitty-rows`, `--vo-kitty-width`,
+ `--vo-kitty-height`, `--vo-kitty-left`, `--vo-kitty-top`,
+ `--vo-kitty-config-clear`, `--vo-kitty-alt-screen` and
+ `--vo-kitty-use-shm`
- add `--force-render`
+ - add `--vo-sixel-config-clear`, `--vo-sixel-alt-screen` and
+ `--vo-sixel-buffered`
- add `--wayland-content-type`
+ - deprecate `--vo-sixel-exit-clear` and alias it to
+ `--vo-sixel-alt-screen`
- deprecate `--drm-atomic`
+ - add `--demuxer-hysteresis-secs`
+ - add `--video-sync=display-tempo`
+ - the `start` option is no longer unconditionally written by
+ watch-later. It is still written by default but you may
+ need to explicitly add `start` depending on how you have
+ `--watch-later-options` configured.
+ - add `--vd-lavc-dr=auto` and make it the default
+ - add support for the fractional scale protocol in wayland
+ - in wayland, hidpi window scaling now scales the window by the compositor's
+ dpi scale factor by default (can be disabled with --no-hidpi-window-scale
+ if fractional scaling support exists).
+ - change --screenshot-tag-colorspace default value from `no` to `yes`
+ - undeprecate vf_sub
+ - add `--tone-mapping=st2094-40` and `--tone-mapping=st2094-10`
+ - change `--screenshot-jxl-effort` default from `3` to `4`.
+ - add `--tone-mapping-visualize`
+ - change type of `--brightness`, `--saturation`, `--contrast`, `--hue` and
+ `--gamma` to float.
+ - add `platform` property
+ - add `--auto-window-resize`
+ - `--save-position-on-quit` and its associated commands now store state files in
+ the XDG_STATE_HOME directory by default. This only has an effect on linux/bsd
+ systems.
+ - mpv now implictly saves cache files in XDG_CACHE_HOME by default. This only has
+ an effect if the user enables options that would lead to cache being stored and
+ only makes a difference on linux/bsd systems.
+ - `--cache-on-disk` no longer requires explictly setting the `--cache-dir` option
+ - add `--icc-cache` and `--gpu-shader-cache` options to control whether or not to
+ save cache files for these features; explictly setting `--icc-cache-dir` and
+ `--gpu-shader-cache` is no longer required
+ - remove the `--tone-mapping-crosstalk` option
+ - add `--gamut-mapping-mode=perceptual|relative|saturation|absolute|linear`
+ - add `--corner-rounding` option
+ - change `--subs-with-matching-audio` default from `yes` to `no`
+ - change `--slang` default from blank to `auto`
+ - add `--input-cursor-passthrough` option to allow pointer events to completely
+ passthrough the mpv window
+ - icc and gpu-shader cache are now saved by default (use --no-icc-shader-cache and
+ --no-gpu-shader-cache to disable)
+ - add `--directory-mode=recursive|lazy|ignore`
+ - `--hwdec=yes` is now mapped to `auto-safe` rather than `auto` (also used
+ by ctrl+h keybind)
+ - add `--hdr-contrast-recovery` and `--hdr-contrast-smoothness`
+ - include `--hdr-contrast-recovery` in the `gpu-hq` profile
--- mpv 0.35.0 ---
- add the `--vo=gpu-next` video output driver, as well as the options
`--allow-delayed-peak-detect`, `--builtin-scalers`,
@@ -86,7 +289,7 @@ Interface changes
- names starting with "." in ~/.mpv/scripts/ (or equivalent) are now ignored
- js modules: ~~/scripts/modules.js/ is no longer used, global paths can be
set with custom init (see docs), dir-scripts first look at <dir>/modules/
- - the OSX bundle now logs to "~/Library/Logs/mpv.log" by default
+ - the macOS bundle now logs to "~/Library/Logs/mpv.log" by default
- deprecate the --cache-secs option (once removed, the cache cannot be
limited by time anymore)
- remove deprecated legacy hook API ("hook-add", "hook-ack"). Use either the
diff --git a/DOCS/interface-changes/example.txt b/DOCS/interface-changes/example.txt
new file mode 100644
index 0000000000..c52ee0146f
--- /dev/null
+++ b/DOCS/interface-changes/example.txt
@@ -0,0 +1 @@
+deprecate `--foo`, instead use `--bar=foo` as a replacement
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/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/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/af.rst b/DOCS/man/af.rst
index 29f6b0128a..98f9a9597a 100644
--- a/DOCS/man/af.rst
+++ b/DOCS/man/af.rst
@@ -19,8 +19,8 @@ syntax is:
The ``--vf`` description describes how libavfilter can be used and how to
workaround deprecated mpv filters.
-See ``--vf`` group of options for info on how ``--af-defaults``, ``--af-add``,
-``--af-pre``, ``--af-del``, ``--af-clr``, and possibly others work.
+See ``--vf`` group of options for info on how ``--af-add``, ``--af-pre``,
+``--af-clr``, and possibly others work.
Available filters are:
@@ -100,7 +100,7 @@ Available filters are:
``scaletempo[=option1:option2:...]``
Scales