Release 0.40.0
==============

We are excited to announce the release of mpv 0.40.0.

Key highlights:

* Console: Enhanced autocompletion and visual styling
* OSC: New selection menu accessible by right-clicking common buttons
* HDR is now natively supported when using direct rendering (DRM),
  as well as dmabuf-wayland on Linux
* Native clipboard access for scripts via new `clipboard` property
* New command menu, with common actions easily accessible
* Enhanced select.lua with new selection options for watch history, editions, DVD/Blu-Ray titles
* New positioning.lua script script for cursor-centric zooming and drag to pan
* Better stream support for Blu-ray, DVD and CDDA
* Track selection improvements and better metadata display
* Added osd-box / sub-box / box profiles to easily enable box styled OSD/OSC
* Windows support in umpv helper script

This release requires FFmpeg 6.1 or newer and libplacebo 6.338.2 or newer.

# Features

## New

- vf_d3d11vpp: add NVIDIA RTX Video HDR support
- context_drm_gl: add support for HDR metadata
- positioning.lua: add new script for video alignment and zooming
- umpv: add Windows support
- command: add clipboard property with native backends for Windows, macOS, and Wayland
- select.lua: add watch history, edition, DVD/Blu-Ray titles and more selection options
- input.conf: add cursor-centric zoom and drag-to-pan bindings
- wayland: add support for wp-color-management-v1 protocol
- console.lua: add persistent command history
- stats.lua: add timecode display
- options: add --playlist-exts and --archive-exts
- wayland_common: support IME usage via text-input-v3
- command: add multiple track metadata and properties
- vo_gpu_next: add chroma location and HDR metadata to shader parameters
- player/screenshot: support more formats for screenshot-raw command
- demux_mkv: add `--demuxer-mkv-crop-compat` option
- misc/language: parse hi/sdh/cc tags from external subtitle tracks
- wayland: support xdg-activation
- player: add mpv:// protocol


## Changed

- meson: build libmpv by default
- command: enhance track and playlist display information
- input.conf: improve numpad key bindings
- osc.lua: add custom buttons support and improved mouse bindings
- console.lua: inherit OSD styles and colors
- options: default to --prefetch-playlist=yes
- osc.lua: add slimbottombar and slimtopbar layouts
- command: improve frame-step to go through multiple frames
- wayland: use wp-presentation v2 if available
- various: reorganize options into more logical groups
- vo_gpu_next: improve target colorspace handling
- options: disable `--input-ime` by default (enabled on demand)


# Options and Commands

## Added

- sd_ass: introduce sub-ass-prune-delay
- player: add an optional mute flag when framestepping
- command: add clipboard/text-primary property
- command: add current-clipboard-backend property
- command: add notify-property command
- options: add --script-opt alias for --script-opts-append
- options: add --osd-bar-marker-{size,style} options
- options: add --input-ime for improved text input
- options: add --video-recenter
- options: add --clipboard-backends
- options: add --wayland-internal-vsync
- options: add --sub-scale-signs


## Changed

- options: rename --load-osd-console to --load-console
- player: improve track selection for multi-component languages
- options: improve frame-step command to handle multiple frames
- input.conf: make Alt+BS reset --video-align-{x,y}
- command: print track metadata when changing track
- command: print track-list with enhanced metadata


## Deprecated

- options: deprecate `--gamma-auto` (use gamma-auto.lua script instead)
- options: deprecate undocumented --cdda-span-{a,b} options


# Fixes and Minor Enhancements

- f_hwtransfer: ensure that we convert to full range rgb with scale_vaapi
- win32: fix window size restore after maximize state
- build: fix dynamic generation of mpv.desktop file protocols
- player/sub: avoid pointlessly redecoding subs
- x11: remove nvidia blacklist logic from --x11-present=auto
- osc.lua: seek to the nearest chapter when right clicking the seekbar
- command: fix keybind command with sequence keys
- video/out/wayland_common: fix crash with multi-seat drag and drop
- demux: reclaim demux_packets to reduce memory allocator pressure
- demux_cue: only accept TRACK with AUDIO type
- player/loadfile: strip common filename part from external track title
- build: remove unused dvdread dependency
- wayland: fix vertical resizing and scaling issues
- console.lua: improve completion and visual appearance
- sub/osd: default to a semitransparent black back color
- player: improve playlist handling with prefetch
- drm: parse EDID using libdisplay-info (which is now a required dependency)
- win32: fix window size restore after maximize state
- hwdec_d3d11va: align image mapper dimensions to a multiple of 2
- wayland: fix DnD with focus follow mouse
- player: store external filenames as normalized
- player: properly handle secondary subtitles on the terminal
- demux_mkv: add support for chroma location
- vo_dmabuf_wayland: improve and fix format selection
- player: fix combination of --loop-playlist + --shuffle + --prefetch-playlist


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.39.0..v0.40.0`
in the git repository or by visiting
<https://github.com/mpv-player/mpv/compare/v0.39.0...v0.40.0>.
