From 34972ae9c16c939e95e2e33a0cc58bcad5ff3f9a Mon Sep 17 00:00:00 2001 From: claude-noether Date: Thu, 21 May 2026 15:42:03 +0200 Subject: [PATCH] =?UTF-8?q?daedalus-v4l2{,-dkms}:=2079256dc/6ffe92b=20->?= =?UTF-8?q?=205d8b436=20=E2=80=94=20revert=20parking=20design?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lock-step downgrade of both packages to the revert tip of daedalus-v4l2 (PR #10 closed PRs #7 + #8). After 0.1.0+r28+g79256dc-1 / 0.1.0+r30+g6ffe92b-1 landed in production, mpv (--hwdec=vaapi-copy) failed pre-playing with "Unable to dequeue buffer: Resource temporarily unavailable" because the daemon parked CAPTURE buffers waiting for libavcodec's display-order reorder, violating libva's V4L2 stateless 1:1 contract. See daedalus-v4l2#9 for the diagnostic, #10 for the revert PR. DAEDALUS_PROTO_VERSION drops 1 → 0; install both .debs in the same apt transaction. Userspace ABI returns to the f0d4186-equivalent behaviour, plus PR #4 (cosmetic H.264 menu controls). The daedalus-v4l2-dkms #64 multi-kernel postinst behaviour stays in build-deb.sh. Visible regression: H.264 B-frame streams in Firefox return to the "2 1 4 3 6 5" pair-swap visual. Proper fix (concurrent in-flight requests in daemon + display-order reorder moved into libva-v4l2- request-fourier) tracked at daedalus-v4l2#11. Refs: * https://git.reauktion.de/reauktion/daedalus-v4l2/issues/9 * https://git.reauktion.de/reauktion/daedalus-v4l2/pulls/10 (merged) * https://git.reauktion.de/reauktion/daedalus-v4l2/issues/11 --- arch/daedalus-v4l2-dkms/PKGBUILD | 20 ++++++++--------- arch/daedalus-v4l2/PKGBUILD | 19 ++++++++-------- debian/daedalus-v4l2-dkms/build-deb.sh | 6 +++--- debian/daedalus-v4l2-dkms/debian/changelog | 14 ++++++++++++ debian/daedalus-v4l2/build-deb.sh | 20 ++++++++--------- debian/daedalus-v4l2/debian/changelog | 25 ++++++++++++++++++++++ 6 files changed, 72 insertions(+), 32 deletions(-) diff --git a/arch/daedalus-v4l2-dkms/PKGBUILD b/arch/daedalus-v4l2-dkms/PKGBUILD index 75f52969c..487ebbca3 100644 --- a/arch/daedalus-v4l2-dkms/PKGBUILD +++ b/arch/daedalus-v4l2-dkms/PKGBUILD @@ -16,17 +16,17 @@ pkgname=daedalus-v4l2-dkms _module=daedalus_v4l2 -# Kernel module-only bump to 6ffe92b — fixes the panic regression -# introduced by 79256dc's split-completion design (daedalus-v4l2#8): -# claim src/dst from m2m's rdy_queue at device_run time, not at -# buf_done; otherwise a parked dst_buf gets re-picked by the next -# device_run after SRC_CONSUMED's job_finish releases the scheduler. -# PROTO_VERSION stays at 1; daedalus-v4l2 (daemon) need NOT bump in -# lockstep — daemon ABI is unchanged. -_commit=6ffe92bcacccbf228c398a10c21a6818f07c67d2 +# Same pin as arch/daedalus-v4l2 — keep kernel module + daemon +# bit-versioned together so the chardev wire protocol stays in sync. +# 5d8b436 reverts PRs #7 + #8 (parking design that broke libva's +# 1:1 contract — see daedalus-v4l2#9 + #10). Tree is +# content-equivalent to f0d4186 plus PR #4 (cosmetic menu ctrls). +# PROTO_VERSION drops 1 → 0; lock-step install with +# daedalus-v4l2 0.1.0.r33.5d8b436 REQUIRED. +_commit=5d8b4369e58ab947d1c56b1f718293c57c6065b5 -pkgver=0.1.0.r30.6ffe92b -pkgrel=1 # reset for new upstream pin (6ffe92b — claim src/dst at device_run, fixes #8 panic) +pkgver=0.1.0.r33.5d8b436 +pkgrel=1 # reset for new upstream pin (5d8b436 — revert parking design) 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 62546de4e..c1a3346f6 100644 --- a/arch/daedalus-v4l2/PKGBUILD +++ b/arch/daedalus-v4l2/PKGBUILD @@ -16,18 +16,19 @@ pkgname=daedalus-v4l2 _upstreampkg=daedalus-v4l2 -# Pin the daedalus-v4l2 tip. 79256dc = "kernel + daemon: H.264 B-frame -# display reorder fix (closes #6)" — adds the wire-protocol src_pts / -# output_src_pts / RESP_FRAME flags split that lets H.264 streams with -# B-frames preserve display order through libva → kernel → daemon. -# PROTO_VERSION bumps 0 → 1; lock-step userspace + kernel rebuild -# REQUIRED (daedalus-v4l2-dkms PKGBUILD pinned to the same commit). -_commit=79256dc7ef41f83873ca9c23db20f5888858e65d +# Pin the daedalus-v4l2 tip. 5d8b436 = revert of PRs #7 + #8 (the +# parking design that broke libva's 1:1 contract — see +# daedalus-v4l2#9 + #10). Tree is content-equivalent to f0d4186 +# plus PR #4 (DECODE_MODE / START_CODE menu controls; cosmetic +# warning fix). PROTO_VERSION drops 1 → 0 to match — lock-step +# install with daedalus-v4l2-dkms 0.1.0.r33.5d8b436 REQUIRED. +# Proper H.264 reorder fix tracked separately at daedalus-v4l2#11. +_commit=5d8b4369e58ab947d1c56b1f718293c57c6065b5 # 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.r28.79256dc -pkgrel=1 # reset for new upstream pin (79256dc — H.264 B-frame reorder fix) +pkgver=0.1.0.r33.5d8b436 +pkgrel=1 # reset for new upstream pin (5d8b436 — revert parking design) 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 927c29a8a..be98b2da5 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=6ffe92bcacccbf228c398a10c21a6818f07c67d2 -PKGVER=0.1.0+r30+g6ffe92b -PKGREL=1 # reset for new upstream pin (6ffe92b — claim src/dst at device_run, fixes #8 panic); still carries the #64 multi-kernel postinst fix +UPSTREAM_COMMIT=5d8b4369e58ab947d1c56b1f718293c57c6065b5 +PKGVER=0.1.0+r33+g5d8b436 +PKGREL=1 # reset for new upstream pin (5d8b436 — revert parking design); still carries the #64 multi-kernel postinst fix 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 1f745d752..fc8c8fb1c 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+r33+g5d8b436-1) bookworm trixie; urgency=medium + + * Bump to 5d8b436 — reverts daedalus-v4l2 PRs #7 + #8. Kernel + module returns to the pre-#7 buf_done_and_job_finish completion + model: no src/dst lifecycle decoupling, no parked dst_bufs, no + 1:1-contract violation against libva-v4l2-request-fourier + (closes daedalus-v4l2#9 + #10 as won't-fix at this layer; proper + fix tracked at daedalus-v4l2#11). + * Wire-protocol drops 1 → 0; lock-step install with daedalus-v4l2 + 0.1.0+r33+g5d8b436 REQUIRED. + * Carries forward the #64 multi-kernel postinst fix. + + -- Markus Fritsche Thu, 21 May 2026 14:50:00 +0000 + daedalus-v4l2-dkms (0.1.0+r30+g6ffe92b-1) bookworm trixie; urgency=medium * Bump to 6ffe92b — fixes the kernel panic regression introduced diff --git a/debian/daedalus-v4l2/build-deb.sh b/debian/daedalus-v4l2/build-deb.sh index 9d3ae4b0f..78ada2dcd 100755 --- a/debian/daedalus-v4l2/build-deb.sh +++ b/debian/daedalus-v4l2/build-deb.sh @@ -11,16 +11,16 @@ # Upstream repo: https://git.reauktion.de/reauktion/daedalus-v4l2 set -euo pipefail -# Same pin as the Arch PKGBUILD. 79256dc = "kernel + daemon: H.264 -# B-frame display reorder fix (closes #6)" — adds the wire-protocol -# src_pts / output_src_pts / RESP_FRAME flags split that lets H.264 -# streams with B-frames preserve display order through libva → kernel -# → daemon. PROTO_VERSION bumps 0 → 1; lock-step userspace + kernel -# rebuild REQUIRED (daedalus-v4l2-dkms build-deb.sh pinned to the same -# commit). -UPSTREAM_COMMIT=79256dc7ef41f83873ca9c23db20f5888858e65d -PKGVER=0.1.0+r28+g79256dc -PKGREL=1 # reset for new upstream pin (79256dc — H.264 B-frame reorder fix) +# Same pin as the Arch PKGBUILD. 5d8b436 reverts PRs #7 + #8 (the +# parking design that broke libva's 1:1 CAPTURE-buffer contract; see +# daedalus-v4l2#9 + #10). Tree is content-equivalent to f0d4186 +# plus PR #4 (DECODE_MODE / START_CODE menu controls — cosmetic +# warning fix). PROTO_VERSION drops 1 → 0; lock-step install with +# daedalus-v4l2-dkms 0.1.0+r33+g5d8b436 REQUIRED. Proper H.264 +# reorder fix tracked separately at daedalus-v4l2#11. +UPSTREAM_COMMIT=5d8b4369e58ab947d1c56b1f718293c57c6065b5 +PKGVER=0.1.0+r33+g5d8b436 +PKGREL=1 # reset for new upstream pin (5d8b436 — revert parking design) HERE=$(dirname "$(readlink -f "$0")") diff --git a/debian/daedalus-v4l2/debian/changelog b/debian/daedalus-v4l2/debian/changelog index b9bf56d13..c37e636d0 100644 --- a/debian/daedalus-v4l2/debian/changelog +++ b/debian/daedalus-v4l2/debian/changelog @@ -1,3 +1,28 @@ +daedalus-v4l2 (0.1.0+r33+g5d8b436-1) bookworm trixie; urgency=medium + + * Bump to 5d8b436 — reverts daedalus-v4l2 PRs #7 + #8 (the parking + design that broke libva-v4l2-request-fourier's 1:1 CAPTURE + contract; see daedalus-v4l2#9 + #10). After daemon-r28+g79256dc + landed, mpv (--hwdec=vaapi-copy) failed pre-playing with + "Unable to dequeue buffer: Resource temporarily unavailable" / + "Failed to end picture decode" because the daemon parked CAPTURE + buffers waiting for libavcodec to release H.264 B-frames in + display order — violating the V4L2 stateless 1:1 contract. + Firefox tolerated the mess (visible "2 1 4 3" pair-swap); mpv + bailed. + * This bump restores f0d4186-equivalent behaviour, plus PR #4 + (cosmetic H.264 DECODE_MODE / START_CODE menu controls). PR #7 + + PR #8 wire-protocol additions (src_pts / output_src_pts / + RESP_FRAME flags) are reverted — DAEDALUS_PROTO_VERSION drops + back from 1 → 0. Lock-step install with daedalus-v4l2-dkms + 0.1.0+r33+g5d8b436 REQUIRED. + * Visible regression: H.264 B-frame streams in Firefox revert to + the original "2 1 4 3 6 5" pair-swap visual. The proper fix + (concurrent in-flight requests in daemon + display-order reorder + in libva-v4l2-request-fourier) is tracked at daedalus-v4l2#11. + + -- Markus Fritsche Thu, 21 May 2026 14:50:00 +0000 + daedalus-v4l2 (0.1.0+r28+g79256dc-1) bookworm trixie; urgency=medium * Bump to 79256dc — H.264 B-frame display reorder fix (closes -- 2.47.3