mpv-fourier: iter2 — wire v4l2request hwdec through drmprime VO
build and publish packages / distcc-avahi-aarch64 (push) Successful in 1m29s
build and publish packages / lmcp-any (push) Successful in 10s
build and publish packages / lmcp-debian (push) Successful in 8s
build and publish packages / claude-his-any (push) Successful in 7s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 12m53s
build and publish packages / claude-his-debian (push) Successful in 6s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 14s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 1m4s

Adds Kwiboo / Langdale's 2024-08 patches (0001-meson + 0002-vo-hwdec-drmprime)
so AV_HWDEVICE_TYPE_V4L2REQUEST flows through mpv's drmprime VO hwdec and
`--hwdec=v4l2request` engages against the dmabuf-wayland VO instead of failing
with "Could not create device". The matcher previously filtered on
AV_HWDEVICE_TYPE_DRM and rejected v4l2request even when libavcodec's hwaccel
returned a valid PRIME descriptor.

PKGBUILD: pkgrel 9 → 10, source[] picks up both new patches, prepare() applies
them before the existing 0001-vo_dmabuf_wayland cache-sync workaround,
meson build flag -Dv4l2request=enabled added so the new option compiles in.

Stacks on top of iter1 (713a856): the dma_buf cache-sync workaround stays
load-bearing for the existing vaapi_dmabuf and drmprime_dmabuf import paths;
this iter only adds the wiring for the drmprime VO's hwdec selector.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Claude (noether)
2026-05-15 05:47:59 +00:00
committed by Markus Fritsche
parent 948088fc28
commit ee636a6d21
3 changed files with 506 additions and 2 deletions
+15 -2
View File
@@ -23,8 +23,8 @@ pkgname=mpv-fourier
_upstreampkg=mpv
epoch=1
pkgver=0.41.0
pkgrel=9
pkgdesc='mpv with fourier-umbrella patches (vo_dmabuf_wayland explicit cache-sync workaround)'
pkgrel=10
pkgdesc='mpv with fourier-umbrella patches (vo_dmabuf_wayland explicit cache-sync workaround + v4l2request hwdec wiring)'
arch=('aarch64')
url='https://mpv.io/'
license=('GPL-2.0-or-later AND LGPL-2.1-or-later')
@@ -49,16 +49,28 @@ options=('!emptydirs')
source=(
"${_upstreampkg}-${pkgver}.tar.gz::https://github.com/mpv-player/${_upstreampkg}/archive/v${pkgver}/${_upstreampkg}-${pkgver}.tar.gz"
# Kwiboo + Langdale: wire AV_HWDEVICE_TYPE_V4L2REQUEST through mpv's drmprime VO hwdec
'0001-meson-add-detection-logic-for-v4l2request-support.patch'
'0002-vo-hwdec-drmprime-add-separate-hwdecs-for-v4l2reques.patch'
'0001-vo_dmabuf_wayland-explicit-cache-sync-on-import-fd.patch'
)
sha256sums=(
'ee21092a5ee427353392360929dc64645c54479aefdb5babc5cfbb5fad626209'
'302dc2a89f1dc3efb8fd7a035fd70bee4b343acf01fe78b294e8aeca0b221dc2'
'b6a71030017867c84692a8a198f9db143ce8394ab5a6ed3c705ea2d715d525fc'
'6c929bea7636b8d81b63a1275ba1d8a471fe2f249fc23509043ace6cf9b076a7'
)
prepare() {
cd "${_upstreampkg}-${pkgver}"
# Kwiboo + Langdale (2024-08): wire AV_HWDEVICE_TYPE_V4L2REQUEST through
# the drmprime VO hwdec so --hwdec=v4l2request engages on dmabuf-wayland.
# Without these, mpv reports "Could not create device" because the matcher
# filters by lavc_device type and v4l2request != AV_HWDEVICE_TYPE_DRM.
patch -p1 < "${srcdir}/0001-meson-add-detection-logic-for-v4l2request-support.patch"
patch -p1 < "${srcdir}/0002-vo-hwdec-drmprime-add-separate-hwdecs-for-v4l2reques.patch"
# iter1 of dmabuf-modifier-triage — explicit DMA_BUF_IOCTL_SYNC on import
# fds in vaapi_dmabuf_importer + drmprime_dmabuf_importer. Workaround for
# missing implicit-fence on V4L2 stateless CAPTURE buffers; root cause is
@@ -70,6 +82,7 @@ build() {
local _meson_options=(
--auto-features auto
-Dv4l2request=enabled
-Dlibmpv=true
-Dgl-x11=enabled
-Dcaca=disabled