Thursday, February 26, 2026

Re: UPDATE: mpv 0.41.0

På lørdag 21. februar 2026 kl. 03:30, skrev Brad Smith
<brad@comstyle.com>:

> Here is an update to mpv 0.41.0.
>
>

Built/tested on current/amd64:

Been using a prior diff for two-ish months and this patch for almost a
week. No issues while I ran this multiple times a day.

Built and runs fine in niri/xwayland-satellite and sway/xwayland.

Had this in sway ~/.config/sway/config:

# Label XWayland windows to check for native wayland support (dev)
for_window [shell="xwayland"] title_format "[XWayland] %title"

--

to try various outputs shown in 'mpv --vo=help' and see what is in
use.

Also recompiled:

multimedia/mpvqt
x11/kde-applications/kalarm
x11/kde-applications/plasmatube
x11/smplayer

Which all compiled fine too and from very light testing seem to have no
regressions from the mpv currently in ports.

Hope this helps! Thank you all as I use this a lot and seems it could
make it before the freeze. May you all have a good one and happy
porting.

--
yaydn


> 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),
>
>

No comments:

Post a Comment