Release 0.41.0 ============== We are excited to announce the release of mpv 0.41.0. Key highlights: * The libplacebo based `gpu-next` is now the default, over `gpu` * Vulkan hardware decoding is preferred over other APIs * New context_menu.lua script for right-click context menus * AAudio backend for modern, HNI-free audio output on Android * Improved default color management for gpu-next, and handling on Wayland * Color representation protocol support for Wayland * Tablet input support for Wayland * Clipboard writing support for Wayland and a clipboard backend for X11 * Ambient light support on Linux (using sysfs ALS) * Built-in helpers to register mpv as a media app on Windows This release requires FFmpeg 6.1 or newer and libplacebo 6.338.2 or newer. # Features ## New - clipboard-wayland: support clipboard writing - wayland: add support for wp-color-representation-v1 - wayland: tablet input support - vo_gpu_next: add support for blend-subtitles=video - meson: add mpv-register and mpv-unregister helpers on Windows - context_menu.lua: add this script - select.lua: add edit-config-file and edit-input-conf - osc.lua: add indicator for buffering/loading - osdep/linux-als: support 'ambient-light' property on Linux - clipboard-x11: add x11 clipboard backend - ao/aaudio: implement native AAudio backend for Android ## Changed - vd_lavc: prefer Vulkan hwdec when available - vd_lavc: prefer non-copy hwdec before falling back to -copy variant - vo: move vo_mediacodec_embed to not be the default on Android - sub/osd_libass: don't rerender OSD if not changed - vo: prefer vo_gpu_next over vo_gpu by default - vo_gpu_next: respect ICC profile color space over any metadata - vo_gpu_next: linearize sRGB as a pure 2.2 power function - meson: warn if building with SDL2 due to known problems - osxbundle: make bundle category configurable and default to video - ao_pipewire: avoid setting any media.role by default # Options and Commands ## Added - sub: add control for libass caching options (glyph-limit, bitmap-max-size) - vo: add options to control background tile appearance (transparency) - command: add default and forced flags to the track add commands - vo_gpu_next: add options to control subtitle peak for HDR output - video/out/d3d11: add d3d11 composition mode support - vd_lavc: add --hwdec-threads - stream_bluray: add --bluray-angle - vo_gpu_next: add options to control output colorspace metadata more precisely - sub: make --sub-fix-timing configurable - vo_gpu_next: add --hdr-reference-white - audio/out: add --audio-set-media-role ## Changed - options: revert --prefetch-playlist default back to 'no' - vo_gpu_next: change --target-colorspace-hint to 'auto' by default - options: handle runtime --wid change - options: reduce swapchain-depth to 2 by default - screenshot: add osd and scaled flags to screenshot commands # Fixes and Minor Enhancements - vo_kitty: add auto-multiplexer-passthrough option - vd_lavc: enable FFv1 hwaccel by default - clipboard-wayland: prevent reading from hung up fd - demux_mkv: fix compilation after deprecated definitions removal - filters: handle flipping video if displaymatrix indicates so - player/scripting: fix race condition when destroying clients - {osd,msg}: use PU codepoints for escape codes instead of invalid UTF-8 - vo_dmabuf_wayland: only load needed hardware decoding drivers - video/image_writer: tag accurate bit depth - demux_lavf: fix unconstrained cache size with wrapped AVFrame packets - libarchive: fix reading name of certain UTF-8 files - sub/sd_lavc: fix decoding with libaribb24 - ao_avfoundation: fix memory leak - osc.lua: fix volume icon not updating while paused - context_wayland: implement target_csp for wayland - vo_gpu: fix target colorspace for redrawn frames - vo_dmabuf_wayland: don't set HDR metadata on SDR transfers - vo_gpu_next: don't do partial updates on hint luminance - sub/ass_mp: add missing padding for ass packer - stream_dvb: allow to enforce DVB-S/T for old zap format channels.conf - demux_libarchive: fix reading archives with '%' in stream URL path - vo_gpu_next: allow UINT upload if no other format is supported - ytdl_hook.lua: fix incorrect default format used with yt-dlp - vo_gpu_next: allow unsetting LUTs - stream_bluray: use bd_get_main_title() to get main title - vo_gpu_next: when tone-mapping, set better maxCLL value - stream_libarchive: seek source stream to 0 before probing - path-unix: support ~~desktop path expansion - ytdl_hook.lua: don't crash if playlist entries don't have an usable URL - mac/vulkan: fix frame not displayed when paused - mac/common: render first frame on init if possible - video/out/w32_common: support --wid=0 - demux_mkv: map and expose hearing/visual impaired flags - player/misc: show percentage progress for --stream-dump - command: fix null dereference for invalid command in input-commands - cplugin: fix missing init of pfn_mpv_get_time_ns - vo_dmabuf_wayland: actually reuse OSD buffers - mp_image: add support for AVAlphaMode - vo_gpu_next: add --border-background=blur and --background-blur-radius - demux/cue: fix crash when there are no tracks - vf_format: add some basic HDR10 metadata - vo/context_android: fix surface tearing on resize - meson: remove redundant 'sdl2' option - mac/common: fix window position on multi monitor setups - vo_gpu_next: limit min_luma to 1000:1 contrast ratio in SDR mode - ao_pipewire: fix some incorrect channel mappings - wayland: correct geometry handling for rotated outputs - demux: clear packet pool when upper memory limit is lowered - mp_image: add ycgco-{re,ro} support - wayland: convert luminance values to libplacebo space - vo: trigger manual redraws at most at slightly over display fps - osxbundle: add new macOS 26 compatible App icon - wayland: support color-management-v1 version 2 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.40.0..v0.41.0` in the git repository or by visiting .