diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst index 4166bdf4b0..9abe2e3494 100644 --- a/DOCS/interface-changes.rst +++ b/DOCS/interface-changes.rst @@ -29,6 +29,103 @@ Interface changes :: + --- mpv 0.40.0 --- + --- mpv 0.39.0 --- + - turn `--cover-art-whitelist` into a list option + - reserve `user-data/osc` and `user-data/mpv` sub-paths for internal use + - remove deprecated `packet-video-bitrate` `packet-audio-bitrate` and + `packet-sub-bitrate` properties + - remove deprecated `--cache-dir` option alias + - remove deprecated `--cache-unlink-files` option alias + - remove deprecated `--demuxer-cue-codepage` option alias + - remove deprecated `--fps` option alias + - remove deprecated `--cdrom-device` option alias + - remove deprecated `--sub-forced-only` option alias + - remove deprecated `--vo-sixel-exit-clear` option alias + - remove deprecated `--cdda-toc-bias` option + - remove deprecated `--drm-atomic` option + - remove `sub-ass-vsfilter-aspect-compat`: use `sub-ass-use-video-data=none` + for disabling aspect compat + - remove `sub-ass-vsfilter-blur-compat`: use `sub-ass-use-video-data=aspect- + ratio` for disabling blur compat + - add `sub-ass-use-video-data` + - add `sub-ass-video-aspect-override` + - change default V keybind to cycle `sub-ass-use-video-data` instead of the + now removed `sub-ass-vsfilter-aspect-compat` + - remove `console-scale` script-opt + - remap numpad `+ - * /` keys to `KP_ADD/KP_SUBTRACT/KP_MULTIPLY/KP_DIVIDE`; + keybinds which require these numpad keys to function need to use the new + names instead + - numerical values of `--loop-file` no longer decrease on each iteration + - add `remaining-file-loops` property as a replacement to get the remaining + loop count + - numerical values of `--ab-loop-count` no longer decrease on each iteration + - add `remaining-ab-loops` property as a replacement to get the remaining + loop count + - 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' + - deprecate `sub-text-ass` property; add `sub-text/ass` sub-property + - change type of `sub-start` and `sub-end` properties to time + - 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 + - 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 + - add the `normalize-path` command + - add `user-data/mpv/ytdl/path` and `user-data/mpv/ytdl/json-subprocess- + result` properties + - add `track-list/N/dolby-vision-profile` and `track-list/N/dolby-vision- + level` + - add `track-list/N/decoder` + - add `sub-text/ass-full` sub-property + - add `osc-show` script message + - add `nonrepeatable` input command prefix + - add `mp.input.select()` + - add `--wasapi-exclusive-buffer` option + - add `--vf=d3d11vpp=scaling-mode` + - add `--vf=d3d11vpp=scale` + - add `--sub-border-style` and `--osd-border-style` options + - the border style does not depend on `--(sub/osd)-border-color` and + `--(sub/osd)-shadow-color`; now it depends solely on `--(sub/osd)-border- + style` + - make `--(sub/osd)-border-color` an alias of `--(sub/osd)-outline-color` + - make `--(sub/osd)-border-size` an alias of `--(sub/osd)-outline-size` + - make `--(sub/osd)-shadow-color` an alias of `--(sub/osd)-back-color`; they + cannot both be set now + - make `--osd-bar-border-size` an alias of `--osd-bar-outline-size` + - add `--show-in-taskbar` option + - add `--pitch` option + - add `--osd-playlist-entry` option + - remove `osc-playlist_media_title` script-opt + - add `--native-touch` option + - add `--input-touch-emulate-mouse` option + - add `touch-pos` property + - add `--media-controls` option + - add `--input-dragging-deadzone` option + - add `--input-builtin-dragging` option + - add `--egl-config-id` option + - add `--egl-output-format` option + - add `--directory-filter-types` + - By default, opening a directory will create a playlist with only the media + types "video, audio, image". To restore the previous behavior, use + `--directory-filter-types-clr`. + - add `--autocreate-playlist` + - add `--video-exts` + - add `--audio-exts` + - add `--image-exts` + - add `option-info//expects-file` sub-property + - Bump dependency of VapourSynth to utilize its API version 4. New minimum + VapourSynth version for runtime is R56. Some functions and plugins are + changed or removed. For details, refer to VapourSynth documentation + and + --- mpv 0.38.0 --- - add `term-size` property - add the `escape-ass` command diff --git a/DOCS/interface-changes/autocreate-playlist.txt b/DOCS/interface-changes/autocreate-playlist.txt deleted file mode 100644 index 034ccbe353..0000000000 --- a/DOCS/interface-changes/autocreate-playlist.txt +++ /dev/null @@ -1,4 +0,0 @@ -add `--autocreate-playlist` -add `--video-exts` -add `--audio-exts` -add `--image-exts` diff --git a/DOCS/interface-changes/cmd-nonrepeatable.txt b/DOCS/interface-changes/cmd-nonrepeatable.txt deleted file mode 100644 index 887b44b982..0000000000 --- a/DOCS/interface-changes/cmd-nonrepeatable.txt +++ /dev/null @@ -1 +0,0 @@ -add `nonrepeatable` input command prefix diff --git a/DOCS/interface-changes/console-scale.txt b/DOCS/interface-changes/console-scale.txt deleted file mode 100644 index 13e43f0055..0000000000 --- a/DOCS/interface-changes/console-scale.txt +++ /dev/null @@ -1 +0,0 @@ -remove `console-scale` script-opt diff --git a/DOCS/interface-changes/cover-art-whitelist-list-option.txt b/DOCS/interface-changes/cover-art-whitelist-list-option.txt deleted file mode 100644 index 9c607a2330..0000000000 --- a/DOCS/interface-changes/cover-art-whitelist-list-option.txt +++ /dev/null @@ -1 +0,0 @@ -turn `--cover-art-whitelist` into a list option diff --git a/DOCS/interface-changes/d3d11va-scaling-mode.txt b/DOCS/interface-changes/d3d11va-scaling-mode.txt deleted file mode 100644 index bce1f4cdef..0000000000 --- a/DOCS/interface-changes/d3d11va-scaling-mode.txt +++ /dev/null @@ -1 +0,0 @@ -add `--vf=d3d11vpp=scaling-mode` diff --git a/DOCS/interface-changes/d3d11vpp-scale.txt b/DOCS/interface-changes/d3d11vpp-scale.txt deleted file mode 100644 index efe49a914f..0000000000 --- a/DOCS/interface-changes/d3d11vpp-scale.txt +++ /dev/null @@ -1 +0,0 @@ -add `--vf=d3d11vpp=scale` diff --git a/DOCS/interface-changes/directory-filter-types.txt b/DOCS/interface-changes/directory-filter-types.txt deleted file mode 100644 index 27c1068745..0000000000 --- a/DOCS/interface-changes/directory-filter-types.txt +++ /dev/null @@ -1,2 +0,0 @@ -add `--directory-filter-types` -By default, opening a directory will create a playlist with only the media types "video, audio, image". To restore the previous behavior, use `--directory-filter-types-clr`. diff --git a/DOCS/interface-changes/dolby-vision-configuration.txt b/DOCS/interface-changes/dolby-vision-configuration.txt deleted file mode 100644 index 9383310fb9..0000000000 --- a/DOCS/interface-changes/dolby-vision-configuration.txt +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index 00bb7fd84f..0000000000 --- a/DOCS/interface-changes/egl-output-format.txt +++ /dev/null @@ -1,2 +0,0 @@ -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 deleted file mode 100644 index 5dbce76987..0000000000 --- a/DOCS/interface-changes/input-builtin-dragging.txt +++ /dev/null @@ -1 +0,0 @@ -add `--input-builtin-dragging` option diff --git a/DOCS/interface-changes/input-dragging-deadzone.txt b/DOCS/interface-changes/input-dragging-deadzone.txt deleted file mode 100644 index d2628d4cbd..0000000000 --- a/DOCS/interface-changes/input-dragging-deadzone.txt +++ /dev/null @@ -1 +0,0 @@ -add `--input-dragging-deadzone` option diff --git a/DOCS/interface-changes/input-select.txt b/DOCS/interface-changes/input-select.txt deleted file mode 100644 index 09306c8481..0000000000 --- a/DOCS/interface-changes/input-select.txt +++ /dev/null @@ -1 +0,0 @@ -add `mp.input.select()` diff --git a/DOCS/interface-changes/keybind-cancel.txt b/DOCS/interface-changes/keybind-cancel.txt deleted file mode 100644 index ab137a0cb4..0000000000 --- a/DOCS/interface-changes/keybind-cancel.txt +++ /dev/null @@ -1,2 +0,0 @@ -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/loop.txt b/DOCS/interface-changes/loop.txt deleted file mode 100644 index 2073d65abf..0000000000 --- a/DOCS/interface-changes/loop.txt +++ /dev/null @@ -1,4 +0,0 @@ -numerical values of `--loop-file` no longer decrease on each iteration -add `remaining-file-loops` property as a replacement to get the remaining loop count -numerical values of `--ab-loop-count` no longer decrease on each iteration -add `remaining-ab-loops` property as a replacement to get the remaining loop count diff --git a/DOCS/interface-changes/media-controls.txt b/DOCS/interface-changes/media-controls.txt deleted file mode 100644 index c7c7c0a351..0000000000 --- a/DOCS/interface-changes/media-controls.txt +++ /dev/null @@ -1 +0,0 @@ -add `--media-controls` option diff --git a/DOCS/interface-changes/native-touch.txt b/DOCS/interface-changes/native-touch.txt deleted file mode 100644 index 164f0ce4f5..0000000000 --- a/DOCS/interface-changes/native-touch.txt +++ /dev/null @@ -1,3 +0,0 @@ -add `--native-touch` option -add `--input-touch-emulate-mouse` option -add `touch-pos` property diff --git a/DOCS/interface-changes/normalize-path.txt b/DOCS/interface-changes/normalize-path.txt deleted file mode 100644 index 5abdaf421d..0000000000 --- a/DOCS/interface-changes/normalize-path.txt +++ /dev/null @@ -1 +0,0 @@ -add the `normalize-path` command diff --git a/DOCS/interface-changes/numpad-symbols.txt b/DOCS/interface-changes/numpad-symbols.txt deleted file mode 100644 index dec2d2af6a..0000000000 --- a/DOCS/interface-changes/numpad-symbols.txt +++ /dev/null @@ -1 +0,0 @@ -remap numpad `+ - * /` keys to `KP_ADD/KP_SUBTRACT/KP_MULTIPLY/KP_DIVIDE`; keybinds which require these numpad keys to function need to use the new names instead diff --git a/DOCS/interface-changes/option-info-expects-file.txt b/DOCS/interface-changes/option-info-expects-file.txt deleted file mode 100644 index c8a54da0a7..0000000000 --- a/DOCS/interface-changes/option-info-expects-file.txt +++ /dev/null @@ -1 +0,0 @@ -add "option-info//expects-file" sub-property diff --git a/DOCS/interface-changes/option-removal.txt b/DOCS/interface-changes/option-removal.txt deleted file mode 100644 index 4b25522c31..0000000000 --- a/DOCS/interface-changes/option-removal.txt +++ /dev/null @@ -1,9 +0,0 @@ -remove deprecated `--cache-dir` option alias -remove deprecated `--cache-unlink-files` option alias -remove deprecated `--demuxer-cue-codepage` option alias -remove deprecated `--fps` option alias -remove deprecated `--cdrom-device` option alias -remove deprecated `--sub-forced-only` option alias -remove deprecated `--vo-sixel-exit-clear` option alias -remove deprecated `--cdda-toc-bias` option -remove deprecated `--drm-atomic` option diff --git a/DOCS/interface-changes/osc-show.txt b/DOCS/interface-changes/osc-show.txt deleted file mode 100644 index 260ee30fe1..0000000000 --- a/DOCS/interface-changes/osc-show.txt +++ /dev/null @@ -1 +0,0 @@ -add `osc-show` script message diff --git a/DOCS/interface-changes/osdscale.txt b/DOCS/interface-changes/osdscale.txt deleted file mode 100644 index 38eec1afc8..0000000000 --- a/DOCS/interface-changes/osdscale.txt +++ /dev/null @@ -1,3 +0,0 @@ -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/packet-bitrate.txt b/DOCS/interface-changes/packet-bitrate.txt deleted file mode 100644 index 2c2dc3dcb4..0000000000 --- a/DOCS/interface-changes/packet-bitrate.txt +++ /dev/null @@ -1 +0,0 @@ -remove deprecated `packet-video-bitrate` `packet-audio-bitrate` and `packet-sub-bitrate` properties diff --git a/DOCS/interface-changes/pitch-shift.txt b/DOCS/interface-changes/pitch-shift.txt deleted file mode 100644 index 7b58bd57cc..0000000000 --- a/DOCS/interface-changes/pitch-shift.txt +++ /dev/null @@ -1 +0,0 @@ -add `--pitch` option diff --git a/DOCS/interface-changes/rename-vf-format-chroma-loc b/DOCS/interface-changes/rename-vf-format-chroma-loc deleted file mode 100644 index 3703d84506..0000000000 --- a/DOCS/interface-changes/rename-vf-format-chroma-loc +++ /dev/null @@ -1 +0,0 @@ -rename vf_format's `bottom left` chroma-location to `bottom-left` diff --git a/DOCS/interface-changes/show-in-taskbar.txt b/DOCS/interface-changes/show-in-taskbar.txt deleted file mode 100644 index c37bda0872..0000000000 --- a/DOCS/interface-changes/show-in-taskbar.txt +++ /dev/null @@ -1 +0,0 @@ -add `--show-in-taskbar` option diff --git a/DOCS/interface-changes/show-playlist-titles.txt b/DOCS/interface-changes/show-playlist-titles.txt deleted file mode 100644 index dd9f32e864..0000000000 --- a/DOCS/interface-changes/show-playlist-titles.txt +++ /dev/null @@ -1,2 +0,0 @@ -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 deleted file mode 100644 index 691579693b..0000000000 --- a/DOCS/interface-changes/sub-ass-override-default.txt +++ /dev/null @@ -1,3 +0,0 @@ -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/sub-ass-use-video-data.txt b/DOCS/interface-changes/sub-ass-use-video-data.txt deleted file mode 100644 index 44cf0e9a9a..0000000000 --- a/DOCS/interface-changes/sub-ass-use-video-data.txt +++ /dev/null @@ -1,5 +0,0 @@ -remove `sub-ass-vsfilter-aspect-compat`: use `sub-ass-use-video-data=none` for disabling aspect compat -remove `sub-ass-vsfilter-blur-compat`: use `sub-ass-use-video-data=aspect-ratio` for disabling blur compat -add `sub-ass-use-video-data` -add `sub-ass-video-aspect-override` -change default V keybind to cycle `sub-ass-use-video-data` instead of the now removed `sub-ass-vsfilter-aspect-compat` diff --git a/DOCS/interface-changes/sub-border-style.txt b/DOCS/interface-changes/sub-border-style.txt deleted file mode 100644 index 649403c2f3..0000000000 --- a/DOCS/interface-changes/sub-border-style.txt +++ /dev/null @@ -1,6 +0,0 @@ -add `--sub-border-style` and `--osd-border-style` options -the border style does not depend on `--(sub/osd)-border-color` and `--(sub/osd)-shadow-color`; now it depends solely on `--(sub/osd)-border-style` -make `--(sub/osd)-border-color` an alias of `--(sub/osd)-outline-color` -make `--(sub/osd)-border-size` an alias of `--(sub/osd)-outline-size` -make `--(sub/osd)-shadow-color` an alias of `--(sub/osd)-back-color`; they cannot both be set now -make `--osd-bar-border-size` an alias of `--osd-bar-outline-size` diff --git a/DOCS/interface-changes/sub-text-ass-full.txt b/DOCS/interface-changes/sub-text-ass-full.txt deleted file mode 100644 index e0f4206af8..0000000000 --- a/DOCS/interface-changes/sub-text-ass-full.txt +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index 58db3f7f0c..0000000000 --- a/DOCS/interface-changes/sub-text-ass.txt +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index 8c2929b15a..0000000000 --- a/DOCS/interface-changes/sub-times.txt +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index 2e999af3c2..0000000000 --- a/DOCS/interface-changes/track-list-decoder-tag.txt +++ /dev/null @@ -1 +0,0 @@ -add `track-list/N/decoder` diff --git a/DOCS/interface-changes/user-data-subpath.txt b/DOCS/interface-changes/user-data-subpath.txt deleted file mode 100644 index 160d9fb0fe..0000000000 --- a/DOCS/interface-changes/user-data-subpath.txt +++ /dev/null @@ -1 +0,0 @@ -reserve `user-data/osc` and `user-data/mpv` sub-paths for internal use diff --git a/DOCS/interface-changes/vapoursynth-api-v4.txt.txt b/DOCS/interface-changes/vapoursynth-api-v4.txt.txt deleted file mode 100644 index 346e639b3e..0000000000 --- a/DOCS/interface-changes/vapoursynth-api-v4.txt.txt +++ /dev/null @@ -1 +0,0 @@ -Bump dependency of VapourSynth to utilize its API version 4. New minimum VapourSynth version for runtime is R56. Some functions and plugins are changed or removed. For details, refer to VapourSynth documentation http://www.vapoursynth.com/2021/09/r55-audio-support-and-improved-performance/ and https://github.com/vapoursynth/vapoursynth/blob/R68/APIV4%20changes.txt diff --git a/DOCS/interface-changes/wasapi-exclusive-buffer.txt b/DOCS/interface-changes/wasapi-exclusive-buffer.txt deleted file mode 100644 index 161f2271c7..0000000000 --- a/DOCS/interface-changes/wasapi-exclusive-buffer.txt +++ /dev/null @@ -1 +0,0 @@ -add `--wasapi-exclusive-buffer` option diff --git a/DOCS/interface-changes/ytdl-path-and-json-properties.txt b/DOCS/interface-changes/ytdl-path-and-json-properties.txt deleted file mode 100644 index fbddef0732..0000000000 --- a/DOCS/interface-changes/ytdl-path-and-json-properties.txt +++ /dev/null @@ -1 +0,0 @@ -add `user-data/mpv/ytdl/path` and `user-data/mpv/ytdl/json-subprocess-result` properties diff --git a/MPV_VERSION b/MPV_VERSION index 78f9539caa..4ef2eb086f 100644 --- a/MPV_VERSION +++ b/MPV_VERSION @@ -1 +1 @@ -0.38.0-UNKNOWN +0.39.0 diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 5e5a83b130..acc828bb08 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -1,9 +1,21 @@ -Release 0.38.0 +Release 0.39.0 ============== -This release requires FFmpeg 4.4 or newer and libplacebo 6.338.2 or newer. +We are excited to announce the release of mpv 0.39.0, with more than 5 months of development since the last version. This release brings numerous improvements and fixes across nearly all components. + +Key highlights: + +* A new select.lua script, allowing users to easily choose files from playlists, tracks, chapters, output devices, and more. +* A native replacement for autoload.lua has been implemented. See --autocreate-playlist in the manual. +* NVIDIA RTX and Intel VSR scaling are now supported via the d3d11va filter. +* Media controls are now supported on Windows. +* Track selection has been improved, especially for multi-component languages like fr-CA. +* A new fifth page has been added to stats.lua, displaying track information. +* Compatibility with dmabuf-wayland has been significantly enhanced. +* Multi-touch support has been introduced. + +This release requires FFmpeg 6.1 or newer and libplacebo 6.338.2 or newer. -The new improved renderer (vo_gpu_next) is being worked on and not the default yet. Features @@ -12,30 +24,35 @@ Features New ~~~ -- scripting: add mp.input() -- player: add an option to automatically turn on deinterlacing -- mac: add more Now Playing information and functionality -- osxbundle: automatically include MoltenVK to enable Vulkan support -- input.conf: bind Ctrl+WHEEL_UP/DOWN to video-zoom -- ao_avfoundation: initial support for AVFoundation audio driver (macOS) -- vo: add context menu support on win32 +- vf_d3d11vpp: add support for Intel VSR and NVIDIA RTX scaling modes +- demux: add --autocreate-playlist +- audio: add pitch-shifting feature +- win32: add Media Control support +- various: allow changing GPU API options at runtime +- vo_gpu_next: support --gamma-factor +- vf_vapoursynth: upgrade to VapourSynth API v4 +- select.lua: add this script +- console.lua: implement a command parser to complete more things +- demux_mkv: demux Block Additional Mappings +- cocoa-cb: add support for macOS color space transformation (EDR/HDR) +- powershell-completion: add PowerShell command line completion +- input: implement VO dragging deadzone +- win32: support multitouch +- wayland_common: support multitouch +- demux/packet: add support for ITU T.35 metadata in Matroska +- demux: support VVC Matroska demux +- terminal-win: support mouse input events +- x11_common: detect wm support for _NET_WM_STATE_SKIP_TASKBAR Changed ~~~~~~~ -- osc: allow disabling special mouse wheel behavior -- mac: add support for dynamic change of geometry, autofit -- x11_common: allow DPI scale in unit of 0.5 and prefer the value from Xft.dpi -- vo_gpu_next: save cache to separate files -- mac: large amounts of refactoring, internal improvements and cleanups -- builtin.conf: remove debanding from the high-quality profile - - -Removed -~~~~~~~ - -- player: remove legacy, non-standard Raspberry Pi-specific support code +- loadfile: improve the format of terminal track information +- options: add secondary-{sid,sub-delay} to watch_later_options +- input: map Num 5 to distinct value when numlock is off +- input.conf: make Alt+BS reset panscan +- msg: don't use bold colors and instead use bright ones Options and Commands @@ -44,125 +61,145 @@ Options and Commands Added ~~~~~ -- options: add secondary-sub-delay -- options: add --osd-bar-border-size -- filter_sdh: add --sub-filter-sdh-enclosures option -- options: add --secondary-sub-ass-override -- audio: add --volume-gain option to control volume in decibels -- command: export current-gpu-context property -- sub: add --sub-lavc-o option -- command: add load-config-file and load-input-conf -- input: add --input-preprocess-wheel option -- player: add loadfile/loadlist insert-next commands -- input: rework window dragging to be command controllable -- options: add --deinterlace-field-parity option -- vo: add video-target-params property -- options: add --input-commands that runs commands at startup +- sub: add ass-video-aspect-override option +- input/keycodes: add KP_ADD/SUBTRACT/MULTIPLY/DIVIDE keycodes +- demux_playlist: use --directory-filter-types for --autocreate-playlist +- options: add --{video,audio,image}-exts +- player: don't decrement --ab-loop-count=N and add remaining-ab-loops +- player: don't decrement --loop-file=N and add remaining-file-loops +- sub: add (sub/osd)-border-style; renaming sub options +- input.conf: add zoom, pan, scale and rotate keybinds for numpad +- wayland: add a --wayland-present option +- mac/menu: add option to disable default shortcuts +- stats.lua: display file tags +- osc.lua: add option to use display fps for update interval +- osc.lua: add option to make rendering smoother +- opengl: add --egl-output-format, --egl-config-id +- vf_vapoursynth: add parameter to pass arbitrary string to script +- options: add --osd-playlist-entry +- {osc,stats}.lua: add 'auto' value to vidscale option +- input/cmd: add nonrepeatable prefix +- player: add option-info//expects-file +- command: add dolby-vision-profile and dolby-vision-level to track-list +- scripting: add mp.input.select() +- command: add normalize-path command +- OSC: implemented user configurable colors +- ao_wasapi: add `--wasapi-exclusive-buffer` option +- stats.lua: add option to disable scale with video size +- stats.lua: add option to control plot border width +- player/command: add track-list/N/decoder +- sd_ass: add `sub-vsfilter-bidi-compat` to enable vsfilter bidi compat +- {x11,w32}_common: implement --show-in-taskbar option Changed ~~~~~~~ -- player/command: add ability to scale overlay -- mac: add support for window-id property and --drag-and-drop -- command: support passing scale to `keypress` -- mac: add support for --auto-window-resize, --input-cursor-passthrough options -- win32: add support for --input-cursor-passthrough option -- x11_common: support --title-bar -- sub: allow setting special page numbers via --teletext_page -- player: set --hidpi-window-scale to no by default -- osd_libass: update the OSD bar's dent and border size -- player: remove --alpha and rename --background to --background-color -- options: remove --focus-on-open and add --focus-on +- sub: merge vsfilter-aspect and vsfilter-blur-compat options +- input.conf: swap the positions of values for `ctrl+h` binding +- video/csputils: remove space from choice option for chroma loc +- input.conf: add KP_DIVIDE/KP_MULTIPLY key bindings +- external_files: allow specifying --cover-art-whitelist filenames +- x11_common: handle runtime keepaspect/keepaspect-window change +- video/out/gpu/context: convert --gpu-api to object settings list +- playlist: let playlist-next go to first item if player is idle +- playlist: let playlist-prev go to last item in playlist +- options: remove deprecated auto choice for --mute +- player/command: alias playback-time to time-pos +- input.conf: change 'u' binding to cycle between 'force' and default +- options: make sub-ass-override default to 'scale' +- sd_ass: only set sub-scale for 'scale', 'force' or 'strip' +- player/command: mark sub-text-ass as deprecated +- player/command: add sub-text/ass-full sub-property +- player/command: move sub-text-ass to a sub-property Removed ~~~~~~~ -- player: remove --term-remaining-playtime option +- command: remove deprecated packet-*-bitrate properties +- console.lua: remove the scale script-opt +- osc.lua: remove scaleforcedwindow Fixes and Minor Enhancements ---------------------------- -- vaapi: add support for vaapi-win32 -- ao/coreaudio_exclusive: fix segfault when changing formats -- mac: fix libmpv usage without embedding -- build: only directly link shaderc and spirv-cross on windows -- build: enable dvbin by default again -- playloop: use a 16:9 ratio with --force-window -- mac: report modifier keys on precise scrolling -- input: fix double click handling -- input: add missing forward media key ('GO_FORWARD') -- sub: don't busy loop if the player is paused for cache -- playlist: correctly populate playlist-path with the --playlist option -- win32: opt in to the windows segment heap -- demux_lavf: remove fix_editlists hack for mp4 -- wayland: fix key modifier handling again -- win32: re-enable IME -- wayland_common: guard against negative configure sizes -- demux_lavf: detect ico as images -- bash-completion: parse the mpv options lazily -- f_auto_filters: use bwdif_cuda for deinterlacing with cuda hwdec -- command: do a normal seek instead of a refresh seek when switching vo -- ad_spdif: fix DTS 44.1khz passthrough playback -- vo_dmabuf_wayland: scale smarter in hidpi situations -- hwdec_drmprime: add P010 and P210 support -- wayland: look for "default" cursor as well as "left_ptr" -- wayland_common: properly handle high resolution scrolling -- vo_vdpau: fix timing for nanoseconds -- demux_mkv: add tags for A_MPEG/L1 (mp1) audio and FFV1 video -- osdep: fix infinite loop when cancelling subprocess -- dec_sub: expand sub packet caching -- player/sub: avoid wasteful subtitle redraws -- ao_pipewire: add support for SPDIF formats -- wayland_common: implement multi-seat support -- vo: make libmpv last in the auto-probing order for cocoa-cb only -- player/loadfile: rewrite sub autoselection logic -- meson: add custom target for macOS App bundling -- image_writer: cleanup leftover files if image writing fails -- sub: fix LRC lines with multiple timestamps -- ao: don't clip floating point formats at non-unity gain -- wayland: remove old sway/wlroots hack -- hwdec/dmabuf_interop_gl: migrate to EXT_EGL_image_storage on desktop GL -- sd_ass: don't wrongly recognize \pos as \p -- ao_audiotrack: fix missing check for passthrough support -- wayland_common: log if Drag-and-Drop fails -- vo_gpu_next: render subtitles at video colorspace -- swresample: stop using deprecated {in,out}_channel_layout options -- path: don't load any files if --no-config is passed (incl. cache and state) -- vo_gpu/vo_gpu_next: fix transparency with GLX -- wayland_common: require WAYLAND_DISPLAY to be set for initialization -- vo_drm: add support for BGR formats and YUYV -- stream: enable caching for sockets, pipes and FIFOs -- ao_coreaudio: stop audio unit after idle timeout -- vo_gpu_next: add support for --dither-depth=auto -- vo_gpu_next: don't render ASS subtitles at HDR colorspace -- video/image_writer: attach MDVC metadata and CLLI metadata -- win32: resolve dropped shell links (Windows shortcuts) -- af_lavcac3enc: fix memory leak on 2ch audio -- win32: increase hires timer resolution -- input: raise maximum key down limit to 16 -- input: remove max active section limit -- video/egl_helpers: fix fallback logic for EGL_KHR_create_context -- ao_pulse: reenable latency hacks by default -- hwdec/vulkan: enable the stable AV1 extension -- af_scaletempo2: fix false reporting of frame availability -- win32: fix native key repeat support -- ao_pipewire: fix some buffer size / timing calculations -- audio: pause handling improvements for pull-based AOs -- ad_spdif: specify missing media type and sample rate -- mac/vulkan: add support for frame timing via presentation feedback -- demux_mkv: corrected direction of ProjectionPoseRoll rotation -- demux_mkv: add support for BCP 47 language tags -- player: avoid busy looping during subtitle track switches +- wayland: fix vertical resizing +- stats.lua: don't use ASS tags when use_ass is false +- video/out/wayland_common: set key state only on keyboard_enter keys +- input: add MP_KEY_STATE_SET_ONLY +- vo_gpu: use fallback colorspace for Dolby Vision +- video/out/wayland_common: don't pass mouse inputs on resizing edges +- hwdec_vulkan: allow using multiple decoding family queues +- hwdec_vulkan: update to new libavutil queue family API +- drm_prime: fix use of formats with modifiers +- build: bump minimum Windows version to 10 +- input/ipc-win: support fd:// for --input-ipc-client +- player/command: fix --force-window=yes acting like immediate +- sd_ass: fix margin y scale with font size +- sd_ass: fix sub scale with window when use_margins is enabled +- loadfile,select.lua: print bitrates of tracks +- wayland: avoid potential floating point errors while scaling +- vo_dmabuf_wayland: don't use -ve margins in window size calculation +- ytdl_hook.lua: allow changing try_ytdl_first during runtime +- wayland: fix missed int -> double conversion for cursor scaling +- player/loadfile: enable streams in order of types when loading file +- misc/natural_sort: avoid implementation-defined behavior in comparison +- demux: allow refresh seek for non-video streams +- demux_edl: fix infinite loop on empty EDL files +- d3d11: return minimum bitdepth for display output and swapchain +- stats.lua: add page 5 for currently selected tracks information +- autoload.lua: fix options update +- input: prevent MBTN_LEFT conflict with VO dragging +- TOOLS/autoload.lua: fix directory_mode and ext options +- player/video: fix incorrect VO frame duration and frame drops +- x11: correct position coordinates if mpv was launched with --fs +- vo_vaapi: fix use-after-free when quitting +- vo_vaapi: fix use-after-free of current frame +- playloop: don't loop when seeking to the end of cover art while paused +- build: dynamically generate mpv.desktop file protocols +- wayland: use wl->callback_surface for idle inhibitor creation +- wayland: cap xdg_wm_base at 4 if wm_capabilities aren't supported +- {options,player}: fix stream leaks +- console.lua: increase margins from the bottom-left corner +- external_files: detect language tags with hyphens +- player/loadfile: match language and subcodes +- player: normalize paths for resuming playback +- demux_mkv: fix image detection +- demux_mkv: make V_QUICKTIME codec detection generic +- osd: show left arrow when playing backwards +- wayland: set wl->scaling if there is no wl->current_output yet +- sub/osd: fix rounding when rescaling bitmap subtitle rects +- zsh-completion: complete --gpu-context +- stats.lua: show osd-dimensions property +- sub/lavc_conv: don't override style of converted teletext pages +- mac: make display-names unique to allow specific selection +- vo_dmabuf_wayland: use wl_fixed_from_int when setting viewport source +- vo_dmabuf_wayland: fix scaling for subsurface positioning +- demux: also read "CUESHEET" tag from stream metadata +- stats.lua: filter input bindings by typing them +- vo_{tct,sixel,kitty}: implement mouse support +- terminal-unix: ignore unhandled mouse CSI sequences +- terminal-unix: support mouse escape codes +- sd_ass: fix margins for all styles when overriding PlayResX +- stats.lua: inherit OSD styles +- options: fix runtime update of teletext-page +- ytdl_hook: add some more yt-dlp tags +- vulkan: don't tolerate suboptimal swapchain configurations +- vd_lavc: add Vulkan hardware decoding to autoprobe +- sub/osd: add log if osd rendering takes too long time +- vo_gpu_next: allow setting antiring value for cscale +- f_auto_filters: don't set interlaced-only for userdeint +- vo_dmabuf_wayland: reject formats not supported by the GPU +- ytdl_hook: make path and json available to other scripts This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces. -A complete changelog can be seen by running `git log v0.37.0..v0.38.0` +A complete changelog can be seen by running `git log v0.38.0..v0.39.0` in the git repository or by visiting either -https://github.com/mpv-player/mpv/compare/v0.37.0...v0.38.0 or -https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.37.0..v0.38.0 +https://github.com/mpv-player/mpv/compare/v0.38.0...v0.39.0 or +https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.38.0..v0.39.0