forked from marfrit/marfrit-packages
Compare commits
3 Commits
9301894997
...
a0be2dcc9f
| Author | SHA1 | Date | |
|---|---|---|---|
| a0be2dcc9f | |||
| eb89f12c3e | |||
| ce2fff1a4f |
@@ -16,14 +16,17 @@
|
|||||||
pkgname=daedalus-v4l2-dkms
|
pkgname=daedalus-v4l2-dkms
|
||||||
_module=daedalus_v4l2
|
_module=daedalus_v4l2
|
||||||
|
|
||||||
# Same pin as arch/daedalus-v4l2 — keep kernel module + daemon
|
# Kernel module-only bump to 6ffe92b — fixes the panic regression
|
||||||
# bit-versioned together so the chardev wire protocol stays in sync.
|
# introduced by 79256dc's split-completion design (daedalus-v4l2#8):
|
||||||
# PROTO_VERSION 0 → 1 at this pin (H.264 B-frame reorder fix); must
|
# claim src/dst from m2m's rdy_queue at device_run time, not at
|
||||||
# install both packages atomically.
|
# buf_done; otherwise a parked dst_buf gets re-picked by the next
|
||||||
_commit=79256dc7ef41f83873ca9c23db20f5888858e65d
|
# device_run after SRC_CONSUMED's job_finish releases the scheduler.
|
||||||
|
# PROTO_VERSION stays at 1; daedalus-v4l2 (daemon) need NOT bump in
|
||||||
|
# lockstep — daemon ABI is unchanged.
|
||||||
|
_commit=6ffe92bcacccbf228c398a10c21a6818f07c67d2
|
||||||
|
|
||||||
pkgver=0.1.0.r28.79256dc
|
pkgver=0.1.0.r30.6ffe92b
|
||||||
pkgrel=1 # reset for new upstream pin (79256dc — H.264 B-frame reorder fix)
|
pkgrel=1 # reset for new upstream pin (6ffe92b — claim src/dst at device_run, fixes #8 panic)
|
||||||
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"
|
||||||
|
|||||||
@@ -24,28 +24,29 @@ pkgname=libva-v4l2-request-fourier
|
|||||||
epoch=1
|
epoch=1
|
||||||
_upstreampkg=libva-v4l2-request
|
_upstreampkg=libva-v4l2-request
|
||||||
|
|
||||||
# Pin the fork tip. 2860d75 = PR #14 merge "picture: bounds-check
|
# Pin the fork tip. c454618 = PR #16 merge "picture, request_pool:
|
||||||
# codec_store_buffer slice writes against source_size (#13)" — addresses
|
# transparent OUTPUT-pool resize on bitstream overrun (#15)" —
|
||||||
# marfrit/libva-v4l2-request-fourier#13. Guards the three append sites
|
# follow-up root-cause fix to #13/#14. On a mid-stream bitstream-
|
||||||
# in codec_store_buffer's VASliceDataBufferType branch (H.264 Annex-B
|
# budget overrun (typical cause: SPS-driven resolution upshift in an
|
||||||
# start code, VP8 uncompressed-header pad, slice payload) against the
|
# adaptive-bitrate stream), codec_store_buffer now snapshots the in-
|
||||||
# OUTPUT pool slot's fixed sizeimage; returns
|
# flight surface's accumulated bytes, releases its OUTPUT pool slot,
|
||||||
# VA_STATUS_ERROR_ALLOCATION_FAILED with a request_log line instead of
|
# calls request_pool_resize (STREAMOFF → REQBUFS(0) → S_FMT with
|
||||||
# memcpy'ing past the mmap on a resolution upshift mid-stream (SIGSEGV
|
# 2×sizeimage hint, capped at 1 GiB, page-aligned → CREATE_BUFS →
|
||||||
# in mpv --hwdec=vaapi-copy, heap-corruption hazard in Firefox RDD).
|
# mmap → media_request_alloc → STREAMON), re-acquires a slot, re-
|
||||||
# The root-cause refactor (re-init OUTPUT pool / re-create surfaces on
|
# mirrors the surface's source_{data,size,request_fd}, restores the
|
||||||
# resolution change, or grow source_data on demand) is tracked as the
|
# bytes, and continues. The frame survives instead of being dropped
|
||||||
# follow-up backlog item; this PR is the memory-safety floor.
|
# back to libavcodec for surface recreation. CAPTURE side untouched
|
||||||
|
# (per-queue V4L2 streaming independence).
|
||||||
#
|
#
|
||||||
# Prior pin (77f9236) = PR #12 merge — av1_set_controls
|
# Prior pin (2860d75) = PR #14 merge — codec_store_buffer bounds-
|
||||||
# (V4L2_CID_STATELESS_AV1_SEQUENCE for the daedalus daemon track).
|
# check floor (#13).
|
||||||
_commit=2860d75afe6a8e34df6afb508ff85c822bf9e908
|
_commit=c454618ae11addce2e17b560f4deeacbed067d98
|
||||||
|
|
||||||
# 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.r388.2860d75
|
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=79256dc7ef41f83873ca9c23db20f5888858e65d
|
UPSTREAM_COMMIT=6ffe92bcacccbf228c398a10c21a6818f07c67d2
|
||||||
PKGVER=0.1.0+r28+g79256dc
|
PKGVER=0.1.0+r30+g6ffe92b
|
||||||
PKGREL=1 # reset for new upstream pin (79256dc — H.264 B-frame reorder fix); still carries the #64 multi-kernel postinst fix
|
PKGREL=1 # reset for new upstream pin (6ffe92b — claim src/dst at device_run, fixes #8 panic); 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+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
|
daedalus-v4l2-dkms (0.1.0+r28+g79256dc-1) bookworm trixie; urgency=medium
|
||||||
|
|
||||||
* Bump to 79256dc — H.264 B-frame display reorder fix (closes
|
* Bump to 79256dc — H.264 B-frame display reorder fix (closes
|
||||||
|
|||||||
+18
-16
@@ -10,23 +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. 2860d75 = PR #14 merge "picture:
|
# Same pin as the Arch PKGBUILD. c454618 = PR #16 merge "picture,
|
||||||
# bounds-check codec_store_buffer slice writes against source_size
|
# request_pool: transparent OUTPUT-pool resize on bitstream overrun
|
||||||
# (#13)" — guards the three append sites in codec_store_buffer's
|
# (#15)" — follow-up root-cause fix to #13/#14. On a mid-stream
|
||||||
# VASliceDataBufferType branch (H.264 Annex-B start code, VP8
|
# bitstream-budget overrun (typical cause: SPS-driven resolution
|
||||||
# uncompressed-header pad, slice payload) against the OUTPUT pool
|
# upshift in an adaptive-bitrate stream), codec_store_buffer now
|
||||||
# slot's fixed sizeimage; returns VA_STATUS_ERROR_ALLOCATION_FAILED
|
# snapshots the in-flight surface's accumulated bytes, releases its
|
||||||
# with a request_log line instead of memcpy'ing past the mmap on a
|
# OUTPUT pool slot, calls request_pool_resize (STREAMOFF →
|
||||||
# resolution upshift mid-stream. Fixes a SIGSEGV in mpv
|
# REQBUFS(0) → S_FMT with 2×sizeimage hint, capped at 1 GiB, page-
|
||||||
# --hwdec=vaapi-copy and a heap-corruption hazard in Firefox RDD.
|
# aligned → CREATE_BUFS → mmap → media_request_alloc → STREAMON),
|
||||||
# The root-cause refactor (re-init OUTPUT pool / re-create surfaces
|
# re-acquires a slot, re-mirrors the surface's source_{data,size,
|
||||||
# on resolution change, or grow source_data on demand) is tracked
|
# request_fd}, restores the bytes, and continues. The frame
|
||||||
# as the follow-up backlog item; this is the memory-safety floor.
|
# survives instead of being dropped back to libavcodec for surface
|
||||||
|
# recreation. CAPTURE side untouched (per-queue V4L2 streaming
|
||||||
|
# independence).
|
||||||
#
|
#
|
||||||
# Prior pin (77f9236) = PR #12 merge — av1_set_controls
|
# Prior pin (2860d75) = PR #14 merge — codec_store_buffer bounds-
|
||||||
# (V4L2_CID_STATELESS_AV1_SEQUENCE for the daedalus daemon track).
|
# check floor (#13).
|
||||||
UPSTREAM_COMMIT=2860d75afe6a8e34df6afb508ff85c822bf9e908
|
UPSTREAM_COMMIT=c454618ae11addce2e17b560f4deeacbed067d98
|
||||||
PKGVER=1.0.0+r388+g2860d75
|
PKGVER=1.0.0+r390+gc454618
|
||||||
PKGREL=1
|
PKGREL=1
|
||||||
|
|
||||||
HERE=$(dirname "$(readlink -f "$0")")
|
HERE=$(dirname "$(readlink -f "$0")")
|
||||||
|
|||||||
Reference in New Issue
Block a user