From ce2fff1a4fedbbf41d2480e3b55248ccded145ff Mon Sep 17 00:00:00 2001 From: Markus Fritsche Date: Thu, 21 May 2026 13:24:21 +0200 Subject: [PATCH] libva-v4l2-request-fourier: bump pin to c454618 (#15 transparent resize) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps both Arch PKGBUILD and Debian build-deb.sh pins to PR #16 — codec_store_buffer + request_pool_resize transparent OUTPUT-pool grow on a mid-session resolution upshift overrun. Picks up the frame- survival path that supersedes #13's drop-and-recreate fallback. Dual-pin per feedback_marfrit_packages_dual_pin so both Arch and Debian repos see check-already-published.sh report a new version. --- arch/libva-v4l2-request-fourier/PKGBUILD | 33 +++++++++--------- .../libva-v4l2-request-fourier/build-deb.sh | 34 ++++++++++--------- 2 files changed, 35 insertions(+), 32 deletions(-) diff --git a/arch/libva-v4l2-request-fourier/PKGBUILD b/arch/libva-v4l2-request-fourier/PKGBUILD index ab66dcf43..8e626ccd4 100644 --- a/arch/libva-v4l2-request-fourier/PKGBUILD +++ b/arch/libva-v4l2-request-fourier/PKGBUILD @@ -24,28 +24,29 @@ pkgname=libva-v4l2-request-fourier epoch=1 _upstreampkg=libva-v4l2-request -# Pin the fork tip. 2860d75 = PR #14 merge "picture: bounds-check -# codec_store_buffer slice writes against source_size (#13)" — addresses -# marfrit/libva-v4l2-request-fourier#13. Guards the three append sites -# in codec_store_buffer's VASliceDataBufferType branch (H.264 Annex-B -# start code, VP8 uncompressed-header pad, slice payload) against the -# OUTPUT pool slot's fixed sizeimage; returns -# VA_STATUS_ERROR_ALLOCATION_FAILED with a request_log line instead of -# memcpy'ing past the mmap on a resolution upshift mid-stream (SIGSEGV -# in mpv --hwdec=vaapi-copy, heap-corruption hazard in Firefox RDD). -# The root-cause refactor (re-init OUTPUT pool / re-create surfaces on -# resolution change, or grow source_data on demand) is tracked as the -# follow-up backlog item; this PR is the memory-safety floor. +# Pin the fork tip. c454618 = PR #16 merge "picture, request_pool: +# transparent OUTPUT-pool resize on bitstream overrun (#15)" — +# follow-up root-cause fix to #13/#14. On a mid-stream bitstream- +# budget overrun (typical cause: SPS-driven resolution upshift in an +# adaptive-bitrate stream), codec_store_buffer now snapshots the in- +# flight surface's accumulated bytes, releases its OUTPUT pool slot, +# calls request_pool_resize (STREAMOFF → REQBUFS(0) → S_FMT with +# 2×sizeimage hint, capped at 1 GiB, page-aligned → CREATE_BUFS → +# mmap → media_request_alloc → STREAMON), 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 (77f9236) = PR #12 merge — av1_set_controls -# (V4L2_CID_STATELESS_AV1_SEQUENCE for the daedalus daemon track). -_commit=2860d75afe6a8e34df6afb508ff85c822bf9e908 +# Prior pin (2860d75) = PR #14 merge — codec_store_buffer bounds- +# check floor (#13). +_commit=c454618ae11addce2e17b560f4deeacbed067d98 # Project version from meson.build (1.0.0) + commit count + short sha, # matching the ffmpeg-v4l2-request-fourier convention. Recomputed at # build time by pkgver() below; the static value here is a placeholder # so AUR-style consumers see something coherent before src/ exists. -pkgver=1.0.0.r388.2860d75 +pkgver=1.0.0.r390.c454618 pkgrel=1 pkgdesc="VA-API backend for V4L2 stateless decoders (multiplanar fork — fourier umbrella)" arch=('aarch64') diff --git a/debian/libva-v4l2-request-fourier/build-deb.sh b/debian/libva-v4l2-request-fourier/build-deb.sh index 3304739c8..e795d52b5 100755 --- a/debian/libva-v4l2-request-fourier/build-deb.sh +++ b/debian/libva-v4l2-request-fourier/build-deb.sh @@ -10,23 +10,25 @@ # Upstream fork: https://git.reauktion.de/marfrit/libva-v4l2-request-fourier set -euo pipefail -# Same pin as the Arch PKGBUILD. 2860d75 = PR #14 merge "picture: -# bounds-check codec_store_buffer slice writes against source_size -# (#13)" — guards the three append sites in codec_store_buffer's -# VASliceDataBufferType branch (H.264 Annex-B start code, VP8 -# uncompressed-header pad, slice payload) against the OUTPUT pool -# slot's fixed sizeimage; returns VA_STATUS_ERROR_ALLOCATION_FAILED -# with a request_log line instead of memcpy'ing past the mmap on a -# resolution upshift mid-stream. Fixes a SIGSEGV in mpv -# --hwdec=vaapi-copy and a heap-corruption hazard in Firefox RDD. -# The root-cause refactor (re-init OUTPUT pool / re-create surfaces -# on resolution change, or grow source_data on demand) is tracked -# as the follow-up backlog item; this is the memory-safety floor. +# Same pin as the Arch PKGBUILD. c454618 = PR #16 merge "picture, +# request_pool: transparent OUTPUT-pool resize on bitstream overrun +# (#15)" — follow-up root-cause fix to #13/#14. On a mid-stream +# bitstream-budget overrun (typical cause: SPS-driven resolution +# upshift in an adaptive-bitrate stream), codec_store_buffer now +# snapshots the in-flight surface's accumulated bytes, releases its +# OUTPUT pool slot, calls request_pool_resize (STREAMOFF → +# REQBUFS(0) → S_FMT with 2×sizeimage hint, capped at 1 GiB, page- +# aligned → CREATE_BUFS → mmap → media_request_alloc → STREAMON), +# 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 (77f9236) = PR #12 merge — av1_set_controls -# (V4L2_CID_STATELESS_AV1_SEQUENCE for the daedalus daemon track). -UPSTREAM_COMMIT=2860d75afe6a8e34df6afb508ff85c822bf9e908 -PKGVER=1.0.0+r388+g2860d75 +# Prior pin (2860d75) = PR #14 merge — codec_store_buffer bounds- +# check floor (#13). +UPSTREAM_COMMIT=c454618ae11addce2e17b560f4deeacbed067d98 +PKGVER=1.0.0+r390+gc454618 PKGREL=1 HERE=$(dirname "$(readlink -f "$0")")