daedalus-v4l2-dkms (0.1.0+r45+g872eec5-1) bookworm trixie; urgency=medium

  * Bump to 872eec5 — picks up daedalus-v4l2 PR #20 (closes #19).
    Wire-protocol cap DAEDALUS_PROTO_MAX_PAYLOAD raised from 64 KiB
    to 1 MiB in include/daedalus_v4l2_proto.h.  The kernel module
    inherits the larger DAEDALUS_MAX_BITSTREAM via the same #define
    and daedalus_fill_output_fmt now reports OUTPUT_MPLANE
    sizeimage = ~1 MiB instead of 65484.
  * Skips the r33 -> r45 commit range — between 5d8b436 and 872eec5
    only one kernel/include change landed (the PROTO_MAX_PAYLOAD
    bump above).  The intervening daemon-only bumps (r37 / r39 /
    r41 / r43) didn't touch kernel/ or include/ at all.
  * Effective wire cap is min(kernel, daemon) — lock-step install
    WITH daedalus-v4l2 0.1.0+r45+g872eec5 REQUIRED.
  * Allocations (kmemdup / kmalloc on payload, vb2 plane backing)
    are dynamic and sized per-payload at runtime; the bump only
    sets the ceiling.  KMALLOC_MAX_SIZE on aarch64 SLUB is several
    MiB so 1 MiB is well within bounds.

 -- Markus Fritsche <mfritsche@reauktion.de>  Fri, 22 May 2026 21:00:00 +0000

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 <mfritsche@reauktion.de>  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
    by 79256dc's split-completion design (closes daedalus-v4l2#8).
    `device_run` now removes both src + dst from `m2m_ctx`'s
    rdy_queue at pickup time, not at `buf_done` time.  Without
    this, after `SRC_CONSUMED`'s `job_finish` released the m2m
    scheduler, the NEXT `device_run` saw the still-queued parked
    dst_buf and paired it with a fresh src — two inflight entries
    referencing the same vb2_buffer, the later `HAS_PIXELS`
    triggered list_del on an already-detached list_head, smashing
    the rdy_queue → hard reboot on Pi CM5 during `mpv vaapi-copy`
    playback of 720p H.264 (2026-05-21).
  * Wire protocol unchanged — DAEDALUS_PROTO_VERSION stays at 1.
    Daemon (userspace daedalus-v4l2 package) need NOT bump in
    lockstep with this DKMS update; the existing
    daedalus-v4l2 0.1.0+r28+g79256dc is wire-compatible with
    daedalus-v4l2-dkms 0.1.0+r30+g6ffe92b.
  * Carries forward the #64 multi-kernel postinst fix.

 -- Markus Fritsche <mfritsche@reauktion.de>  Thu, 21 May 2026 14:00:00 +0000

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
