daedalus-v4l2: 5d8b436 -> 77e14e5 — #12 (LOW_DELAY) + #13 (daedalus-fourier linkage) #72

Merged
marfrit merged 1 commits from claude-noether/marfrit-packages:noether/daedalus-bump-77e14e5-with-fourier into main 2026-05-21 17:15:12 +00:00
Owner

Daemon-only bump. No daedalus-v4l2-dkms change needed — kernel module unchanged. DAEDALUS_PROTO_VERSION stays at 0.

What this picks up

daedalus-v4l2 PR #12AV_CODEC_FLAG_LOW_DELAY half-measure

Daemon sets AV_CODEC_FLAG_LOW_DELAY on the H.264 AVCodecContext before avcodec_open2, so libavcodec emits frames in decode order ~99 % of the time. A handful of stragglers remain at GOP boundaries — when the stream's SPS num_reorder_frames setting overrides the flag — but the visible "2 1 4 3" pair-swap on Firefox YouTube + mpv playback drops to occasional "1 2 2 4" repeats instead. Not the permanent fix; see #11 for the proper substitution plan.

daedalus-v4l2 PR #13 — daedalus-fourier linkage

Daemon now pkg_check_modules-links against the daedalus-fourier kernel library (marfrit/daedalus-fourier) and logs substrate availability at startup:

[2026-05-21 17:59:35.271 INFO] daedalus-fourier: linked, ctx alive (no_qpu mode; has_qpu=0)

No kernels dispatched yet. This is the build-time / link-time foundation for the H.264 daemon-rewrite plan in daedalus-v4l2#11 — substituting daedalus-fourier IDCT 4×4 / IDCT 8×8 / luma deblock primitives for libavcodec's per-MB pixel math, one cycle at a time, measuring CPU saved per substitution.

