Merge pull request 'daedalus-v4l2{,-dkms}: f0d4186 -> 79256dc — H.264 B-frame reorder fix + menu ctrls' (#67) from claude-noether/marfrit-packages:noether/daedalus-bump-79256dc into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 4s
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 / ffmpeg-v4l2-request-debian (push) Successful in 3s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 4s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 4s
build and publish packages / daedalus-v4l2-debian (push) Successful in 13s
build and publish packages / libva-v4l2-request-fourier-debian (push) Successful in 3s
build and publish packages / mpv-fourier-debian (push) Successful in 3s
build and publish packages / daedalus-v4l2-dkms-debian (push) Successful in 11s

Reviewed-on: #67
This commit was merged in pull request #67.
This commit is contained in:
2026-05-21 10:51:14 +00:00
6 changed files with 73 additions and 21 deletions
+5 -3
View File
@@ -18,10 +18,12 @@ _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=f0d41867f60f5bf8dbfcc6cc16404d7d7eb90014
# PROTO_VERSION 0 → 1 at this pin (H.264 B-frame reorder fix); must
# install both packages atomically.
_commit=79256dc7ef41f83873ca9c23db20f5888858e65d
pkgver=0.1.0.r24.f0d4186
pkgrel=1 # reset for new upstream pin (3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synth)
pkgver=0.1.0.r28.79256dc
pkgrel=1 # reset for new upstream pin (79256dc — H.264 B-frame reorder fix)
pkgdesc="V4L2 stateless decoder shim kernel module (DKMS) — Pi 5 / CM5"
arch=('any')
url="https://git.reauktion.de/reauktion/daedalus-v4l2"
+9 -8
View File
@@ -16,17 +16,18 @@
pkgname=daedalus-v4l2
_upstreampkg=daedalus-v4l2
# Pin the daedalus-v4l2 tip. 481279c = "Phase 8.13: byte-exact 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. Promote to a later pin
# only after a future phase closes cleanly.
_commit=f0d41867f60f5bf8dbfcc6cc16404d7d7eb90014
# 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
# 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.r24.f0d4186
pkgrel=1 # reset for new upstream pin (3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synth)
pkgver=0.1.0.r28.79256dc
pkgrel=1 # reset for new upstream pin (79256dc — H.264 B-frame reorder fix)
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"
+3 -3
View File
@@ -14,9 +14,9 @@
# Sibling userspace package: ../daedalus-v4l2/build-deb.sh
set -euo pipefail
UPSTREAM_COMMIT=f0d41867f60f5bf8dbfcc6cc16404d7d7eb90014
PKGVER=0.1.0+r24+gf0d4186
PKGREL=2 # postinst: autoinstall for every installed kernel with headers (#64)
UPSTREAM_COMMIT=79256dc7ef41f83873ca9c23db20f5888858e65d
PKGVER=0.1.0+r28+g79256dc
PKGREL=1 # reset for new upstream pin (79256dc — H.264 B-frame reorder fix); still carries the #64 multi-kernel postinst fix
MODULE_NAME=daedalus_v4l2
HERE=$(dirname "$(readlink -f "$0")")
+22
View File
@@ -1,3 +1,25 @@
daedalus-v4l2-dkms (0.1.0+r28+g79256dc-1) bookworm trixie; urgency=medium
* Bump to 79256dc — H.264 B-frame display reorder fix (closes
daedalus-v4l2#6). libavcodec's H.264 decoder reorders output to
display order before returning from avcodec_receive_frame; the
daemon was binding each REQ_DECODE's pixels to the cookie of the
bitstream that triggered the receive_frame call, not the cookie
of the bitstream that actually produced the picture. For B-frame
sequences this paired cookie N's CAPTURE buffer with cookie N-2's
pixels and silently lost intermediate frames — visible as
"2 1 4 3 6 5" frame pairing in mpv / Firefox on Pi CM5.
* Wire-protocol bump (DAEDALUS_PROTO_VERSION 0 → 1): REQ_DECODE
gains __u64 src_pts; RESP_FRAME gains __u32 flags +
__u64 output_src_pts. Kernel + daemon must install atomically
(this package + daedalus-v4l2 0.1.0+r28+g79256dc).
* Carries forward the #64 multi-kernel postinst fix from -2:
autoinstall for every /lib/modules/*/build that resolves to real
headers, not just $(uname -r).
* Closes #64.
-- Markus Fritsche <mfritsche@reauktion.de> Thu, 21 May 2026 12:00:00 +0000
daedalus-v4l2-dkms (0.1.0+r24+gf0d4186-2) bookworm trixie; urgency=medium
* postinst: autoinstall for every installed kernel with headers, not
+10 -7
View File
@@ -11,13 +11,16 @@
# Upstream repo: https://git.reauktion.de/reauktion/daedalus-v4l2
set -euo pipefail
# Same pin as the Arch PKGBUILD. 481279c = "Phase 8.13: byte-exact
# 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=f0d41867f60f5bf8dbfcc6cc16404d7d7eb90014
PKGVER=0.1.0+r24+gf0d4186
PKGREL=1 # reset for new upstream pin (3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synth)
# 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)
HERE=$(dirname "$(readlink -f "$0")")
+24
View File
@@ -1,3 +1,27 @@
daedalus-v4l2 (0.1.0+r28+g79256dc-1) bookworm trixie; urgency=medium
* Bump to 79256dc — H.264 B-frame display reorder fix (closes
daedalus-v4l2#6 + #4 menu controls). Daemon side: the
avcodec_send_packet → receive_frame loop now stamps pkt->pts =
req->src_pts so libavcodec's display-ordered frame->pts identifies
which OUTPUT bitstream's pixels each drained frame belongs to.
chardev_client maintains a (src_pts → cookie) lookup table so the
daemon can ship pixels to the cookie of the *originating*
bitstream, not the cookie of whatever REQ triggered the
receive_frame call. Multiple RESP_FRAME messages per REQ_DECODE
are now possible (one for the just-consumed src, one or more for
drained pixels).
* Wire-protocol bump (DAEDALUS_PROTO_VERSION 0 → 1): REQ_DECODE
gains __u64 src_pts; RESP_FRAME gains __u32 flags +
__u64 output_src_pts. Daemon + kernel must install atomically
(this package + daedalus-v4l2-dkms 0.1.0+r28+g79256dc).
* Also subsumes 79256dc's predecessor 7ff2d89 — H.264 DECODE_MODE +
START_CODE menu-control registration that retires the
"Unable to set control(s) error_idx=2/2" warning libva-v4l2-
request emitted on every context init.
-- Markus Fritsche <mfritsche@reauktion.de> Thu, 21 May 2026 12:00:00 +0000
daedalus-v4l2 (0.1.0+r24+gf0d4186-1) bookworm trixie; urgency=medium
* Bump to f0d4186 — kernel per-ctx vb2 lock fix. daedalus_queue_init