forked from marfrit/marfrit-packages
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ce2fff1a4f | |||
| 9301894997 | |||
| f21c1ff80a | |||
| e15b887d8d | |||
| b69db65037 | |||
| adcc824bf7 |
@@ -18,10 +18,12 @@ _module=daedalus_v4l2
|
|||||||
|
|
||||||
# Same pin as arch/daedalus-v4l2 — keep kernel module + daemon
|
# Same pin as arch/daedalus-v4l2 — keep kernel module + daemon
|
||||||
# bit-versioned together so the chardev wire protocol stays in sync.
|
# bit-versioned together so the chardev wire protocol stays in sync.
|
||||||
_commit=f0d41867f60f5bf8dbfcc6cc16404d7d7eb90014
|
# PROTO_VERSION 0 → 1 at this pin (H.264 B-frame reorder fix); must
|
||||||
|
# install both packages atomically.
|
||||||
|
_commit=79256dc7ef41f83873ca9c23db20f5888858e65d
|
||||||
|
|
||||||
pkgver=0.1.0.r24.f0d4186
|
pkgver=0.1.0.r28.79256dc
|
||||||
pkgrel=1 # reset for new upstream pin (3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synth)
|
pkgrel=1 # reset for new upstream pin (79256dc — H.264 B-frame reorder fix)
|
||||||
pkgdesc="V4L2 stateless decoder shim kernel module (DKMS) — Pi 5 / CM5"
|
pkgdesc="V4L2 stateless decoder shim kernel module (DKMS) — Pi 5 / CM5"
|
||||||
arch=('any')
|
arch=('any')
|
||||||
url="https://git.reauktion.de/reauktion/daedalus-v4l2"
|
url="https://git.reauktion.de/reauktion/daedalus-v4l2"
|
||||||
|
|||||||
@@ -16,17 +16,18 @@
|
|||||||
pkgname=daedalus-v4l2
|
pkgname=daedalus-v4l2
|
||||||
_upstreampkg=daedalus-v4l2
|
_upstreampkg=daedalus-v4l2
|
||||||
|
|
||||||
# Pin the daedalus-v4l2 tip. 481279c = "Phase 8.13: byte-exact end-to-
|
# Pin the daedalus-v4l2 tip. 79256dc = "kernel + daemon: H.264 B-frame
|
||||||
# end via libva (consumer target hit)" — first commit where the full
|
# display reorder fix (closes #6)" — adds the wire-protocol src_pts /
|
||||||
# ffmpeg -hwaccel vaapi → libva → /dev/video0 → daemon path lands a
|
# output_src_pts / RESP_FRAME flags split that lets H.264 streams with
|
||||||
# pixel-correct decoded frame back in ffmpeg. Promote to a later pin
|
# B-frames preserve display order through libva → kernel → daemon.
|
||||||
# only after a future phase closes cleanly.
|
# PROTO_VERSION bumps 0 → 1; lock-step userspace + kernel rebuild
|
||||||
_commit=f0d41867f60f5bf8dbfcc6cc16404d7d7eb90014
|
# REQUIRED (daedalus-v4l2-dkms PKGBUILD pinned to the same commit).
|
||||||
|
_commit=79256dc7ef41f83873ca9c23db20f5888858e65d
|
||||||
|
|
||||||
# 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.r24.f0d4186
|
pkgver=0.1.0.r28.79256dc
|
||||||
pkgrel=1 # reset for new upstream pin (3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synth)
|
pkgrel=1 # reset for new upstream pin (79256dc — H.264 B-frame reorder fix)
|
||||||
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"
|
||||||
|
|||||||
@@ -24,29 +24,29 @@ pkgname=libva-v4l2-request-fourier
|
|||||||
epoch=1
|
epoch=1
|
||||||
_upstreampkg=libva-v4l2-request
|
_upstreampkg=libva-v4l2-request
|
||||||
|
|
||||||
# Pin the fork tip. 77f9236 = PR #12 merge "av1: populate
|
# Pin the fork tip. c454618 = PR #16 merge "picture, request_pool:
|
||||||
# V4L2_CID_STATELESS_AV1_SEQUENCE in codec_set_controls (#11 libva side)"
|
# transparent OUTPUT-pool resize on bitstream overrun (#15)" —
|
||||||
# — addresses the libva-side portion of marfrit/libva-v4l2-request-fourier#11.
|
# follow-up root-cause fix to #13/#14. On a mid-stream bitstream-
|
||||||
# Adds src/av1.{c,h} with av1_set_controls that maps VAAPI's
|
# budget overrun (typical cause: SPS-driven resolution upshift in an
|
||||||
# VAPictureParameterBufferAV1.seq_info_fields onto struct
|
# adaptive-bitrate stream), codec_store_buffer now snapshots the in-
|
||||||
# v4l2_ctrl_av1_sequence and queues V4L2_CID_STATELESS_AV1_SEQUENCE via
|
# flight surface's accumulated bytes, releases its OUTPUT pool slot,
|
||||||
# S_EXT_CTRLS. The daedalus_v4l2 daemon track is the consumer that turns
|
# calls request_pool_resize (STREAMOFF → REQBUFS(0) → S_FMT with
|
||||||
# the ctrl into an OBU_SEQUENCE_HEADER and prepends it to the slice
|
# 2×sizeimage hint, capped at 1 GiB, page-aligned → CREATE_BUFS →
|
||||||
# bitstream so libdav1d can parse the (sequence-header-stripped) OUTPUT
|
# mmap → media_request_alloc → STREAMON), re-acquires a slot, re-
|
||||||
# buffer that ffmpeg-vaapi delivers. Until the daemon side lands the ctrl
|
# mirrors the surface's source_{data,size,request_fd}, restores the
|
||||||
# is just sitting in the request unused — no-cost no-op for HW decoders
|
# bytes, and continues. The frame survives instead of being dropped
|
||||||
# (vpu981 parses OBU bytes directly).
|
# back to libavcodec for surface recreation. CAPTURE side untouched
|
||||||
|
# (per-queue V4L2 streaming independence).
|
||||||
#
|
#
|
||||||
# Prior pin (c1bb444) = PR #9 merge — h264_set_controls
|
# Prior pin (2860d75) = PR #14 merge — codec_store_buffer bounds-
|
||||||
# max_num_ref_frames fallback + libva-boundary instrumentation for the
|
# check floor (#13).
|
||||||
# daedalus consumer-strict path (issue #8 libva side).
|
_commit=c454618ae11addce2e17b560f4deeacbed067d98
|
||||||
_commit=77f92364661419f6e5a7bd827c1b845b4e426569
|
|
||||||
|
|
||||||
# Project version from meson.build (1.0.0) + commit count + short sha,
|
# Project version from meson.build (1.0.0) + commit count + short sha,
|
||||||
# matching the ffmpeg-v4l2-request-fourier convention. Recomputed at
|
# matching the ffmpeg-v4l2-request-fourier convention. Recomputed at
|
||||||
# build time by pkgver() below; the static value here is a placeholder
|
# build time by pkgver() below; the static value here is a placeholder
|
||||||
# so AUR-style consumers see something coherent before src/ exists.
|
# so AUR-style consumers see something coherent before src/ exists.
|
||||||
pkgver=1.0.0.r386.77f9236
|
pkgver=1.0.0.r390.c454618
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="VA-API backend for V4L2 stateless decoders (multiplanar fork — fourier umbrella)"
|
pkgdesc="VA-API backend for V4L2 stateless decoders (multiplanar fork — fourier umbrella)"
|
||||||
arch=('aarch64')
|
arch=('aarch64')
|
||||||
|
|||||||
+3
-3
@@ -14,9 +14,9 @@
|
|||||||
# Sibling userspace package: ../daedalus-v4l2/build-deb.sh
|
# Sibling userspace package: ../daedalus-v4l2/build-deb.sh
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
UPSTREAM_COMMIT=f0d41867f60f5bf8dbfcc6cc16404d7d7eb90014
|
UPSTREAM_COMMIT=79256dc7ef41f83873ca9c23db20f5888858e65d
|
||||||
PKGVER=0.1.0+r24+gf0d4186
|
PKGVER=0.1.0+r28+g79256dc
|
||||||
PKGREL=2 # postinst: autoinstall for every installed kernel with headers (#64)
|
PKGREL=1 # reset for new upstream pin (79256dc — H.264 B-frame reorder fix); still carries the #64 multi-kernel postinst fix
|
||||||
MODULE_NAME=daedalus_v4l2
|
MODULE_NAME=daedalus_v4l2
|
||||||
|
|
||||||
HERE=$(dirname "$(readlink -f "$0")")
|
HERE=$(dirname "$(readlink -f "$0")")
|
||||||
|
|||||||
+22
@@ -1,3 +1,25 @@
|
|||||||
|
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
|
daedalus-v4l2-dkms (0.1.0+r24+gf0d4186-2) bookworm trixie; urgency=medium
|
||||||
|
|
||||||
* postinst: autoinstall for every installed kernel with headers, not
|
* postinst: autoinstall for every installed kernel with headers, not
|
||||||
|
|||||||
Vendored
+10
-7
@@ -11,13 +11,16 @@
|
|||||||
# 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. 481279c = "Phase 8.13: byte-exact
|
# Same pin as the Arch PKGBUILD. 79256dc = "kernel + daemon: H.264
|
||||||
# end-to-end via libva (consumer target hit)" — first commit where the
|
# B-frame display reorder fix (closes #6)" — adds the wire-protocol
|
||||||
# full ffmpeg -hwaccel vaapi → libva → /dev/video0 → daemon path lands
|
# src_pts / output_src_pts / RESP_FRAME flags split that lets H.264
|
||||||
# a pixel-correct decoded frame back in ffmpeg.
|
# streams with B-frames preserve display order through libva → kernel
|
||||||
UPSTREAM_COMMIT=f0d41867f60f5bf8dbfcc6cc16404d7d7eb90014
|
# → daemon. PROTO_VERSION bumps 0 → 1; lock-step userspace + kernel
|
||||||
PKGVER=0.1.0+r24+gf0d4186
|
# rebuild REQUIRED (daedalus-v4l2-dkms build-deb.sh pinned to the same
|
||||||
PKGREL=1 # reset for new upstream pin (3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synth)
|
# commit).
|
||||||
|
UPSTREAM_COMMIT=79256dc7ef41f83873ca9c23db20f5888858e65d
|
||||||
|
PKGVER=0.1.0+r28+g79256dc
|
||||||
|
PKGREL=1 # reset for new upstream pin (79256dc — H.264 B-frame reorder fix)
|
||||||
|
|
||||||
HERE=$(dirname "$(readlink -f "$0")")
|
HERE=$(dirname "$(readlink -f "$0")")
|
||||||
|
|
||||||
|
|||||||
+24
@@ -1,3 +1,27 @@
|
|||||||
|
daedalus-v4l2 (0.1.0+r28+g79256dc-1) bookworm trixie; urgency=medium
|
||||||
|
|
||||||
|
* Bump to 79256dc — H.264 B-frame display reorder fix (closes
|
||||||
|
daedalus-v4l2#6 + #4 menu controls). Daemon side: the
|
||||||
|
avcodec_send_packet → receive_frame loop now stamps pkt->pts =
|
||||||
|
req->src_pts so libavcodec's display-ordered frame->pts identifies
|
||||||
|
which OUTPUT bitstream's pixels each drained frame belongs to.
|
||||||
|
chardev_client maintains a (src_pts → cookie) lookup table so the
|
||||||
|
daemon can ship pixels to the cookie of the *originating*
|
||||||
|
bitstream, not the cookie of whatever REQ triggered the
|
||||||
|
receive_frame call. Multiple RESP_FRAME messages per REQ_DECODE
|
||||||
|
are now possible (one for the just-consumed src, one or more for
|
||||||
|
drained pixels).
|
||||||
|
* Wire-protocol bump (DAEDALUS_PROTO_VERSION 0 → 1): REQ_DECODE
|
||||||
|
gains __u64 src_pts; RESP_FRAME gains __u32 flags +
|
||||||
|
__u64 output_src_pts. Daemon + kernel must install atomically
|
||||||
|
(this package + daedalus-v4l2-dkms 0.1.0+r28+g79256dc).
|
||||||
|
* Also subsumes 79256dc's predecessor 7ff2d89 — H.264 DECODE_MODE +
|
||||||
|
START_CODE menu-control registration that retires the
|
||||||
|
"Unable to set control(s) error_idx=2/2" warning libva-v4l2-
|
||||||
|
request emitted on every context init.
|
||||||
|
|
||||||
|
-- Markus Fritsche <mfritsche@reauktion.de> Thu, 21 May 2026 12:00:00 +0000
|
||||||
|
|
||||||
daedalus-v4l2 (0.1.0+r24+gf0d4186-1) bookworm trixie; urgency=medium
|
daedalus-v4l2 (0.1.0+r24+gf0d4186-1) bookworm trixie; urgency=medium
|
||||||
|
|
||||||
* Bump to f0d4186 — kernel per-ctx vb2 lock fix. daedalus_queue_init
|
* Bump to f0d4186 — kernel per-ctx vb2 lock fix. daedalus_queue_init
|
||||||
|
|||||||
+18
-15
@@ -10,22 +10,25 @@
|
|||||||
# Upstream fork: https://git.reauktion.de/marfrit/libva-v4l2-request-fourier
|
# Upstream fork: https://git.reauktion.de/marfrit/libva-v4l2-request-fourier
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
# Same pin as the Arch PKGBUILD. 77f9236 = PR #12 merge "av1:
|
# Same pin as the Arch PKGBUILD. c454618 = PR #16 merge "picture,
|
||||||
# populate V4L2_CID_STATELESS_AV1_SEQUENCE in codec_set_controls
|
# request_pool: transparent OUTPUT-pool resize on bitstream overrun
|
||||||
# (#11 libva side)" — adds src/av1.{c,h} with av1_set_controls that
|
# (#15)" — follow-up root-cause fix to #13/#14. On a mid-stream
|
||||||
# maps VAAPI's VAPictureParameterBufferAV1.seq_info_fields onto
|
# bitstream-budget overrun (typical cause: SPS-driven resolution
|
||||||
# struct v4l2_ctrl_av1_sequence and queues V4L2_CID_STATELESS_AV1_
|
# upshift in an adaptive-bitrate stream), codec_store_buffer now
|
||||||
# SEQUENCE via S_EXT_CTRLS. The daedalus_v4l2 daemon track is the
|
# snapshots the in-flight surface's accumulated bytes, releases its
|
||||||
# consumer that turns the ctrl into an OBU_SEQUENCE_HEADER and
|
# OUTPUT pool slot, calls request_pool_resize (STREAMOFF →
|
||||||
# prepends it to the slice bitstream so libdav1d can parse the
|
# REQBUFS(0) → S_FMT with 2×sizeimage hint, capped at 1 GiB, page-
|
||||||
# (sequence-header-stripped) OUTPUT buffer that ffmpeg-vaapi
|
# aligned → CREATE_BUFS → mmap → media_request_alloc → STREAMON),
|
||||||
# delivers.
|
# re-acquires a slot, re-mirrors the surface's source_{data,size,
|
||||||
|
# request_fd}, restores the bytes, and continues. The frame
|
||||||
|
# survives instead of being dropped back to libavcodec for surface
|
||||||
|
# recreation. CAPTURE side untouched (per-queue V4L2 streaming
|
||||||
|
# independence).
|
||||||
#
|
#
|
||||||
# Prior pin (c1bb444) = PR #9 merge — h264_set_controls
|
# Prior pin (2860d75) = PR #14 merge — codec_store_buffer bounds-
|
||||||
# max_num_ref_frames fallback + libva-boundary instrumentation for
|
# check floor (#13).
|
||||||
# the daedalus consumer-strict path (issue #8 libva side).
|
UPSTREAM_COMMIT=c454618ae11addce2e17b560f4deeacbed067d98
|
||||||
UPSTREAM_COMMIT=77f92364661419f6e5a7bd827c1b845b4e426569
|
PKGVER=1.0.0+r390+gc454618
|
||||||
PKGVER=1.0.0+r386+g77f9236
|
|
||||||
PKGREL=1
|
PKGREL=1
|
||||||
|
|
||||||
HERE=$(dirname "$(readlink -f "$0")")
|
HERE=$(dirname "$(readlink -f "$0")")
|
||||||
|
|||||||
Reference in New Issue
Block a user