Build-deb.sh changes

  • New DAEDALUS_FOURIER_COMMIT pin (d87239d, marfrit/daedalus-fourier PR #1).
  • Before invoking the daemon's cmake, fetch + build + cmake --install daedalus-fourier into a per-build temp prefix ($work/fourier-prefix).
  • Daemon's cmake invocation is preceded by PKG_CONFIG_PATH=$FOURIER_PREFIX/lib/pkgconfig so pkg_check_modules(DAEDALUS_FOURIER REQUIRED daedalus-fourier) resolves to it.
  • daedalus-fourier is statically linked into the daemon binary, so the resulting .deb has no new runtime deps.
  • CI runner needs libvulkan-dev + glslang-tools for the daedalus-fourier build (the daedalus-fourier benches already needed those — should already be installed on whichever runner builds these packages).

Arch PKGBUILD

Bumped to the same upstream commit so the version pin stays consistent. Arch packaging for daedalus-fourier itself is a follow-up — until that lands as an AUR-style PKGBUILD, the Arch build of daedalus-v4l2 at this pin expects daedalus-fourier installed by the user (/usr/local or equivalent). Debian-side is end-to-end self-contained via build-deb.sh.

Refs

Daemon-only bump. No `daedalus-v4l2-dkms` change needed — kernel module unchanged. `DAEDALUS_PROTO_VERSION` stays at 0. ## What this picks up ### daedalus-v4l2 PR #12 — `AV_CODEC_FLAG_LOW_DELAY` half-measure Daemon sets `AV_CODEC_FLAG_LOW_DELAY` on the H.264 `AVCodecContext` before `avcodec_open2`, so libavcodec emits frames in decode order ~99 % of the time. A handful of stragglers remain at GOP boundaries — when the stream's SPS `num_reorder_frames` setting overrides the flag — but the visible "2 1 4 3" pair-swap on Firefox YouTube + mpv playback drops to occasional "1 2 2 4" repeats instead. Not the permanent fix; see #11 for the proper substitution plan. ### daedalus-v4l2 PR #13 — daedalus-fourier linkage Daemon now `pkg_check_modules`-links against the daedalus-fourier kernel library (marfrit/daedalus-fourier) and logs substrate availability at startup: ``` [2026-05-21 17:59:35.271 INFO] daedalus-fourier: linked, ctx alive (no_qpu mode; has_qpu=0) ``` No kernels dispatched yet. This is the build-time / link-time foundation for the H.264 daemon-rewrite plan in daedalus-v4l2#11 — substituting daedalus-fourier IDCT 4×4 / IDCT 8×8 / luma deblock primitives for libavcodec's per-MB pixel math, one cycle at a time, measuring CPU saved per substitution. ## Build-deb.sh changes - New `DAEDALUS_FOURIER_COMMIT` pin (`d87239d`, marfrit/daedalus-fourier PR #1). - Before invoking the daemon's `cmake`, fetch + build + `cmake --install` daedalus-fourier into a per-build temp prefix (`$work/fourier-prefix`). - Daemon's `cmake` invocation is preceded by `PKG_CONFIG_PATH=$FOURIER_PREFIX/lib/pkgconfig` so `pkg_check_modules(DAEDALUS_FOURIER REQUIRED daedalus-fourier)` resolves to it. - daedalus-fourier is statically linked into the daemon binary, so the resulting .deb has no new runtime deps. - CI runner needs `libvulkan-dev` + `glslang-tools` for the daedalus-fourier build (the daedalus-fourier benches already needed those — should already be installed on whichever runner builds these packages). ## Arch PKGBUILD Bumped to the same upstream commit so the version pin stays consistent. Arch packaging for daedalus-fourier itself is a follow-up — until that lands as an AUR-style PKGBUILD, the Arch build of daedalus-v4l2 at this pin expects daedalus-fourier installed by the user (`/usr/local` or equivalent). Debian-side is end-to-end self-contained via build-deb.sh. ## Refs - reauktion/daedalus-v4l2 PR #12: https://git.reauktion.de/reauktion/daedalus-v4l2/pulls/12 - reauktion/daedalus-v4l2 PR #13: https://git.reauktion.de/reauktion/daedalus-v4l2/pulls/13 - reauktion/daedalus-v4l2 issue #11 (full plan): https://git.reauktion.de/reauktion/daedalus-v4l2/issues/11 - marfrit/daedalus-fourier PR #1: https://git.reauktion.de/marfrit/daedalus-fourier/pulls/1
marfrit added 1 commit 2026-05-21 16:40:04 +00:00
Daemon-only bump (no daedalus-v4l2-dkms change needed; PROTO_VERSION
stays at 0).

#12 (LOW_DELAY half-measure): daemon sets AV_CODEC_FLAG_LOW_DELAY on
the H.264 AVCodecContext so libavcodec emits frames in decode order
~99% of the time (a few stragglers at GOP boundaries when the
stream's SPS num_reorder_frames overrides the flag).  Visible
improvement vs the 2-1-4-3 pair-swap on Firefox + mpv playback;
not the permanent fix — see daedalus-v4l2#11 for the architectural
plan to substitute daedalus-fourier kernels for libavcodec's
pixel math one cycle at a time.

#13 (daedalus-fourier linkage): daemon now pkg-config-links against
the daedalus-fourier kernel library (marfrit/daedalus-fourier) and
logs substrate availability at startup.  No kernels dispatched yet
— this is the build-time foundation for the substitution work.

build-deb.sh updated to fetch + build + install daedalus-fourier
(pinned at d87239d, marfrit/daedalus-fourier PR #1) into a per-
build temp prefix before invoking the daemon's cmake, exposing it
via PKG_CONFIG_PATH.  Static-linked, so the resulting .deb has no
new runtime deps.  Requires libvulkan-dev + glslang-tools on the
CI runner.

Arch PKGBUILD bumped to the same upstream commit but Arch packaging
for daedalus-fourier itself is a follow-up; until that lands the
Arch build expects daedalus-fourier installed by the user (AUR-style).
Debian-side is end-to-end self-contained via build-deb.sh.

Refs:
  * reauktion/daedalus-v4l2#12
  * reauktion/daedalus-v4l2#13
  * reauktion/daedalus-v4l2#11
  * marfrit/daedalus-fourier#1
marfrit merged commit 41c1e0b6b9 into main 2026-05-21 17:15:12 +00:00
marfrit deleted branch noether/daedalus-bump-77e14e5-with-fourier 2026-05-21 17:15:12 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: marfrit/marfrit-packages#72