Skip to content

v0.41.0

Latest

Choose a tag to compare

@sfan5 sfan5 released this 21 Dec 19:17
· 77 commits to master since this release
v0.41.0
41f6a64

We are excited to announce the release of mpv 0.41.0.

Key highlights:

  • The libplacebo based gpu-next is now the default, instead of gpu
  • Vulkan hardware decoding is preferred over other APIs
  • New context_menu.lua script for right-click context menus
  • AAudio backend for modern, JNI-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 v0.40.0...v0.41.0.


Note that the release binary assets are our CI builds. These builds are reasonably useful, but don't include everything which mpv supports (e.g. there's no encoding support).