Here is an update to mpv 0.41.0.

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

# 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


Index: Makefile
===================================================================
RCS file: /cvs/ports/multimedia/mpv/Makefile,v
retrieving revision 1.108
diff -u -p -u -p -r1.108 Makefile
--- Makefile    26 Mar 2025 22:17:11 -0000      1.108
+++ Makefile    21 Feb 2026 01:53:21 -0000
@@ -2,7 +2,7 @@ COMMENT =               movie player based on MPlayer
 
 GH_ACCOUNT =           mpv-player
 GH_PROJECT =           mpv
-GH_TAGNAME =           v0.40.0
+GH_TAGNAME =           v0.41.0
 USE_NOBTCFI =          Yes
 
 SHARED_LIBS +=         mpv             2.0
@@ -14,8 +14,8 @@ HOMEPAGE =            https://mpv.io/
 # GPLv2+
 PERMIT_PACKAGE =       Yes
 
-WANTLIB += ${MODLUA_WANTLIB} EGL SDL2 X11 X11-xcb Xext Xpresent Xrandr
-WANTLIB += Xss Xv archive ass avcodec avdevice avfilter avformat
+WANTLIB += ${MODLUA_WANTLIB} EGL X11 X11-xcb Xext Xfixes Xpresent
+WANTLIB += Xrandr Xss Xv archive ass avcodec avdevice avfilter avformat
 WANTLIB += avutil bluray c cdio cdio_cdda cdio_paranoia display-info
 WANTLIB += drm dvdnav iconv jpeg lcms2 m placebo pthread sndio
 WANTLIB += swresample swscale va va-drm va-x11 vulkan xcb xcb-shm z
@@ -37,7 +37,6 @@ LIB_DEPENDS =         archivers/libarchive \
                        audio/libcdio \
                        audio/libcdio-paranoia \
                        converters/libiconv \
-                       devel/sdl2 \
                        graphics/ffmpeg \
                        graphics/jpeg \
                        graphics/lcms2 \
@@ -55,8 +54,10 @@ RUN_DEPENDS =                devel/desktop-file-utils 
                        www/yt-dlp \
                        x11/gtk+4,-guic
 
-CONFIGURE_ARGS =       -Dalsa=disabled \
+CONFIGURE_ARGS =       -Daaudio=disabled \
+                       -Dalsa=disabled \
                        -Dandroid-media-ndk=disabled \
+                       -Daudiotrack=disabled \
                        -Daudiounit=disabled \
                        -Davfoundation=disabled \
                        -Dcaca=disabled \
@@ -98,8 +99,6 @@ CONFIGURE_ARGS =      -Dalsa=disabled \
                        -Dpipewire=disabled \
                        -Dpulse=disabled \
                        -Drubberband=disabled \
-                       -Dsdl2-audio=disabled \
-                       -Dsdl2=enabled \
                        -Dshaderc=disabled \
                        -Dsixel=disabled \
                        -Dspirv-cross=disabled \
@@ -130,7 +129,6 @@ post-install:
        ${INSTALL_DATA} ${WRKDIST}/TOOLS/mpv_identify.sh \
                ${WRKDIST}/TOOLS/umpv ${PREFIX}/share/examples/mpv
        ${MODPY_BIN_ADJ} ${PREFIX}/share/examples/mpv/umpv
-       mv -f ${WRKINST}${SYSCONFDIR}/mpv/* ${PREFIX}/share/examples/mpv
        sed -Ei 's,(/dev/dvd|/dev/cdrom),/dev/rcd0c,g' ${PREFIX}/man/man1/mpv.1
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/multimedia/mpv/distinfo,v
retrieving revision 1.38
diff -u -p -u -p -r1.38 distinfo
--- distinfo    26 Mar 2025 22:17:11 -0000      1.38
+++ distinfo    21 Feb 2026 01:53:21 -0000
@@ -1,2 +1,2 @@
-SHA256 (mpv-0.40.0.tar.gz) = EKD0ZU9iFApt1NOA3PC729z25pdVaGPcSZwpYYLwgaM=
-SIZE (mpv-0.40.0.tar.gz) = 3561474
+SHA256 (mpv-0.41.0.tar.gz) = 7iEJKl7kJzUzkjYJKdxkZFxUR5rv21urxc+7X61iYgk=
+SIZE (mpv-0.41.0.tar.gz) = 7262018
Index: patches/patch-demux_demux_mkv_c
===================================================================
RCS file: patches/patch-demux_demux_mkv_c
diff -N patches/patch-demux_demux_mkv_c
--- patches/patch-demux_demux_mkv_c     21 Oct 2025 13:04:43 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,23 +0,0 @@
-Index: demux/demux_mkv.c
---- demux/demux_mkv.c.orig
-+++ demux/demux_mkv.c
-@@ -2200,16 +2200,16 @@ static int demux_mkv_open_sub(demuxer_t *demuxer, mkv_
-             // [0x30..0x37] are component tags utilized for
-             // non-mobile captioning service ("profile A").
-             if (component_tag >= 0x30 && component_tag <= 0x37)
--                lav->profile = FF_PROFILE_ARIB_PROFILE_A;
-+                lav->profile = AV_PROFILE_ARIB_PROFILE_A;
-             break;
-         case 0x0012:
-             // component tag 0x87 signifies a mobile/partial reception
-             // (1seg) captioning service ("profile C").
-             if (component_tag == 0x87)
--                lav->profile = FF_PROFILE_ARIB_PROFILE_C;
-+                lav->profile = AV_PROFILE_ARIB_PROFILE_C;
-             break;
-         }
--        if (lav->profile == FF_PROFILE_UNKNOWN)
-+        if (lav->profile == AV_PROFILE_UNKNOWN)
-             MP_WARN(demuxer, "ARIB caption profile %02x / %04x not 
supported.\n",
-                     component_tag, data_component_id);
-     }
Index: patches/patch-meson_build
===================================================================
RCS file: /cvs/ports/multimedia/mpv/patches/patch-meson_build,v
retrieving revision 1.12
diff -u -p -u -p -r1.12 patch-meson_build
--- patches/patch-meson_build   26 Mar 2025 22:17:15 -0000      1.12
+++ patches/patch-meson_build   21 Feb 2026 01:53:21 -0000
@@ -5,7 +5,7 @@ Support for xcb-shm
 Index: meson.build
 --- meson.build.orig
 +++ meson.build
-@@ -358,7 +358,19 @@ if features['libdl']
+@@ -356,7 +356,19 @@ if features['libdl']
  endif
  
  # C11 atomics are mandatory but linking to the library is not always required.
@@ -26,7 +26,7 @@ Index: meson.build
  
  cplugins = get_option('cplugins').require(
      win32 or (features['libdl'] and cc.has_link_argument('-rdynamic')),
-@@ -1070,7 +1082,10 @@ x11 = {
+@@ -1089,7 +1101,10 @@ x11 = {
               dependency('xscrnsaver', version: '>= 1.0.0', required: x11_opt),
               dependency('xext', version: '>= 1.0.0', required: x11_opt),
               dependency('xpresent', version: '>= 1.0.0', required: x11_opt),

Reply via email to