ffmpeg-v4l2-request-fourier: preserve sl->mb for inspection callback (0017)
Companion to 0016 (PR #106). Adds a coefficient side buffer in H264Context, populated at the start of ff_h264_hl_decode_mb with a single memcpy from sl->mb BEFORE IDCT-add zeros it. The existing post-pixel-work callback (still in 0016) can now read: - h->mb_inspect_coeffs = pre-IDCT coefficients (this patch) - h->cur_pic.f->data = post-pixel-work pre-deblock reconstruction and derive P = pixels − IDCT(C) for daedalus-decoder's frame-major dispatch in PR-A3+. Memcpy gated on (h->mb_inspect_cb != NULL). Zero cost when no consumer is registered. Side buffer = 16 * 48 int16 = 1536 bytes (matches the 8-bit half of sl->mb's int16_t[16 * 48 * 2] declared size; high-bit-depth uses the upper half — not preserved here since the daedalus-decoder consumer is 8-bit-only). Single-threaded decode assumed at the consumer side (avctx->thread_count = 1). Multi-slice / multi-threaded streams would race on the single side buffer — explicit limitation of the inspection mechanism, future extension would put per-slice buffers in H264SliceContext. Verified: patches 0016 + 0017 apply cleanly and build in sequence against the Kwiboo v4l2-request-n8.1 fork at the pinned commit b57fbbe5. ff_h264_set_mb_inspect_cb symbol exported as before. Wired into arch PKGBUILD + debian build-deb.sh patch sequence. pkgrel bumped 13 → 14. Refs reauktion/daedalus-decoder!14 (PR-A2 callback wiring complete, PR-A3 coefficient extraction is the next consumer).
This commit is contained in:
@@ -24,7 +24,7 @@ _srcname=FFmpeg
|
||||
_version='8.1'
|
||||
_commit='b57fbbe50c9b2656fad86a1a7eeabfd2b2a50935' # v4l2-request-n8.1 tip 2026-04-24
|
||||
pkgver=8.1.r123329.b57fbbe
|
||||
pkgrel=13 # pkgrel=13 — per-MB inspection callback (0016) for daedalus-decoder CLI test harness; observation-only, no behaviour change to existing decode path
|
||||
pkgrel=14 # pkgrel=14 — per-MB coefficient side buffer (0017) extending 0016 for daedalus-decoder CLI IDCT validation; observation-only, no behaviour change to existing decode path
|
||||
epoch=2
|
||||
|
||||
# daedalus-fourier pin. 209a421 = PR #2 merge (Phase 8c — public API
|
||||
@@ -103,8 +103,9 @@ source=("git+https://github.com/Kwiboo/FFmpeg.git#commit=${_commit}"
|
||||
'0013-h264-deblock-chroma-intra-daedalus-fourier.patch'
|
||||
'0014-h264-ctx-qpu-capable.patch'
|
||||
'0015-h264-ctx-revert-to-no-qpu.patch'
|
||||
'0016-h264-mb-inspect-callback.patch')
|
||||
sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP')
|
||||
'0016-h264-mb-inspect-callback.patch'
|
||||
'0017-h264-mb-coeffs-side-buffer.patch')
|
||||
sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP')
|
||||
|
||||
pkgver() {
|
||||
cd "${_srcname}"
|
||||
@@ -131,6 +132,7 @@ prepare() {
|
||||
patch -Np1 -i "${srcdir}/0014-h264-ctx-qpu-capable.patch"
|
||||
patch -Np1 -i "${srcdir}/0015-h264-ctx-revert-to-no-qpu.patch"
|
||||
patch -Np1 -i "${srcdir}/0016-h264-mb-inspect-callback.patch"
|
||||
patch -Np1 -i "${srcdir}/0017-h264-mb-coeffs-side-buffer.patch"
|
||||
}
|
||||
|
||||
build() {
|
||||
|
||||
Reference in New Issue
Block a user