libva-v4l2-request-fourier: c332d34 -> 9898331 (LIBVA-2 close)

Follow-up to libva PR #7 (merged as 9898331).  Without that commit,
H.264/VP9/AV1 profiles never got advertised on Pi 5 mixed deploys
(rpi-hevc-dec primary + daedalus_v4l2 alt) because the profile-
enumeration probe in any_fd_supports_output_format only walked
rkvdec / hantro / rpi-hevc-dec / vpu981 fds.  ffmpeg vaapi -i
h264_test.mp4 on higgs bailed with "No support for codec h264
profile 578" before the LIBVA-1 per-codec dispatch could even fire.

9898331 extends the fds[] from 5 to 6 with video_fd_daedalus as
the 6th slot (HAVE_DAEDALUS_V4L2-gated, -1 fallback otherwise).

Effect on higgs once this lands: vainfo lists VP9Profile0 +
AV1Profile0 + H264* alongside HEVCMain, and ffmpeg -hwaccel vaapi
-i h264_test.mp4 routes through the daedalus daemon (via 'd' kind
in request_switch_device_for_profile).

Both packages: pkgver 1.0.0.r380.9898331 (count from rev-list),
pkgrel reset to 1 (new upstream pin).  Backward-compatible on
RK3399/3588 — the new fd slot is gated by HAVE_DAEDALUS_V4L2 *and*
video_fd_daedalus >= 0, both false in those deployments.

