243e05ca5e17fdc07e35b4428748e9c96e564b1a
7 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
243e05ca5e |
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> |
||
|
|
a29fe71666 |
build.yml: route 4 fourier-debian jobs to debian-aarch64 (bohr) (#47)
build and publish packages / distcc-avahi-aarch64 (push) Successful in 3s
build and publish packages / mesa-panvk-bifrost-aarch64 (push) Successful in 4s
build and publish packages / lmcp-any (push) Successful in 3s
build and publish packages / lmcp-debian (push) Successful in 3s
build and publish packages / claude-his-any (push) Successful in 3s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 3s
build and publish packages / claude-his-debian (push) Successful in 3s
build and publish packages / ffmpeg-v4l2-request-debian (push) Successful in 3s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 3s
build and publish packages / daedalus-v4l2-debian (push) Successful in 3s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 3s
build and publish packages / libva-v4l2-request-fourier-debian (push) Successful in 3s
build and publish packages / daedalus-v4l2-dkms-debian (push) Successful in 3s
build and publish packages / mpv-fourier-debian (push) Successful in 4s
Closes task #134 work. PR #44 showed the cross-distro ABI hazard for `libva-v4l2-request-fourier-debian`: building on Arch (libva 2.23) produced `__vaDriverInit_1_23`, which trixies libva 2.22 runtime cant bind. Same hazard applies to other fourier-debian jobs that link against debian-native libs. **Moved from runs-on: arch-aarch64 → debian-aarch64:** - ffmpeg-v4l2-request-debian - mpv-fourier-debian - daedalus-v4l2-debian - daedalus-v4l2-dkms-debian **Left alone (arch=all, no native compile against debian libs):** - lmcp-debian - claude-his-debian Depends on PR #46 (label vs name fix) being merged so `debian-aarch64` actually routes to bohr. Reviewed-on: #47 |
||
|
|
6a417fcc9d |
libva-v4l2-request-fourier-debian: route to debian-aarch64-bohr runner (#45)
build and publish packages / distcc-avahi-aarch64 (push) Successful in 3s
build and publish packages / mesa-panvk-bifrost-aarch64 (push) Successful in 3s
build and publish packages / lmcp-any (push) Successful in 3s
build and publish packages / lmcp-debian (push) Successful in 3s
build and publish packages / claude-his-any (push) Successful in 3s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 3s
build and publish packages / claude-his-debian (push) Successful in 4s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 4s
build and publish packages / ffmpeg-v4l2-request-debian (push) Successful in 21m49s
build and publish packages / daedalus-v4l2-debian (push) Successful in 3s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 4s
build and publish packages / daedalus-v4l2-dkms-debian (push) Successful in 3s
build and publish packages / mpv-fourier-debian (push) Successful in 1m59s
build and publish packages / libva-v4l2-request-fourier-debian (push) Has been cancelled
Two follow-ups to PR #44 (which landed the libva-dev ABI pin):
- `051da5e` switch runs-on from arch-aarch64 → debian-aarch64-bohr
- `5feab57` fix runner label: actrunner-debian-aarch64-bohr (label name mismatch in
|
||
|
|
051da5e8dc |
libva-v4l2-request-fourier-debian: switch to debian-aarch64-bohr runner
Per @marfrit on PR #44 review: a native Debian trixie aarch64 runner (debian-aarch64-bohr) is available — use it instead of the sysroot hack from the previous commit. The sysroot approach worked but was a workaround for not having the right runner. Native trixie runner is much cleaner: - libva-dev installs via apt-get directly from trixie's archive (2.22.0-3) — pkg-config returns trixie headers, driver compiles in __vaDriverInit_1_22 naturally. - No need to symlink libva.so.2 -> libva.so or rewrite .pc prefixes. - No bsdtar/ar/dpkg-deb juggling on an Arch runner that doesn't natively have dpkg. Changes from PR v1: - .gitea/workflows/build.yml: libva-v4l2-request-fourier-debian runs-on: debian-aarch64-bohr (was arch-aarch64). Build-deps installed via apt-get instead of pacman -Syu. - build-deb.sh: drop the sysroot download / pkgconfig rewrite / symlink block. Keep the post-build ABI sanity check (nm -D | grep __vaDriverInit_1_22) — same defensive role as before, with an updated error message that points to the expected runner. - debian/.../changelog: -2 entry rewritten to describe the runner move instead of the sysroot. Tested approach on boltzmann (aarch64): meson build against trixie sysroot produces __vaDriverInit_1_22 (proves the source compiles correctly with VA-API 1.22 headers). Native runner build will follow the same path, just without the explicit sysroot setup. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
a1ff6de652 |
libva-v4l2-request-fourier-debian: pin trixie libva-dev for ABI
The libva-v4l2-request-fourier .deb shipped with the wrong VA-API symbol export because the CI runner is Arch (libva 2.23 = VA-API 1.23) while the install target is Debian trixie (libva 2.22 = VA-API 1.22). At compile time, <va/va.h>'s VA_MAJOR/VA_MINOR macros are baked into the driver's __vaDriverInit_<MAJOR>_<MINOR> symbol name. trixie's libva runtime looks up __vaDriverInit_1_22, our driver only exported __vaDriverInit_1_23, so dlsym() returned NULL and libva fell back to its sentinel error "has no function __vaDriverInit_1_0". Result: ffmpeg -hwaccel vaapi fails on startup, vainfo fails the same way, on every Pi 5 / CM5 that installed the package. The driver itself doesn't link libva.so (no NEEDED entry — confirmed via readelf on higgs), so the only thing that matters is the symbol NAME the compiler bakes in. Fix is small: in build-deb.sh, download trixie's libva-dev / libva2 / libva-drm2 .deb from deb.debian.org, extract to a sysroot, rewrite the .pc prefixes, and set PKG_CONFIG_PATH so pkg-config returns trixie headers regardless of what the runner has installed. The link step still resolves -lva against the sysroot's libva.so.2, but the resulting .so has no NEEDED entry for it. Added a hard sanity check at the end of build-deb.sh: fail the build if the produced .so doesn't export __vaDriverInit_1_22. This makes future ABI-skew failures loud at CI time instead of silent install- then-refuse-to-load on the target. Tested on boltzmann (aarch64): sysroot build produces a .so exporting __vaDriverInit_1_22 (verified via nm -D). Source unchanged from c332d34; only the build env differs. pkgver/upstream unchanged. PKGREL bumped 1 -> 2 (rebuild against pinned trixie libva-dev) so apt picks up the new .deb on higgs. This is the LIBVA-2 unblocker — the runtime-libva-bind failure was masking whether the LIBVA-1 per-codec dispatch actually works on higgs. Once -2 lands on packages.reauktion.de, apt upgrade on higgs and the daedalus daemon log + rpi-hevc-dec dispatch can be validated end-to-end. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
3abfdff943 |
libva-v4l2-request-fourier: de27e95 -> c332d34 (LIBVA-1 close)
Bumps both Arch (PKGBUILD) and Debian (build-deb.sh + changelog)
pins to upstream c332d34 — the merged LIBVA-1 PR.
Effect: Pi 5 / CM5 mixed deployment (higgs) now opens BOTH
rpi-hevc-dec and daedalus_v4l2 from one libva session and routes
per-codec — HEVC to rpi-hevc-dec ('p'), VP9 / AV1 / H.264 to the
daedalus daemon (new 'd' kind). Before c332d34, find_codec_device
picked rpi-hevc-dec by known_decoder_drivers[] order and the
daedalus slot stayed -1, so VP9/AV1/H.264 frames failed S_FMT.
Also closes a small fd leak in RequestTerminate (daedalus pair —
caught while reviewing the alt-driver expansion).
Both packages: pkgver bumped 1.0.0.r378.c332d34, pkgrel reset to 1
(new upstream pin). Backward-compatible on RK3399/3588 — new
branches gated by HAVE_DAEDALUS_V4L2 *and* video_fd_daedalus >= 0,
both false in those deployments.
Companion: daedalus-v4l2{,-dkms} bump 481279c landed in PR #39
(systemd unit + auto-enable). 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
routes by codec.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
||
|
|
249e8461bb |
debian/libva-v4l2-request-fourier: new package
Mirror of arch/libva-v4l2-request-fourier into the Debian tree. Same pin (de27e95), same build (meson + ninja), output as arm64 .deb installing the VA-API ICD as /usr/lib/aarch64-linux-gnu/dri/v4l2_request_drv_video.so. Auto-detected by VAAPI consumers (ffmpeg -hwaccel vaapi, mpv --hwdec=vaapi, Firefox VAAPI accel) when LIBVA_DRIVER_NAME=v4l2_request is set. build-deb.sh follows the lmcp pattern: reproducible build with SOURCE_DATE_EPOCH pin; standalone dpkg-deb so it runs on a non-Debian builder without dh/debhelper. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |