diff options
Diffstat (limited to 'DOCS')
29 files changed, 522 insertions, 251 deletions
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/compile-windows.md b/DOCS/compile-windows.md index 04bc200f37..f2b2ba65db 100644 --- a/DOCS/compile-windows.md +++ b/DOCS/compile-windows.md @@ -1,214 +1,270 @@ -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: -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 (https://osdn.net/projects/mingw/) is unsupported. - -Cross-compilation -================= - -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' +# Compiling for Windows + +Compiling for Windows is supported using GNU-like compilers (GCC/Clang). Clang +is compatible with both the ``w64-windows-gnu`` [MinGW-w64](https://www.mingw-w64.org/) +and ``pc-windows-msvc`` [Windows SDK](https://developer.microsoft.com/windows/downloads/windows-sdk) +targets. It supports the production of both 32-bit and 64-bit binaries and is +suitable for building on Windows as well as cross-compiling from Linux and Cygwin. + +Although it is possible to build a complete MinGW-w64 toolchain yourself, there +are build environments and scripts available to simplify the process, such as +MSYS2 on Windows or a packaged toolchain provided by your favorite Linux +distribution. Note that MinGW-w64 environments included in Linux distributions +can vary in versions. As a general guideline, mpv only supports the MinGW-w64 +toolchain version included in the latest Ubuntu LTS release. + +mpv employs Meson for building, and the process is the same as any standard Meson +compilation. + +For the most up-to-date reference on build scripts, you can refer to +[build.yml](https://github.com/mpv-player/mpv/blob/master/.github/workflows/build.yml), +which builds and tests all supported configurations: ``MinGW-w64``, ``Windows SDK``, +and ``MSYS2`` builds. + +## Cross-compilation + +When cross-compiling, it is recommended to use a Meson ``--cross-file`` to set up the +cross-compiling environment. For a basic example, please refer to +[Cross-compilation](https://mesonbuild.com/Cross-compilation.html). + +Alternatively, consider using [mpv-winbuild-cmake](https://github.com/shinchiro/mpv-winbuild-cmake), +which bootstraps a MinGW-w64 toolchain and builds mpv along with its dependencies. + +### Example with Meson + +1. Create ``cross-file.txt`` with definitions for your toolchain and target platform. + Refer to [x86_64-w64-mingw32.txt](https://mesonbuild.com/Cross-compilation.html) + as a directly usable example. + - **Important**: Beware of pkg-config usage. By default, it uses build machine + files for dependency detection, even when ``--cross-file`` is used. It must + be configured correctly. Refer to ``pkg_config_libdir`` and ``sys_root`` + in the [documentation](https://mesonbuild.com/Cross-compilation.html#defining-the-environment) + for proper setup. **In this example pkg-config is not used/required.** +2. Initialize subprojects. This step is optional; other methods are also + available to provide the necessary dependencies. + + ``` bash + # Update the subprojects database from Meson's WrapDB. + meson wrap update-db + + # Explicitly download wraps as nested projects may have older versions of them. + meson wrap install expat + meson wrap install harfbuzz + meson wrap install libpng + meson wrap install zlib + + # Add wraps for mpv's required dependencies + mkdir -p subprojects + + cat <<EOF > subprojects/libplacebo.wrap + [wrap-git] + url = https://github.com/haasn/libplacebo + revision = master + depth = 1 + clone-recursive = true + EOF + + cat <<EOF > subprojects/libass.wrap + [wrap-git] + revision = master + url = https://github.com/libass/libass + depth = 1 + EOF + + # For FFmpeg, use Meson's build system port; alternatively, you can compile + # the upstream version yourself. See https://trac.ffmpeg.org/wiki/CompilationGuide + cat <<EOF > subprojects/ffmpeg.wrap + [wrap-git] + url = https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg.git + revision = meson-6.1 + depth = 1 + [provide] + libavcodec = libavcodec_dep + libavdevice = libavdevice_dep + libavfilter = libavfilter_dep + libavformat = libavformat_dep + libavutil = libavutil_dep + libswresample = libswresample_dep + libswscale = libswscale_dep + EOF + ``` + +3. Build + + ``` bash + meson setup -Ddefault_library=static -Dprefer_static=true \ + -Dc_link_args='-static' -Dcpp_link_args='-static' \ + --cross-file cross-file.txt build + + ninja -C build mpv.exe mpv.com + ``` + + This will produce fully portabiel, statically linked, ``mpv.exe`` and ``mpv.com`` + binaries. + +#### Building libmpv + +- To also build ``libmpv``, execute the following commands: + + ``` bash + # For a static library + meson configure build -Dlibmpv=true -Ddefault_library=static + ninja -C build libmpv.a + + # For a shared library + meson configure build -Dlibmpv=true -Ddefault_library=shared + ninja -C build libmpv-2.dll + ``` + +- Depending on the use case, you might want to use ``-Dgpl=false`` and review + similar options for subprojects. +- If any of Meson's subprojects are not linked statically, you might need to + specify options like the following example for ffmpeg: + ``-Dffmpeg:default_library=static``. + +#### Enabling more mpv features + +The process above produces a basic mpv build. You can enable additional features. +Check the Meson +[WrapDB packages](https://mesonbuild.com/Wrapdb-projects.html) for available +dependencies or by providing them through other means. + +Enhancing mpv with more features is as simple as adding more arguments to the +Meson setup command, for example: + +``` bash +-Dlua=enabled -Djavascript=enabled -Dlcms2=enabled -Dlibplacebo:lcms=enabled ``` -See [meson's documentation](https://mesonbuild.com/Cross-compilation.html) for -more information. +they will be automatically downloaded and built by Meson. + +## Native Compilation with Clang (Windows SDK Build) + +1. Install [Build Tools for Visual Studio](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022) + or the full [Visual Studio](https://visualstudio.microsoft.com/downloads/#visual-studio-community-2022): + - From the installer, select the necessary components: + - Clang compiler for Windows + - C++ CMake tools for Windows + - Windows SDK + - Activate the developer shell: + ``` + & "<Visual Studio Path>\Common7\Tools\Launch-VsDevShell.ps1" -Arch amd64 -HostArch amd64 -SkipAutomaticLocation | Out-Null + ``` +2. Install Meson, as outlined in [Getting Meson](https://mesonbuild.com/Getting-meson.html): + - **Important**: At the time of writing, there is an issue in Meson with + escaping response files. + + See: [mesonbuild/meson#8981](https://github.com/mesonbuild/meson/issues/8981) + and [mesonbuild/meson#11715](https://github.com/mesonbuild/meson/pull/11715) + + If you wish to install a fixed version, follow the steps outlined + [here](https://github.com/mpv-player/mpv/blob/481e498427fc34956ad24b94157553908f5cd638/.github/workflows/build.yml#L132-L135). +3. The following build script utilizes the Meson subprojects system to build mpv and its dependencies. + To make sure all dependency versions are up-to-date, update the subprojects database from Meson's WrapDB. + Also explicitly download several wraps as some nested projects may pull older versions of them. + ``` + meson wrap update-db + + meson wrap install expat + meson wrap install harfbuzz + meson wrap install libpng + meson wrap install zlib + ``` +4. Set environment variables or use the `--native-file` option in Meson. + ```powershell + $env:CC = 'clang' + $env:CXX = 'clang++' + $env:CC_LD = 'lld' + $env:CXX_LD = 'lld' + $env:WINDRES = 'llvm-rc' + ``` + Note that some dependencies (e.g. LuaJIT) may require `sed` to configure. Fortunately, it is already bundled in + [Git for Windows](https://www.git-scm.com/download/win): + ```powershell + $env:PATH += ';<Git Path>\usr\bin' + ``` +5. Execute [ci\build-win32.ps1](https://github.com/mpv-player/mpv/blob/master/ci/build-win32.ps1). Refer to the script for more details. + +This process will produce a fully static ``mpv.exe`` and ``mpv.com``, as well as +a static ``libmpv.a``. + +## Native Compilation with MSYS2 + +For Windows developers seeking a quick setup, MSYS2 is an effective tool for +compiling mpv natively on a Windows machine. The MSYS2 repositories provide +binary packages for most of mpv's dependencies, simplifying the process to +primarily involve building mpv itself. + +### Installing MSYS2 + +1. Follow the installation steps from [MSYS2](https://www.msys2.org/). +2. Initiate one of the [Environments](https://www.msys2.org/docs/environments/), + with the CLANG64 (``clang64.exe``) being the recommended option. + **Note:** This environment is distinct from the MSYS2 shell that opens + automatically after the final installation dialog. You must close that + initial shell and open a new one for the appropriate environment. + +### Updating MSYS2 + +For guidance on updating MSYS2, please refer to the official documentation: +[Updating MSYS2](https://www.msys2.org/docs/updating/). + +### Installing mpv Dependencies + +``` bash +# Install pacboy +pacman -S pactoys -[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 [mpv-winbuild-cmake](https://github.com/shinchiro/mpv-winbuild-cmake), -which bootstraps a MinGW-w64 environment and builds mpv and dependencies. - -Example with MXE ----------------- - -```bash -# Before starting, make sure you install MXE prerequisites. MXE will download -# and build all target dependencies, but no host dependencies. For example, -# you need a working compiler, or MXE can't build the crosscompiler. -# -# Refer to -# -# https://mxe.cc/#requirements -# -# Scroll down for disto/OS-specific instructions to install them. - -# Download MXE. Note that compiling the required packages requires about 1.4 GB -# or more! - -cd /opt -git clone https://github.com/mxe/mxe mxe -cd mxe - -# Set build options. - -# The JOBS environment variable controls threads to use when building. DO NOT -# use the regular `make -j4` option with MXE as it will slow down the build. -# Alternatively, you can set this in the make command by appending "JOBS=4" -# to the end of command: -echo "JOBS := 4" >> settings.mk - -# The MXE_TARGET environment variable builds MinGW-w64 for 32 bit targets. -# Alternatively, you can specify this in the make command by appending -# "MXE_TARGETS=i686-w64-mingw32" to the end of command: -echo "MXE_TARGETS := i686-w64-mingw32.static" >> settings.mk - -# If you want to build 64 bit version, use this: -# echo "MXE_TARGETS := x86_64-w64-mingw32.static" >> settings.mk - -# Build required packages. The following provide a minimum required to build -# a reasonable mpv binary (though not an absolute minimum). - -make gcc ffmpeg libass jpeg lua luajit - -# Add MXE binaries to $PATH -export PATH=/opt/mxe/usr/bin/:$PATH - -# Build mpv. The target will be used to automatically select the name of the -# build tools involved (e.g. it will use i686-w64-mingw32.static-gcc). - -cd .. -git clone https://github.com/mpv-player/mpv.git -cd mpv -meson setup build --crossfile crossfile -meson compile -C build -``` - -Native compilation with MSYS2 -============================= - -For Windows developers looking to get started quickly, MSYS2 can be used to -compile mpv natively on a Windows machine. The MSYS2 repositories have binary -packages for most of mpv's dependencies, so the process should only involve -building mpv itself. - -To build 64-bit mpv on Windows: - -Installing MSYS2 ----------------- - -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 - version is preferred since the larger address space makes it less prone to - fork() errors. - -2. Start a MinGW-w64 shell (``mingw64.exe``). **Note:** This is different from - the MSYS2 shell that is started from the final installation dialog. You must - close that shell and open a new one. - - For a 32-bit build, use ``mingw32.exe``. - -Updating MSYS2 --------------- - -To prevent errors during post-install, the MSYS2 core runtime must be updated -separately. - -```bash -# Check for core updates. If instructed, close the shell window and reopen it -# before continuing. -pacman -Syu - -# Update everything else -pacman -Su -``` - -Installing mpv dependencies ---------------------------- - -```bash # Install MSYS2 build dependencies and a MinGW-w64 compiler -pacman -S git $MINGW_PACKAGE_PREFIX-{python,pkgconf,gcc,meson} +pacboy -S git {python,pkgconf,cc,meson}:p -# 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,luajit} +# Install key dependencies. libass and lcms2 are also included as dependencies +# of ffmpeg. +pacboy -S {ffmpeg,libjpeg-turbo,libplacebo,luajit}:p ``` -Building mpv ------------- - -Finally, compile and install mpv. Binaries will be installed to -``/mingw64/bin`` or ``/mingw32/bin``. - -```bash -meson setup build --prefix=$MSYSTEM_PREFIX -meson compile -C build -``` +### Building mpv -Or, compile and install both libmpv and mpv: +To compile and install mpv, execute the following commands. +The binaries will be installed in the directory ``/$MSYSTEM_PREFIX/bin``. ```bash +# Set up the build directory with the desired configuration meson setup build -Dlibmpv=true --prefix=$MSYSTEM_PREFIX + +# Compile meson compile -C build + +# Optionally, install the compiled binaries meson install -C build ``` -Linking libmpv with MSVC programs ---------------------------------- +## Running mpv -mpv/libmpv cannot be built with Visual Studio (Microsoft is too incompetent to -support C99/C11 properly and/or hates open source and Linux too much to -seriously do it). But you can build C++ programs in Visual Studio and link them -with a libmpv built with MinGW. +Depending on your build configuration, ``mpv.exe`` may rely on external +libraries. To create a portable package, you will need to include these +dependencies as well. The quickest way to determine which libraries are needed +is to run ``mpv.exe`` and note any error messages that list the required ``.dll`` +files. You can find these libraries in the sysroot used for compilation, such as +``/clang64/bin/`` in MSYS2. -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: +## Linking libmpv with MSVC Programs -```bash -lib /name:mpv-1.dll /out:mpv.lib /MACHINE:X64 -``` +Building mpv/libmpv directly with the MSVC compiler (cl.exe) is not supported +due to differences in compiler flags. Our build system is designed specifically +for GNU-like compiler drivers. However, you can still build programs in +Visual Studio and link them with libmpv. -The string in the ``/name:`` parameter must match the filename of the DLL (this -is simply the filename the MSVC linker will use). - -Static linking is not possible. - -Running mpv ------------ - -If you want to run mpv from the MinGW-w64 shell, you will find the experience -much more pleasant if you use the ``winpty`` utility +If the toolchain used generates a ``.lib`` file, it will be ready for use. +Otherwise, you will need to create an import library for the mpv DLL with the +following command: ```bash -pacman -S winpty -winpty mpv.com ToS-4k-1920.mov +lib /name:mpv-2.dll /out:mpv.lib /MACHINE:X64 ``` -If you want to move / copy ``mpv.exe`` and ``mpv.com`` to somewhere other than -``/mingw64/bin/`` for use outside the MinGW-w64 shell, they will still depend on -DLLs in that folder. The simplest solution is to add ``C:\msys64\mingw64\bin`` -to the windows system ``%PATH%``. Beware though that this can cause problems or -confusion in Cygwin if that is also installed on the machine. - -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. +Ensure that the string in the ``/name:`` parameter matches the filename of the +DLL, as this is the filename that the MSVC linker will reference. + +**Note:** Static linking is only feasible with matching compilers. For instance, +if you build with Clang in Visual Studio, static linking is possible. diff --git a/DOCS/contribute.md b/DOCS/contribute.md index 4d2af4ea4e..669be3c6cf 100644 --- a/DOCS/contribute.md +++ b/DOCS/contribute.md @@ -141,7 +141,10 @@ Interface change policy 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. + change. The content of the file should begin with the type of the change + (add, remove, deprecate, change, rename, etc.). If the file contains multiple + changes, the change which causes the most serious compatibility issues should + be placed first. - 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. diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst index b55ef97739..4166bdf4b0 100644 --- a/DOCS/interface-changes.rst +++ b/DOCS/interface-changes.rst @@ -44,7 +44,7 @@ Interface changes - 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) + - 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 @@ -64,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/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/egl-output-format.txt b/DOCS/interface-changes/egl-output-format.txt new file mode 100644 index 0000000000..00bb7fd84f --- /dev/null +++ b/DOCS/interface-changes/egl-output-format.txt @@ -0,0 +1,2 @@ +add `--egl-config-id` option +add `--egl-output-format` option diff --git a/DOCS/interface-changes/input-builtin-dragging.txt b/DOCS/interface-changes/input-builtin-dragging.txt new file mode 100644 index 0000000000..5dbce76987 --- /dev/null +++ b/DOCS/interface-changes/input-builtin-dragging.txt @@ -0,0 +1 @@ +add `--input-builtin-dragging` option diff --git a/DOCS/interface-changes/input-dragging-deadzone.txt b/DOCS/interface-changes/input-dragging-deadzone.txt new file mode 100644 index 0000000000..d2628d4cbd --- /dev/null +++ b/DOCS/interface-changes/input-dragging-deadzone.txt @@ -0,0 +1 @@ +add `--input-dragging-deadzone` option diff --git a/DOCS/interface-changes/input-select.txt b/DOCS/interface-changes/input-select.txt index 03e421a6c7..09306c8481 100644 --- a/DOCS/interface-changes/input-select.txt +++ b/DOCS/interface-changes/input-select.txt @@ -1 +1 @@ -`add mp.input.select()` +add `mp.input.select()` diff --git a/DOCS/interface-changes/input-touch-emulate-mouse.txt b/DOCS/interface-changes/input-touch-emulate-mouse.txt deleted file mode 100644 index 00b08b7715..0000000000 --- a/DOCS/interface-changes/input-touch-emulate-mouse.txt +++ /dev/null @@ -1 +0,0 @@ -add --input-touch-emulate-mouse option diff --git a/DOCS/interface-changes/keybind-cancel.txt b/DOCS/interface-changes/keybind-cancel.txt new file mode 100644 index 0000000000..ab137a0cb4 --- /dev/null +++ b/DOCS/interface-changes/keybind-cancel.txt @@ -0,0 +1,2 @@ +change `mp.add_key_binding` so that by default, the callback is not invoked if the event is canceled; clients should now use the `complex` option to detect this situation +add `canceled` entry to `mp.add_key_binding` callback argument diff --git a/DOCS/interface-changes/native-touch.txt b/DOCS/interface-changes/native-touch.txt index 91c3a53bad..164f0ce4f5 100644 --- a/DOCS/interface-changes/native-touch.txt +++ b/DOCS/interface-changes/native-touch.txt @@ -1 +1,3 @@ -add --native-touch option +add `--native-touch` option +add `--input-touch-emulate-mouse` option +add `touch-pos` property 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/show-playlist-titles.txt b/DOCS/interface-changes/show-playlist-titles.txt new file mode 100644 index 0000000000..dd9f32e864 --- /dev/null +++ b/DOCS/interface-changes/show-playlist-titles.txt @@ -0,0 +1,2 @@ +add `--osd-playlist-entry` option +remove `osc-playlist_media_title` script-opt diff --git a/DOCS/interface-changes/sub-ass-override-default.txt b/DOCS/interface-changes/sub-ass-override-default.txt new file mode 100644 index 0000000000..691579693b --- /dev/null +++ b/DOCS/interface-changes/sub-ass-override-default.txt @@ -0,0 +1,3 @@ +move 'scale' above 'force' for `sub-ass-override` in documentation as well as code. This more accurately reflects destructiveness of these options. +change `sub-ass-override` default from 'yes' to 'scale'. This should result in no effective changes because 'yes' used to unintentionally do what 'scale' should've done. +change 'u' binding to cycle between 'force' and 'scale', instead of 'force' and 'yes' diff --git a/DOCS/interface-changes/touch-pos.txt b/DOCS/interface-changes/touch-pos.txt deleted file mode 100644 index a390d2369f..0000000000 --- a/DOCS/interface-changes/touch-pos.txt +++ /dev/null @@ -1 +0,0 @@ -add `touch-pos` property diff --git a/DOCS/man/ao.rst b/DOCS/man/ao.rst index 78dfed3b51..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`` diff --git a/DOCS/man/console.rst b/DOCS/man/console.rst index 69cc103c15..7028e6c76d 100644 --- a/DOCS/man/console.rst +++ b/DOCS/man/console.rst @@ -167,7 +167,6 @@ Configurable Options Default: true Remove duplicate entries in history as to only keep the latest one. - multiplied by "scale." ``font_hw_ratio`` Default: auto diff --git a/DOCS/man/encode.rst b/DOCS/man/encode.rst index 26f3d6cbc8..c650d0f6c4 100644 --- a/DOCS/man/encode.rst +++ b/DOCS/man/encode.rst @@ -8,7 +8,7 @@ You can encode files from one format/codec to another using this facility. ``--of=<format>`` Specifies the output format (overrides autodetection by the file name - extension of the file specified by ``-o``). See ``--of=help`` for a full + extension of the file specified by ``--o``). See ``--of=help`` for a full list of supported formats. ``--ofopts=<options>`` diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst index df4766b5be..0fc0619a11 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 Option |