Release 0.39.0 ============== 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. Features -------- New ~~~ - 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 ~~~~~~~ - 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 -------------------- Added ~~~~~ - 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 ~~~~~~~ - 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 ~~~~~~~ - command: remove deprecated packet-*-bitrate properties - console.lua: remove the scale script-opt - osc.lua: remove scaleforcedwindow Fixes and Minor Enhancements ---------------------------- - 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.38.0..v0.39.0` in the git repository or by visiting either 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