From b16a3f1a77aa1694a06099e26775a77218778a16 Mon Sep 17 00:00:00 2001 From: Markus Fritsche Date: Wed, 20 May 2026 18:53:04 +0200 Subject: [PATCH] daedalus-v4l2{,-dkms}: 481279c -> 3dd0eb0 (DAEMON-PPS close) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upstream PR #1 landed daemon-side synthesis of H.264 SPS/PPS NAL units from the V4L2 stateless control structs. This bumps the package pin so both the userspace daemon and the kernel module pick up the change in lockstep (wire protocol grew a new DAEDALUS_REQ_FLAG_H264_META bit + struct daedalus_h264_meta — kernel and daemon MUST match). Effect on Pi 5 / CM5 hosts (higgs): ffmpeg -hwaccel vaapi against H.264 sources will actually decode through the daedalus daemon instead of failing with "non-existing PPS 0 referenced". Both arch + debian packages: pkgver 0.1.0.r20.3dd0eb0 (count from git rev-list), pkgrel reset to 1 (new upstream pin). VP9 / AV1 paths unchanged. Co-Authored-By: Claude Opus 4.7 --- arch/daedalus-v4l2-dkms/PKGBUILD | 6 +++--- arch/daedalus-v4l2/PKGBUILD | 6 +++--- debian/daedalus-v4l2-dkms/build-deb.sh | 6 +++--- debian/daedalus-v4l2-dkms/debian/changelog | 14 ++++++++++++++ debian/daedalus-v4l2/build-deb.sh | 6 +++--- debian/daedalus-v4l2/debian/changelog | 17 +++++++++++++++++ 6 files changed, 43 insertions(+), 12 deletions(-) diff --git a/arch/daedalus-v4l2-dkms/PKGBUILD b/arch/daedalus-v4l2-dkms/PKGBUILD index 11e5dde30..bb8cc45a7 100644 --- a/arch/daedalus-v4l2-dkms/PKGBUILD +++ b/arch/daedalus-v4l2-dkms/PKGBUILD @@ -18,10 +18,10 @@ _module=daedalus_v4l2 # Same pin as arch/daedalus-v4l2 — keep kernel module + daemon # bit-versioned together so the chardev wire protocol stays in sync. -_commit=481279c9bffd19e32c8f3299897e9b63fc5a24aa +_commit=3dd0eb070a75893f78368ce819b9e9ebf08c124d -pkgver=0.1.0.r18.481279c -pkgrel=1 # reset for new upstream pin (481279c — Phase 8.13 close) +pkgver=0.1.0.r20.3dd0eb0 +pkgrel=1 # reset for new upstream pin (3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synth) pkgdesc="V4L2 stateless decoder shim kernel module (DKMS) — Pi 5 / CM5" arch=('any') url="https://git.reauktion.de/reauktion/daedalus-v4l2" diff --git a/arch/daedalus-v4l2/PKGBUILD b/arch/daedalus-v4l2/PKGBUILD index 008f45577..fdd34a553 100644 --- a/arch/daedalus-v4l2/PKGBUILD +++ b/arch/daedalus-v4l2/PKGBUILD @@ -21,12 +21,12 @@ _upstreampkg=daedalus-v4l2 # ffmpeg -hwaccel vaapi → libva → /dev/video0 → daemon path lands a # pixel-correct decoded frame back in ffmpeg. Promote to a later pin # only after a future phase closes cleanly. -_commit=481279c9bffd19e32c8f3299897e9b63fc5a24aa +_commit=3dd0eb070a75893f78368ce819b9e9ebf08c124d # 0.1.0 (pre-1.0) + commit count + short sha. Bump the .Y on each # Phase 8.x close. pkgver() recomputes at build time. -pkgver=0.1.0.r18.481279c -pkgrel=1 # reset for new upstream pin (481279c — Phase 8.13 close) +pkgver=0.1.0.r20.3dd0eb0 +pkgrel=1 # reset for new upstream pin (3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synth) pkgdesc="Userspace daemon for the daedalus-v4l2 V4L2 stateless decoder shim (VP9/AV1/H.264 on Pi 5 / CM5)" arch=('aarch64') url="https://git.reauktion.de/reauktion/daedalus-v4l2" diff --git a/debian/daedalus-v4l2-dkms/build-deb.sh b/debian/daedalus-v4l2-dkms/build-deb.sh index 0240d2be9..c296f99ab 100755 --- a/debian/daedalus-v4l2-dkms/build-deb.sh +++ b/debian/daedalus-v4l2-dkms/build-deb.sh @@ -14,9 +14,9 @@ # Sibling userspace package: ../daedalus-v4l2/build-deb.sh set -euo pipefail -UPSTREAM_COMMIT=481279c9bffd19e32c8f3299897e9b63fc5a24aa -PKGVER=0.1.0+r18+g481279c -PKGREL=1 # reset for new upstream pin (481279c — Phase 8.13 close) +UPSTREAM_COMMIT=3dd0eb070a75893f78368ce819b9e9ebf08c124d +PKGVER=0.1.0+r20+g3dd0eb0 +PKGREL=1 # reset for new upstream pin (3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synth) MODULE_NAME=daedalus_v4l2 HERE=$(dirname "$(readlink -f "$0")") diff --git a/debian/daedalus-v4l2-dkms/debian/changelog b/debian/daedalus-v4l2-dkms/debian/changelog index 48020aad6..39c3d95c1 100644 --- a/debian/daedalus-v4l2-dkms/debian/changelog +++ b/debian/daedalus-v4l2-dkms/debian/changelog @@ -1,3 +1,17 @@ +daedalus-v4l2-dkms (0.1.0+r20+g3dd0eb0-1) bookworm trixie; urgency=medium + + * Bump to 3dd0eb0 — DAEMON-PPS kernel-side changes. device_run() + now reads the V4L2 H.264 stateless control values from the bound + media_request and ships them to the daemon inside REQ_DECODE + via the new struct daedalus_h264_meta block (gated on + DAEDALUS_REQ_FLAG_H264_META). Required for H.264 decode to + work via the libva-v4l2-request -> daedalus daemon path; daemon + synthesises AnnexB SPS+PPS NAL units from the structs. + * Wire-ABI lockstep with daedalus-v4l2 0.1.0+r20+g3dd0eb0 — install + both packages together. + + -- Markus Fritsche Wed, 20 May 2026 21:00:00 +0000 + daedalus-v4l2-dkms (0.1.0+r18+g481279c-1) bookworm trixie; urgency=medium * Bump to 481279c in lockstep with the userspace daedalus-v4l2 diff --git a/debian/daedalus-v4l2/build-deb.sh b/debian/daedalus-v4l2/build-deb.sh index a5193d014..3049e5bd1 100755 --- a/debian/daedalus-v4l2/build-deb.sh +++ b/debian/daedalus-v4l2/build-deb.sh @@ -15,9 +15,9 @@ set -euo pipefail # end-to-end via libva (consumer target hit)" — first commit where the # full ffmpeg -hwaccel vaapi → libva → /dev/video0 → daemon path lands # a pixel-correct decoded frame back in ffmpeg. -UPSTREAM_COMMIT=481279c9bffd19e32c8f3299897e9b63fc5a24aa -PKGVER=0.1.0+r18+g481279c -PKGREL=1 # reset for new upstream pin (481279c — Phase 8.13 close) +UPSTREAM_COMMIT=3dd0eb070a75893f78368ce819b9e9ebf08c124d +PKGVER=0.1.0+r20+g3dd0eb0 +PKGREL=1 # reset for new upstream pin (3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synth) HERE=$(dirname "$(readlink -f "$0")") diff --git a/debian/daedalus-v4l2/debian/changelog b/debian/daedalus-v4l2/debian/changelog index d67743282..c3e25fdec 100644 --- a/debian/daedalus-v4l2/debian/changelog +++ b/debian/daedalus-v4l2/debian/changelog @@ -1,3 +1,20 @@ +daedalus-v4l2 (0.1.0+r20+g3dd0eb0-1) bookworm trixie; urgency=medium + + * Bump to 3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synthesiser. + Daemon now reconstructs AnnexB SPS+PPS NAL units from the V4L2 + stateless H.264 control structs (forwarded by the kernel via + a new struct daedalus_h264_meta block in REQ_DECODE) and + prepends them to the slice bitstream before feeding libavcodec. + Without this, ffmpeg -hwaccel vaapi on H.264 sources failed + with "non-existing PPS 0 referenced" even after LIBVA-1/-2 + routing correctly delivered the request. + * Wire protocol: new DAEDALUS_REQ_FLAG_H264_META bit + struct + daedalus_h264_meta; daemon and kernel must be installed in + lockstep (this package + daedalus-v4l2-dkms 0.1.0+r20+g3dd0eb0). + * VP9 / AV1 paths unchanged. + + -- Markus Fritsche Wed, 20 May 2026 21:00:00 +0000 + daedalus-v4l2 (0.1.0+r18+g481279c-1) bookworm trixie; urgency=medium * Bump to 481279c. Upstream landed the systemd unit + modules-load.d