forked from marfrit/marfrit-packages
f21c1ff80a
Lock-step bump of both packages to daedalus-v4l2#7 + #4. PROTO_VERSION bumps 0 → 1 at the daemon ↔ kernel chardev wire: REQ_DECODE adds __u64 src_pts (the OUTPUT vb2 timestamp); RESP_FRAME adds __u32 flags (HAS_PIXELS / SRC_CONSUMED) + __u64 output_src_pts (= frame->pts on drain). Both .debs must be installed atomically or the chardev handshake rejects the version mismatch. * daedalus-v4l2: daemon's send_packet → receive_frame loop now stamps pkt->pts = req->src_pts and looks up the cookie for each drained frame via frame->pts. chardev_client emits multiple RESP_FRAME messages per REQ_DECODE when libavcodec's display- order DPB releases an earlier frame on receipt of a later bitstream — fixes the "2 1 4 3 6 5" pair-swap on H.264 streams with B-frames. * daedalus-v4l2-dkms: kernel device_run mirrors src_buf timestamp into REQ_DECODE.src_pts. Completion path splits HAS_PIXELS / SRC_CONSUMED: src is released as soon as send_packet succeeds (so the m2m scheduler moves on), dst stays parked until the matching frame is drained later. TIMESTAMP_COPY's auto src→dst pairing no longer applies once lifecycles decouple — dst is stamped explicitly from inflight->src_pts at HAS_PIXELS time. * daedalus-v4l2-dkms also carries forward the -2 multi-kernel postinst fix (#64) from the prior PKGREL. PKGREL resets to 1 on the new upstream pin. The daedalus-v4l2#4 H.264 DECODE_MODE + START_CODE menu controls (a cosmetic warning fix that PR landed alongside #7) is also subsumed — "Unable to set control(s) error_idx=2/2" no longer fires. Refs: * reauktion/daedalus-v4l2#7 * reauktion/daedalus-v4l2#4 * reauktion/daedalus-v4l2#6
111 lines
5.6 KiB
Plaintext
111 lines
5.6 KiB
Plaintext
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
|
|
just the running one. Previously `dkms autoinstall $NAME/$VERSION`
|
|
built only against `$(uname -r)`, so installing the package on
|
|
kernel A and then rebooting into a separately-installed kernel B
|
|
left /lib/modules/B/updates/dkms/ empty — /dev/daedalus-v4l2 absent,
|
|
daedalus daemon nothing to talk to, browser/VAAPI silently falling
|
|
back to software with no obvious diagnostic. Now we enumerate every
|
|
/lib/modules/*/build that resolves to a real directory and run
|
|
`dkms autoinstall -k <kver>` for each, reporting per-kernel failure
|
|
only when headers are missing. Closes #64.
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Thu, 21 May 2026 09:30:00 +0000
|
|
|
|
daedalus-v4l2-dkms (0.1.0+r24+gf0d4186-1) bookworm trixie; urgency=medium
|
|
|
|
* Bump to f0d4186 — per-ctx vb2 lock fix. daedalus_queue_init now
|
|
uses ctx->vb_mutex instead of ctx->dev->m2m_lock for each
|
|
vb2_queue's lock, unblocking Firefox's multi-process VAAPI
|
|
clients (they were colliding on the device-wide mutex and one
|
|
would EBUSY-fail S_FMT while another was mid-streamon).
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Wed, 20 May 2026 23:00:00 +0000
|
|
|
|
daedalus-v4l2-dkms (0.1.0+r22+g462aa4b-1) bookworm trixie; urgency=medium
|
|
|
|
* Bump to 462aa4b — kernel device_run() now calls
|
|
v4l2_ctrl_request_setup() before reading the H.264 stateless
|
|
control values from the bound media_request, so the values
|
|
daedalus ships to the userspace daemon match what the V4L2
|
|
client (libva-v4l2-request-fourier) actually set. Closes the
|
|
libva→kernel control-binding gap that was causing decoded
|
|
frames to come back as best-effort zero garbage from libavcodec.
|
|
* Wire-ABI lockstep with daedalus-v4l2 0.1.0+r22+g462aa4b.
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Wed, 20 May 2026 22:00:00 +0000
|
|
|
|
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 <mfritsche@reauktion.de> 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
|
|
package (which ships the new systemd unit + modules-load.d
|
|
drop-in). No kernel-module behaviour change in this commit —
|
|
bump is purely to keep DKMS pkgver and userspace pkgver aligned
|
|
so /etc/modules-load.d/daedalus-v4l2.conf has a module to load.
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Wed, 20 May 2026 16:00:00 +0000
|
|
|
|
daedalus-v4l2-dkms (0.1.0+r17+gf0cd29a-1) bookworm trixie; urgency=medium
|
|
|
|
* Bump to f0cd29a — Linux 6.18 compatibility fix. v4l2_fh_add /
|
|
v4l2_fh_del gained a `struct file *filp` second argument at
|
|
v6.18; module source now uses LINUX_VERSION_CODE conditional so
|
|
it builds against 6.12 (Pi 5 stock RPi-2712 kernel) AND 6.18+
|
|
(RPi-2712 / arm64). Verified DKMS rebuild on higgs
|
|
(6.18.29+rpt-rpi-2712) succeeds + /dev/daedalus-v4l2 appears.
|
|
* Recommends widened so apt pulls the right kernel-headers
|
|
metapackage on RPi OS: linux-headers-rpi-2712 first, then
|
|
linux-headers-rpi, then linux-headers-generic, then
|
|
linux-headers.
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Tue, 20 May 2026 10:30:00 +0000
|
|
|
|
daedalus-v4l2-dkms (0.1.0+r16+gf55b2cd-1) bookworm trixie; urgency=medium
|
|
|
|
* Initial Debian DKMS packaging for the daedalus_v4l2 kernel module.
|
|
* Pinned to f55b2cd (Phase 8.13 close): kernel-side framework
|
|
integration (V4L2 m2m, dmabuf-export, media controller, request
|
|
API, NV12 single-plane + NV12M + P010 CAPTURE) that closes the
|
|
libva→/dev/video0→daemon round-trip with byte-exact pixels.
|
|
* Auto-builds via DKMS against the running kernel's headers.
|
|
* Companion userspace package: daedalus-v4l2 (daemon + tools).
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Mon, 18 May 2026 23:00:00 +0000
|