Files
marfrit-packages/arch/libva-v4l2-request-fourier/PKGBUILD
T
marfrit ce2fff1a4f libva-v4l2-request-fourier: bump pin to c454618 (#15 transparent resize)
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.
2026-05-21 13:24:21 +02:00

95 lines
4.4 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Maintainer: Markus Fritsche <fritsche.markus@gmail.com>
#
# libva-v4l2-request-fourier — VA-API backend for V4L2 stateless decoders,
# multiplanar fork. Successor to the predecessor experimental package
# libva-v4l2-request-ohm-gl-fix (tarball + 18-patch stack); this package
# tracks the campaign fork's git history directly, so iteration sweeps
# (DEBUG removal, follow-up bugfixes) land in a clean linear log.
#
# Campaign: ~/src/libva-multiplanar/ (iter8 close 2026-05-06) plus
# ~/src/fresnel-fourier/ which carried the fork to iter38b — multi-device
# probe so a single libva session serves all 5 codecs (rkvdec H.264 +
# HEVC + VP9, hantro MPEG-2 + VP8) plus a bounds-check fix for
# MAX_PROFILES. Pinned below.
# Fork repo: https://git.reauktion.de/marfrit/libva-v4l2-request-fourier
# Bootlin upstream: https://github.com/bootlin/libva-v4l2-request
#
# Build target: fermi LXC actrunner-aarch64-hertz via marfrit-packages
# Gitea Actions (path=arch/libva-v4l2-request-fourier triggers the
# libva-v4l2-request-fourier-aarch64 job — wire up alongside the existing
# ffmpeg-v4l2-request-git job in .gitea/workflows/build.yml).
# Alternative: boltzmann via his subagent + marfrit-publish.
pkgname=libva-v4l2-request-fourier
epoch=1
_upstreampkg=libva-v4l2-request
# 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 (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.r390.c454618
pkgrel=1
pkgdesc="VA-API backend for V4L2 stateless decoders (multiplanar fork — fourier umbrella)"
arch=('aarch64')
url="https://git.reauktion.de/marfrit/libva-v4l2-request-fourier"
license=('LGPL2.1' 'MIT')
depends=('libva' 'libdrm' 'systemd-libs')
makedepends=('meson' 'ninja' 'pkgconf' 'git')
provides=("${_upstreampkg}=${pkgver}" 'libva-driver')
conflicts=("${_upstreampkg}" 'libva-v4l2-request-ohm-gl-fix')
replaces=("${_upstreampkg}" 'libva-v4l2-request-ohm-gl-fix')
source=("git+https://git.reauktion.de/marfrit/libva-v4l2-request-fourier.git#commit=${_commit}")
sha256sums=('SKIP')
pkgver() {
cd "${srcdir}/${_upstreampkg}-fourier"
printf '1.0.0.r%s.%s' \
"$(git rev-list --count HEAD)" \
"$(git rev-parse --short=7 HEAD)"
}
build() {
cd "${srcdir}/${_upstreampkg}-fourier"
# meson_options.txt only exposes 'kernel_headers' — leave it empty to
# use system /usr/include kernel UAPI headers. No per-codec toggles.
#
# b_lto=false: override arch-meson's wrapper default of `-D b_lto=true`,
# which the makepkg.conf OPTIONS=(..., !lto, ...) line does NOT actually
# override (arch-meson hard-codes b_lto=true). The hand-built reproducer
# from issue #17 shows: LTO/ICF kernel-folds per-codec helpers and HEVC's
# multi-control-struct chain (SPS+PPS+DECODE_PARAMS+SLICE_PARAMS) gets a
# wrong helper-instance pulled in at vaEndPicture → segfault. The 4 other
# codecs (single-control-struct) tolerate the folding by accident.
arch-meson build --buildtype=release -Db_lto=false
meson compile -C build
}
package() {
cd "${srcdir}/${_upstreampkg}-fourier"
meson install -C build --destdir "${pkgdir}"
install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
install -Dm644 COPYING.LGPL "${pkgdir}/usr/share/licenses/${pkgname}/COPYING.LGPL"
install -Dm644 COPYING.MIT "${pkgdir}/usr/share/licenses/${pkgname}/COPYING.MIT"
}