b16a3f1a77
Upstream PR #1 landed daemon-side synthesis of H.264 SPS/PPS NAL units from the V4L2 stateless control structs. This bumps the package pin so both the userspace daemon and the kernel module pick up the change in lockstep (wire protocol grew a new DAEDALUS_REQ_FLAG_H264_META bit + struct daedalus_h264_meta — kernel and daemon MUST match). Effect on Pi 5 / CM5 hosts (higgs): ffmpeg -hwaccel vaapi against H.264 sources will actually decode through the daedalus daemon instead of failing with "non-existing PPS 0 referenced". Both arch + debian packages: pkgver 0.1.0.r20.3dd0eb0 (count from git rev-list), pkgrel reset to 1 (new upstream pin). VP9 / AV1 paths unchanged. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
72 lines
2.7 KiB
Bash
72 lines
2.7 KiB
Bash
# Maintainer: Markus Fritsche <fritsche.markus@gmail.com>
|
|
#
|
|
# daedalus-v4l2-dkms — DKMS package for the daedalus_v4l2 out-of-tree
|
|
# kernel module (V4L2 stateless decoder shim for Pi 5 / CM5).
|
|
#
|
|
# Pair to daedalus-v4l2 (userspace daemon). When loaded, the module
|
|
# registers /dev/videoNN (V4L2 m2m) + /dev/mediaNN (media controller) +
|
|
# /dev/daedalus-v4l2 (chardev to the userspace daemon). Userspace
|
|
# clients drive the V4L2 m2m + request API path; the daemon does the
|
|
# actual FFmpeg-backed decode on /dev/daedalus-v4l2.
|
|
#
|
|
# Project: https://git.reauktion.de/reauktion/daedalus-v4l2
|
|
# Sibling userspace package: daedalus-v4l2
|
|
# Sibling consumer: libva-v4l2-request-fourier
|
|
|
|
pkgname=daedalus-v4l2-dkms
|
|
_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=3dd0eb070a75893f78368ce819b9e9ebf08c124d
|
|
|
|
pkgver=0.1.0.r20.3dd0eb0
|
|
pkgrel=1 # reset for new upstream pin (3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synth)
|
|
pkgdesc="V4L2 stateless decoder shim kernel module (DKMS) — Pi 5 / CM5"
|
|
arch=('any')
|
|
url="https://git.reauktion.de/reauktion/daedalus-v4l2"
|
|
license=('GPL-2.0-or-later')
|
|
depends=('dkms')
|
|
makedepends=('git')
|
|
install="${pkgname}.install"
|
|
|
|
source=("git+https://git.reauktion.de/reauktion/daedalus-v4l2.git#commit=${_commit}"
|
|
"dkms.conf"
|
|
"${pkgname}.install")
|
|
sha256sums=('SKIP'
|
|
'SKIP'
|
|
'SKIP')
|
|
|
|
pkgver() {
|
|
cd "${srcdir}/daedalus-v4l2"
|
|
printf '0.1.0.r%s.%s' \
|
|
"$(git rev-list --count HEAD)" \
|
|
"$(git rev-parse --short=7 HEAD)"
|
|
}
|
|
|
|
package() {
|
|
local _src="${pkgdir}/usr/src/${_module}-${pkgver}"
|
|
|
|
install -dm755 "${_src}"
|
|
|
|
# Install the kernel/ subdir and embed the shared proto header in
|
|
# the same tree. The in-tree Makefile uses
|
|
# `ccflags-y += -I$(src)/../include` (assuming the parent
|
|
# daedalus-v4l2 layout); for DKMS we flatten by copying the header
|
|
# into kernel/include/ and patching the Makefile to point there.
|
|
cp -r "${srcdir}/daedalus-v4l2/kernel/." "${_src}/"
|
|
install -Dm644 "${srcdir}/daedalus-v4l2/include/daedalus_v4l2_proto.h" \
|
|
"${_src}/include/daedalus_v4l2_proto.h"
|
|
sed -i 's|-I\$(src)/\.\./include|-I$(src)/include|' "${_src}/Makefile"
|
|
|
|
# dkms.conf at the root of the source tree (DKMS convention).
|
|
# Substitute #MODULE_VERSION# placeholder with the actual pkgver
|
|
# so dkms install/uninstall match what's on disk.
|
|
install -Dm644 "${srcdir}/dkms.conf" "${_src}/dkms.conf"
|
|
sed -i "s/#MODULE_VERSION#/${pkgver}/" "${_src}/dkms.conf"
|
|
|
|
# License
|
|
install -Dm644 "${srcdir}/daedalus-v4l2/kernel/daedalus_v4l2_main.c" \
|
|
"${pkgdir}/usr/share/licenses/${pkgname}/SPDX-HEADER"
|
|
}
|