forked from marfrit/marfrit-packages
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
This commit is contained in:
+12
-10
@@ -16,19 +16,21 @@
|
|||||||
pkgname=daedalus-v4l2
|
pkgname=daedalus-v4l2
|
||||||
_upstreampkg=daedalus-v4l2
|
_upstreampkg=daedalus-v4l2
|
||||||
|
|
||||||
# Pin the daedalus-v4l2 tip. 5d8b436 = revert of PRs #7 + #8 (the
|
# 77e14e5 = post-revert state plus daedalus-v4l2 PRs #12 (LOW_DELAY
|
||||||
# parking design that broke libva's 1:1 contract — see
|
# half-measure for the H.264 display-reorder visual) and #13 (daemon
|
||||||
# daedalus-v4l2#9 + #10). Tree is content-equivalent to f0d4186
|
# now links daedalus-fourier and logs substrate availability at
|
||||||
# plus PR #4 (DECODE_MODE / START_CODE menu controls; cosmetic
|
# startup). Daemon now needs `daedalus-fourier` at build time —
|
||||||
# warning fix). PROTO_VERSION drops 1 → 0 to match — lock-step
|
# Arch packaging for that sibling library is a follow-up; until it
|
||||||
# install with daedalus-v4l2-dkms 0.1.0.r33.5d8b436 REQUIRED.
|
# lands as an AUR-style PKGBUILD, this Arch build expects
|
||||||
# Proper H.264 reorder fix tracked separately at daedalus-v4l2#11.
|
# daedalus-fourier installed to /usr/local (or equivalent) by the
|
||||||
_commit=5d8b4369e58ab947d1c56b1f718293c57c6065b5
|
# user. See debian/daedalus-v4l2/build-deb.sh for the Debian-side
|
||||||
|
# in-build fetch-and-install of daedalus-fourier.
|
||||||
|
_commit=77e14e5a192f0eef0b41dd1140205e29d13d4d58
|
||||||
|
|
||||||
# 0.1.0 (pre-1.0) + commit count + short sha. Bump the .Y on each
|
# 0.1.0 (pre-1.0) + commit count + short sha. Bump the .Y on each
|
||||||
# Phase 8.x close. pkgver() recomputes at build time.
|
# Phase 8.x close. pkgver() recomputes at build time.
|
||||||
pkgver=0.1.0.r33.5d8b436
|
pkgver=0.1.0.r37.77e14e5
|
||||||
pkgrel=1 # reset for new upstream pin (5d8b436 — revert parking design)
|
pkgrel=1 # reset for new upstream pin (77e14e5 — daedalus-fourier linkage)
|
||||||
pkgdesc="Userspace daemon for the daedalus-v4l2 V4L2 stateless decoder shim (VP9/AV1/H.264 on Pi 5 / CM5)"
|
pkgdesc="Userspace daemon for the daedalus-v4l2 V4L2 stateless decoder shim (VP9/AV1/H.264 on Pi 5 / CM5)"
|
||||||
arch=('aarch64')
|
arch=('aarch64')
|
||||||
url="https://git.reauktion.de/reauktion/daedalus-v4l2"
|
url="https://git.reauktion.de/reauktion/daedalus-v4l2"
|
||||||
|
|||||||
Vendored
+43
-11
@@ -11,16 +11,25 @@
|
|||||||
# Upstream repo: https://git.reauktion.de/reauktion/daedalus-v4l2
|
# Upstream repo: https://git.reauktion.de/reauktion/daedalus-v4l2
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
# Same pin as the Arch PKGBUILD. 5d8b436 reverts PRs #7 + #8 (the
|
# 77e14e5 = post-revert state plus daedalus-v4l2 PRs #12 (LOW_DELAY
|
||||||
# parking design that broke libva's 1:1 CAPTURE-buffer contract; see
|
# half-measure for the H.264 display-reorder visual) and #13 (daemon
|
||||||
# daedalus-v4l2#9 + #10). Tree is content-equivalent to f0d4186
|
# now links daedalus-fourier and logs substrate availability at
|
||||||
# plus PR #4 (DECODE_MODE / START_CODE menu controls — cosmetic
|
# startup). PROTO_VERSION stays at 0; daedalus-v4l2-dkms only needs
|
||||||
# warning fix). PROTO_VERSION drops 1 → 0; lock-step install with
|
# bumping when the kernel module changes (no kmod changes here).
|
||||||
# daedalus-v4l2-dkms 0.1.0+r33+g5d8b436 REQUIRED. Proper H.264
|
#
|
||||||
# reorder fix tracked separately at daedalus-v4l2#11.
|
# New build-dep: daedalus-fourier kernel library. Fetched + built +
|
||||||
UPSTREAM_COMMIT=5d8b4369e58ab947d1c56b1f718293c57c6065b5
|
# installed to a per-build temp prefix below, exposed to the daemon
|
||||||
PKGVER=0.1.0+r33+g5d8b436
|
# cmake via PKG_CONFIG_PATH. Static-linked into the daemon binary,
|
||||||
PKGREL=1 # reset for new upstream pin (5d8b436 — revert parking design)
|
# so the resulting .deb has no runtime dep on daedalus-fourier.
|
||||||
|
UPSTREAM_COMMIT=77e14e5a192f0eef0b41dd1140205e29d13d4d58
|
||||||
|
PKGVER=0.1.0+r37+g77e14e5
|
||||||
|
PKGREL=1 # reset for new upstream pin (77e14e5 — daedalus-fourier linkage)
|
||||||
|
|
||||||
|
# daedalus-fourier pin. d87239d = marfrit/daedalus-fourier PR #1 merge
|
||||||
|
# (install rules + pkg-config, enables this consumer to find_package
|
||||||
|
# + link). Bump in lockstep with the upstream daemon when daedalus-
|
||||||
|
# fourier's API or installed shaders are changed by a new consumer.
|
||||||
|
DAEDALUS_FOURIER_COMMIT=d87239d8172307d9a1b93c95cbed116d175b85cc
|
||||||
|
|
||||||
HERE=$(dirname "$(readlink -f "$0")")
|
HERE=$(dirname "$(readlink -f "$0")")
|
||||||
|
|
||||||
@@ -30,14 +39,37 @@ export SOURCE_DATE_EPOCH=1779231600
|
|||||||
work=$(mktemp -d)
|
work=$(mktemp -d)
|
||||||
trap "rm -rf $work" EXIT
|
trap "rm -rf $work" EXIT
|
||||||
|
|
||||||
|
# --- daedalus-fourier: fetch + build + install to per-build prefix ---
|
||||||
|
#
|
||||||
|
# Static-linked into the daemon, so the temp prefix is only for the
|
||||||
|
# duration of this build script. Requires libvulkan-dev + glslang-tools
|
||||||
|
# on the runner (already needed for the daedalus-fourier benches).
|
||||||
|
FOURIER_PREFIX=$work/fourier-prefix
|
||||||
|
mkdir -p "$FOURIER_PREFIX"
|
||||||
|
|
||||||
|
cd "$work"
|
||||||
|
curl --connect-timeout 10 --max-time 600 --retry 3 --retry-delay 5 -sSLfo daedalus-fourier.tar.gz \
|
||||||
|
"https://git.reauktion.de/marfrit/daedalus-fourier/archive/${DAEDALUS_FOURIER_COMMIT}.tar.gz"
|
||||||
|
tar xzf daedalus-fourier.tar.gz
|
||||||
|
cd daedalus-fourier
|
||||||
|
cmake -B build -G Ninja \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX="$FOURIER_PREFIX"
|
||||||
|
cmake --build build --target daedalus_core
|
||||||
|
cmake --install build
|
||||||
|
|
||||||
|
# --- daedalus-v4l2: fetch + build daemon against installed daedalus-fourier ---
|
||||||
|
|
||||||
cd "$work"
|
cd "$work"
|
||||||
curl --connect-timeout 10 --max-time 600 --retry 3 --retry-delay 5 -sSLfo daedalus-v4l2.tar.gz \
|
curl --connect-timeout 10 --max-time 600 --retry 3 --retry-delay 5 -sSLfo daedalus-v4l2.tar.gz \
|
||||||
"https://git.reauktion.de/reauktion/daedalus-v4l2/archive/${UPSTREAM_COMMIT}.tar.gz"
|
"https://git.reauktion.de/reauktion/daedalus-v4l2/archive/${UPSTREAM_COMMIT}.tar.gz"
|
||||||
tar xzf daedalus-v4l2.tar.gz
|
tar xzf daedalus-v4l2.tar.gz
|
||||||
SRCDIR=daedalus-v4l2
|
SRCDIR=daedalus-v4l2
|
||||||
|
|
||||||
# Build daemon (CMake)
|
# Build daemon (CMake) — point pkg-config at the daedalus-fourier
|
||||||
|
# temp prefix so pkg_check_modules(DAEDALUS_FOURIER …) resolves to it.
|
||||||
cd "$SRCDIR/daemon"
|
cd "$SRCDIR/daemon"
|
||||||
|
PKG_CONFIG_PATH="$FOURIER_PREFIX/lib/pkgconfig" \
|
||||||
cmake -B build -G Ninja \
|
cmake -B build -G Ninja \
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
-DCMAKE_INSTALL_PREFIX=/usr
|
-DCMAKE_INSTALL_PREFIX=/usr
|
||||||
|
|||||||
+31
@@ -1,3 +1,34 @@
|
|||||||
|
daedalus-v4l2 (0.1.0+r37+g77e14e5-1) bookworm trixie; urgency=medium
|
||||||
|
|
||||||
|
* Bump to 77e14e5 — picks up daedalus-v4l2 PRs #12 + #13.
|
||||||
|
* #12 (LOW_DELAY half-measure): the daemon now 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 YouTube + mpv playback; not a permanent
|
||||||
|
fix (see #11 for the architectural plan).
|
||||||
|
* #13 (daedalus-fourier linkage): the 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 / link-time
|
||||||
|
foundation for the H.264 daemon-rewrite plan in #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 now fetches + builds + installs daedalus-fourier
|
||||||
|
(pinned at d87239d, marfrit/daedalus-fourier PR #1) into a
|
||||||
|
per-build temp prefix, then builds the daemon with
|
||||||
|
PKG_CONFIG_PATH pointing at it. daedalus-fourier is
|
||||||
|
statically linked into the daemon binary, so the resulting
|
||||||
|
.deb has no new runtime deps. Requires libvulkan-dev +
|
||||||
|
glslang-tools on the CI runner (the daedalus-fourier benches
|
||||||
|
already needed those).
|
||||||
|
* Wire protocol unchanged — DAEDALUS_PROTO_VERSION stays at 0.
|
||||||
|
No daedalus-v4l2-dkms bump needed.
|
||||||
|
|
||||||
|
-- Markus Fritsche <mfritsche@reauktion.de> Thu, 21 May 2026 16:30:00 +0000
|
||||||
|
|
||||||
daedalus-v4l2 (0.1.0+r33+g5d8b436-1) bookworm trixie; urgency=medium
|
daedalus-v4l2 (0.1.0+r33+g5d8b436-1) bookworm trixie; urgency=medium
|
||||||
|
|
||||||
* Bump to 5d8b436 — reverts daedalus-v4l2 PRs #7 + #8 (the parking
|
* Bump to 5d8b436 — reverts daedalus-v4l2 PRs #7 + #8 (the parking
|
||||||
|
|||||||
Reference in New Issue
Block a user