Companion to the prior LIBVA-{1,ABI} bumps that landed in marfrit-
packages PRs #43, #44.  Together they close the Pi 5 stack: boot ->
modules-load.d loads daedalus_v4l2 -> daedalus-v4l2.service starts
daemon -> libva opens both decoders -> ffmpeg -hwaccel vaapi
enumerates all codecs from both -> routes per-codec.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-20 17:08:07 +02:00
parent a29fe71666
commit 243e05ca5e
3 changed files with 34 additions and 12 deletions
+9 -5
View File
@@ -33,18 +33,22 @@ _upstreampkg=libva-v4l2-request
# Prior pin (7ac934e) was iter38b — fresnel-fourier multi-device probe # Prior pin (7ac934e) was iter38b — fresnel-fourier multi-device probe
# + MAX_PROFILES bounds-check fix. de27e95 added the daedalus_v4l2 # + MAX_PROFILES bounds-check fix. de27e95 added the daedalus_v4l2
# probe slot (b5b3acf), the meson option gate (2146341), and the # probe slot (b5b3acf), the meson option gate (2146341), and the
# S_EXT_CTRLS diagnostic (de27e95 itself). c332d34 (LIBVA-1) finishes # S_EXT_CTRLS diagnostic (de27e95 itself). c332d34 (LIBVA-1) added
# the per-codec dispatch: rpi-hevc-dec + daedalus_v4l2 both probe each # the per-codec dispatch: rpi-hevc-dec + daedalus_v4l2 both probe each
# other as alts, VP9/AV1/H.264 route to daedalus via new 'd' kind, # other as alts, VP9/AV1/H.264 route to daedalus via new 'd' kind,
# HEVC stays on 'p' (rpi-hevc-dec). Required for the Pi 5 / CM5 # HEVC stays on 'p' (rpi-hevc-dec). 9898331 (LIBVA-2) completes that
# mixed-decoder deployment (higgs). # by adding video_fd_daedalus to any_fd_supports_output_format's probe
_commit=c332d34643be29e88012e30878d2fbeb255b20ab # array — without it, H.264/VP9/AV1 profiles never got advertised on
# Pi 5 mixed deployments (rpi-hevc-dec primary, daedalus alt) and
# ffmpeg bailed with "No support for codec h264 profile 578" before
# the per-codec dispatch could fire.
_commit=989833114a7708ad999dc68309cbc181d9913bdb
# Project version from meson.build (1.0.0) + commit count + short sha, # Project version from meson.build (1.0.0) + commit count + short sha,
# matching the ffmpeg-v4l2-request-fourier convention. Recomputed at # matching the ffmpeg-v4l2-request-fourier convention. Recomputed at
# build time by pkgver() below; the static value here is a placeholder # build time by pkgver() below; the static value here is a placeholder
# so AUR-style consumers see something coherent before src/ exists. # so AUR-style consumers see something coherent before src/ exists.
pkgver=1.0.0.r378.c332d34 pkgver=1.0.0.r380.9898331
pkgrel=1 pkgrel=1
pkgdesc="VA-API backend for V4L2 stateless decoders (multiplanar fork — fourier umbrella)" pkgdesc="VA-API backend for V4L2 stateless decoders (multiplanar fork — fourier umbrella)"
arch=('aarch64') arch=('aarch64')
+10 -7
View File
@@ -10,13 +10,16 @@
# Upstream fork: https://git.reauktion.de/marfrit/libva-v4l2-request-fourier # Upstream fork: https://git.reauktion.de/marfrit/libva-v4l2-request-fourier
set -euo pipefail set -euo pipefail
# Same pin as the Arch PKGBUILD. c332d34 = LIBVA-1 close — per-codec # Same pin as the Arch PKGBUILD. 9898331 = LIBVA-2 close — completes
# dispatch on Pi 5: rpi-hevc-dec + daedalus_v4l2 both probe each other # the per-codec dispatch from c332d34 (LIBVA-1) by adding video_fd_
# as alts, VP9/AV1/H.264 route to daedalus via new 'd' kind, HEVC stays # daedalus to any_fd_supports_output_format's probe array. Without
# on 'p' (rpi-hevc-dec). # it, H.264/VP9/AV1 profiles never got advertised on Pi 5 mixed
UPSTREAM_COMMIT=c332d34643be29e88012e30878d2fbeb255b20ab # deployments (rpi-hevc-dec primary, daedalus_v4l2 alt) — ffmpeg
PKGVER=1.0.0+r378+gc332d34 # bailed with "No support for codec h264 profile 578" before the
PKGREL=2 # rebuild against pinned trixie libva-dev (2.22) for __vaDriverInit_1_22 ABI # per-codec dispatch could even fire.
UPSTREAM_COMMIT=989833114a7708ad999dc68309cbc181d9913bdb
PKGVER=1.0.0+r380+g9898331
PKGREL=1
HERE=$(dirname "$(readlink -f "$0")") HERE=$(dirname "$(readlink -f "$0")")
+15
View File
@@ -1,3 +1,18 @@
libva-v4l2-request-fourier (1.0.0+r380+g9898331-1) bookworm trixie; urgency=medium
* Bump to 9898331 — LIBVA-2 close. Adds video_fd_daedalus to
any_fd_supports_output_format's probe list in config.c so the
profile enumerator actually sees daedalus_v4l2's OUTPUT formats
(VP9F + AV1F + S264). Before this commit, ffmpeg vaapi against
H.264 on higgs bailed with "No support for codec h264 profile 578"
because RequestQueryConfigProfiles only walked rkvdec/hantro/
rpi-hevc-dec/vpu981 fds and never asked daedalus what it could do.
* Backward-compatible on RK3399/3588 — new slot gated by
HAVE_DAEDALUS_V4L2 *and* video_fd_daedalus >= 0; both false in
those deployments.
-- Markus Fritsche <mfritsche@reauktion.de> Wed, 20 May 2026 19:30:00 +0000
libva-v4l2-request-fourier (1.0.0+r378+gc332d34-2) bookworm trixie; urgency=medium libva-v4l2-request-fourier (1.0.0+r378+gc332d34-2) bookworm trixie; urgency=medium
* Rebuild on a native Debian trixie runner (actrunner-debian-aarch64-bohr) so * Rebuild on a native Debian trixie runner (actrunner-debian-aarch64-bohr) so