forked from marfrit/marfrit-packages
Compare commits
11 Commits
eab66cfab8
...
7213b23861
| Author | SHA1 | Date | |
|---|---|---|---|
| 7213b23861 | |||
| 2cd3acd680 | |||
| 22ac3c9845 | |||
| 3275d06728 | |||
| 33b91cf7dc | |||
| a640633ea7 | |||
| 5f21a71770 | |||
| de3c2c6744 | |||
| e7e79e5a76 | |||
| 130a259c69 | |||
| 9580f33cb6 |
@@ -18,9 +18,9 @@ _module=daedalus_v4l2
|
||||
|
||||
# Same pin as arch/daedalus-v4l2 — keep kernel module + daemon
|
||||
# bit-versioned together so the chardev wire protocol stays in sync.
|
||||
_commit=462aa4b4804972189d2f1b1ab5782f1ca1e8c423
|
||||
_commit=f0d41867f60f5bf8dbfcc6cc16404d7d7eb90014
|
||||
|
||||
pkgver=0.1.0.r22.462aa4b
|
||||
pkgver=0.1.0.r24.f0d4186
|
||||
pkgrel=1 # reset for new upstream pin (3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synth)
|
||||
pkgdesc="V4L2 stateless decoder shim kernel module (DKMS) — Pi 5 / CM5"
|
||||
arch=('any')
|
||||
|
||||
@@ -21,11 +21,11 @@ _upstreampkg=daedalus-v4l2
|
||||
# ffmpeg -hwaccel vaapi → libva → /dev/video0 → daemon path lands a
|
||||
# pixel-correct decoded frame back in ffmpeg. Promote to a later pin
|
||||
# only after a future phase closes cleanly.
|
||||
_commit=462aa4b4804972189d2f1b1ab5782f1ca1e8c423
|
||||
_commit=f0d41867f60f5bf8dbfcc6cc16404d7d7eb90014
|
||||
|
||||
# 0.1.0 (pre-1.0) + commit count + short sha. Bump the .Y on each
|
||||
# Phase 8.x close. pkgver() recomputes at build time.
|
||||
pkgver=0.1.0.r22.462aa4b
|
||||
pkgver=0.1.0.r24.f0d4186
|
||||
pkgrel=1 # reset for new upstream pin (3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synth)
|
||||
pkgdesc="Userspace daemon for the daedalus-v4l2 V4L2 stateless decoder shim (VP9/AV1/H.264 on Pi 5 / CM5)"
|
||||
arch=('aarch64')
|
||||
|
||||
@@ -18,27 +18,30 @@ This patch adds a sibling init path, `InitV4L2RequestDecoder`, that:
|
||||
* looks up the codec via two complementary mechanisms libavcodec
|
||||
uses for v4l2_request:
|
||||
- **named codec** (`h264_v4l2request`, `vp8_v4l2request`, etc.):
|
||||
the legacy AVCodec-per-hwaccel registration. ALARM, Debian,
|
||||
and most distros building with --enable-v4l2-request expose
|
||||
this (avcodec_find_decoder_by_name lookup).
|
||||
- **generic codec + AV_HWDEVICE_TYPE_DRM** in `hw_configs`:
|
||||
the modern hwaccel registration on some upstream-only ffmpeg
|
||||
builds.
|
||||
the legacy AVCodec-per-hwaccel registration.
|
||||
- **generic codec + hw_configs walk**: the modern hwaccel
|
||||
registration. Accepts EITHER AV_HWDEVICE_TYPE_DRM (legacy
|
||||
ffmpeg-v4l2-request-fork output prior to FFmpeg 7.1) OR
|
||||
AV_HWDEVICE_TYPE_V4L2REQUEST (FFmpeg 7.1+ dedicated enum,
|
||||
value 13 on Kwiboo's no-AMF tree, 14 on upstream-AMF tree).
|
||||
Mozilla's bundled libavutil headers may not have the V4L2REQUEST
|
||||
enumerator, so the test is on the integer value via `(int)cast`.
|
||||
Probes named-codec first (explicit, portable) and falls back to
|
||||
walking the generic codec's `hw_configs` for the DRM device type;
|
||||
* creates an `AV_HWDEVICE_TYPE_DRM` hwdevice context bound to
|
||||
`/dev/dri/renderD128` via the new `av_hwdevice_ctx_create` wrapper
|
||||
(patch 2/4) and attaches it to the codec context;
|
||||
walking the generic codec's `hw_configs` for either device type;
|
||||
* creates an hwdevice context bound to `/dev/dri/renderD128`. Uses
|
||||
integer 13 (V4L2REQUEST as defined by Kwiboo's v4l2-request-n7.1.3
|
||||
tree, what our libavcodec61-fourier emits) cast to enum
|
||||
AVHWDeviceType for the av_hwdevice_ctx_create call;
|
||||
* reuses the existing `ChooseV4L2PixelFormat` get-format callback
|
||||
(already returns `AV_PIX_FMT_DRM_PRIME`) and the existing
|
||||
`apply_cropping = 0` constraint.
|
||||
|
||||
`InitV4L2RequestDecoder` is invoked **before** `InitV4L2Decoder` in
|
||||
`InitHWDecoderIfAllowed`. On Rockchip mainline it succeeds via either
|
||||
mechanism (ALARM uses the named codec). On Pi4 / Mediatek /
|
||||
vendor-MPP-stateful boards neither mechanism is registered for the
|
||||
codec, the function bails out, and the existing stateful
|
||||
`InitV4L2Decoder` runs as before. No regression of stateful boards.
|
||||
mechanism. On Pi4 / Mediatek / vendor-MPP-stateful boards neither
|
||||
mechanism is registered for the codec, the function bails out, and the
|
||||
existing stateful `InitV4L2Decoder` runs as before. No regression of
|
||||
stateful boards.
|
||||
|
||||
`mDRMDeviceContext` is unconditionally `av_buffer_unref`'d in
|
||||
`ProcessShutdown` (no-op when null). Gated behind
|
||||
@@ -46,9 +49,8 @@ codec, the function bails out, and the existing stateful
|
||||
|
||||
Bug 1969297.
|
||||
|
||||
diff --git a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h
|
||||
--- a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h 2026-03-18 19:22:14.000000000 +0000
|
||||
+++ b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h 2026-04-27 20:43:39.347992674 +0000
|
||||
--- a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h 2026-05-21 04:57:59.570946601 +0000
|
||||
+++ b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h 2026-05-21 04:57:59.876488776 +0000
|
||||
@@ -225,7 +225,12 @@
|
||||
bool IsLinuxHDR() const;
|
||||
MediaResult InitVAAPIDecoder();
|
||||
@@ -73,9 +75,8 @@ diff --git a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h b/dom/media/platfor
|
||||
// If video overlay is used we want to upload SW decoded frames to
|
||||
// DMABuf and present it as a external texture to rendering pipeline.
|
||||
bool mUploadSWDecodeToDMABuf = false;
|
||||
diff --git a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
|
||||
--- a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp 2026-04-27 16:09:10.000000000 +0200
|
||||
+++ b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp 2026-04-29 00:10:00.098884335 +0200
|
||||
--- a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp 2026-05-21 04:57:59.566685221 +0000
|
||||
+++ b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp 2026-05-21 04:58:00.136004159 +0000
|
||||
@@ -403,6 +403,129 @@
|
||||
return NS_OK;
|
||||
}
|
||||
@@ -90,7 +91,7 @@ diff --git a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp b/dom/media/platf
|
||||
+ }
|
||||
+ const char* drmDevice = "/dev/dri/renderD128";
|
||||
+ if (mLib->av_hwdevice_ctx_create(&mDRMDeviceContext,
|
||||
+ AV_HWDEVICE_TYPE_DRM, drmDevice,
|
||||
+ (enum AVHWDeviceType)13, drmDevice,
|
||||
+ nullptr, 0) < 0) {
|
||||
+ FFMPEG_LOG(" av_hwdevice_ctx_create(DRM, %s) failed", drmDevice);
|
||||
+ return false;
|
||||
@@ -143,7 +144,7 @@ diff --git a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp b/dom/media/platf
|
||||
+ for (int i = 0;; i++) {
|
||||
+ const AVCodecHWConfig* cfg = mLib->avcodec_get_hw_config(generic, i);
|
||||
+ if (!cfg) break;
|
||||
+ if (cfg->device_type == AV_HWDEVICE_TYPE_DRM) {
|
||||
+ if (cfg->device_type == AV_HWDEVICE_TYPE_DRM || (int)cfg->device_type == 13 || (int)cfg->device_type == 14) {
|
||||
+ codec = generic;
|
||||
+ FFMPEG_LOG(" using generic codec %s with DRM hwaccel", codec->name);
|
||||
+ break;
|
||||
|
||||
@@ -24,29 +24,29 @@ pkgname=libva-v4l2-request-fourier
|
||||
epoch=1
|
||||
_upstreampkg=libva-v4l2-request
|
||||
|
||||
# Pin the fork tip. c1bb444 = PR #9 merge "h264: max_num_ref_frames
|
||||
# fallback + libva-boundary instrumentation (#8)" — addresses the
|
||||
# libva-side portion of marfrit/libva-v4l2-request-fourier#8: the
|
||||
# daedalus_v4l2-via-libavcodec strict consumer rejected frames whose
|
||||
# sps.max_num_ref_frames was 0 (older ffmpeg-vaapi paths leave the
|
||||
# field unset and HW decoders tolerated it). Adds a per-profile spec
|
||||
# minimum fallback (counts valid DPB entries first; 1 for baseline /
|
||||
# 4 for main+high if even that is 0) and a one-line request_log at
|
||||
# h264_set_controls entry dumping raw VAAPI bitfields (seq_fields,
|
||||
# pic_fields, num_ref_frames, bit_depth_*) for disambiguating where
|
||||
# the still-open PPS-flag-zero portion of issue #8 originates.
|
||||
# Pin the fork tip. 77f9236 = PR #12 merge "av1: populate
|
||||
# V4L2_CID_STATELESS_AV1_SEQUENCE in codec_set_controls (#11 libva side)"
|
||||
# — addresses the libva-side portion of marfrit/libva-v4l2-request-fourier#11.
|
||||
# Adds src/av1.{c,h} with av1_set_controls that maps VAAPI's
|
||||
# VAPictureParameterBufferAV1.seq_info_fields onto struct
|
||||
# v4l2_ctrl_av1_sequence and queues V4L2_CID_STATELESS_AV1_SEQUENCE via
|
||||
# S_EXT_CTRLS. The daedalus_v4l2 daemon track is the consumer that turns
|
||||
# the ctrl into an OBU_SEQUENCE_HEADER and prepends it to the slice
|
||||
# bitstream so libdav1d can parse the (sequence-header-stripped) OUTPUT
|
||||
# buffer that ffmpeg-vaapi delivers. Until the daemon side lands the ctrl
|
||||
# is just sitting in the request unused — no-cost no-op for HW decoders
|
||||
# (vpu981 parses OBU bytes directly).
|
||||
#
|
||||
# Prior pin (9898331) was the LIBVA-2 close — config-side video_fd_daedalus
|
||||
# added to the profile enumeration probe array. c332d34 (LIBVA-1) added
|
||||
# the per-codec dispatch. Earlier de27e95 (Phase 8.13 diagnostic),
|
||||
# 7ac934e (iter38b multi-device probe + MAX_PROFILES bounds-check fix).
|
||||
_commit=c1bb444d0731ca7ca831c7e01ec4b52ed736ca8e
|
||||
# Prior pin (c1bb444) = PR #9 merge — h264_set_controls
|
||||
# max_num_ref_frames fallback + libva-boundary instrumentation for the
|
||||
# daedalus consumer-strict path (issue #8 libva side).
|
||||
_commit=77f92364661419f6e5a7bd827c1b845b4e426569
|
||||
|
||||
# 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.r382.c1bb444
|
||||
pkgver=1.0.0.r386.77f9236
|
||||
pkgrel=1
|
||||
pkgdesc="VA-API backend for V4L2 stateless decoders (multiplanar fork — fourier umbrella)"
|
||||
arch=('aarch64')
|
||||
|
||||
+49
-23
@@ -14,9 +14,9 @@
|
||||
# Sibling userspace package: ../daedalus-v4l2/build-deb.sh
|
||||
set -euo pipefail
|
||||
|
||||
UPSTREAM_COMMIT=462aa4b4804972189d2f1b1ab5782f1ca1e8c423
|
||||
PKGVER=0.1.0+r22+g462aa4b
|
||||
PKGREL=1 # reset for new upstream pin (3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synth)
|
||||
UPSTREAM_COMMIT=f0d41867f60f5bf8dbfcc6cc16404d7d7eb90014
|
||||
PKGVER=0.1.0+r24+gf0d4186
|
||||
PKGREL=2 # postinst: autoinstall for every installed kernel with headers (#64)
|
||||
MODULE_NAME=daedalus_v4l2
|
||||
|
||||
HERE=$(dirname "$(readlink -f "$0")")
|
||||
@@ -78,7 +78,6 @@ set -e
|
||||
|
||||
NAME=${MODULE_NAME}
|
||||
VERSION=${PKGVER}
|
||||
KERNELVER=\$(uname -r)
|
||||
|
||||
# Yellow + bold ANSI for the warning so it stands out in apt's
|
||||
# stream of "Setting up" lines. Disable colour on non-TTY.
|
||||
@@ -101,29 +100,56 @@ if [ "\$1" = "configure" ]; then
|
||||
|
||||
dkms add "\$NAME/\$VERSION" 2>/dev/null || true
|
||||
|
||||
# Don't let autoinstall failure mask the actual problem behind '|| true'.
|
||||
# Run it, capture the result, then verify post-condition.
|
||||
autoinstall_rc=0
|
||||
dkms autoinstall "\$NAME/\$VERSION" || autoinstall_rc=\$?
|
||||
# Enumerate every kernel whose headers are actually present
|
||||
# (/lib/modules/<kver>/build resolves to a directory). We iterate
|
||||
# all of them — not just \$(uname -r) — so that installing this
|
||||
# package after a kernel update covers the newly-installed kernel
|
||||
# too, and so that a later kernel-headers install for a previously
|
||||
# uncovered version gets picked up on dpkg-reconfigure. Without
|
||||
# this, autoinstall (which targets only the running kernel) leaves
|
||||
# /dev/daedalus-v4l2 absent after a kernel switch + reboot
|
||||
# (marfrit/marfrit-packages#64).
|
||||
kvers=''
|
||||
for d in /lib/modules/*/build; do
|
||||
[ -d "\$d" ] || continue
|
||||
k=\$(basename "\$(dirname "\$d")")
|
||||
kvers="\$kvers \$k"
|
||||
done
|
||||
|
||||
# Verify the module actually built + installed for the running kernel.
|
||||
status=\$(dkms status -m "\$NAME" -v "\$VERSION" -k "\$KERNELVER" 2>/dev/null || true)
|
||||
if ! printf '%s\\n' "\$status" | grep -q -E 'installed|loaded'; then
|
||||
if [ -z "\$kvers" ]; then
|
||||
warn ""
|
||||
warn "DKMS build did NOT land for kernel \$KERNELVER."
|
||||
warn " dkms status -m \$NAME -v \$VERSION -k \$KERNELVER:"
|
||||
warn " \$(printf '%s' "\$status" | head -1)"
|
||||
warn ""
|
||||
warn "Most likely cause: kernel headers package is missing."
|
||||
warn " Raspberry Pi OS / Pi 5: apt install linux-headers-rpi-2712"
|
||||
warn " Debian generic: apt install linux-headers-\$KERNELVER"
|
||||
warn ""
|
||||
warn "After installing headers, finish the install with:"
|
||||
warn "No kernels with headers found under /lib/modules/*/build."
|
||||
warn "Install kernel headers (e.g. linux-headers-rpi-2712 on Pi OS)"
|
||||
warn "then finish with:"
|
||||
warn " sudo dkms autoinstall \$NAME/\$VERSION"
|
||||
warn " sudo modprobe daedalus_v4l2"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
failed=''
|
||||
for k in \$kvers; do
|
||||
dkms autoinstall -k "\$k" "\$NAME/\$VERSION" >/dev/null 2>&1 || true
|
||||
s=\$(dkms status -m "\$NAME" -v "\$VERSION" -k "\$k" 2>/dev/null || true)
|
||||
if ! printf '%s\\n' "\$s" | grep -q -E 'installed|loaded'; then
|
||||
failed="\$failed \$k"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "\$failed" ]; then
|
||||
warn ""
|
||||
warn "Until then daedalus_v4l2 will NOT be loadable and the"
|
||||
warn "userspace daedalus-v4l2 daemon will have nothing to talk to."
|
||||
warn "DKMS build did NOT land for kernel(s):\$failed"
|
||||
warn ""
|
||||
warn "Most likely cause: kernel headers missing for those versions."
|
||||
warn " Raspberry Pi OS / Pi 5: apt install linux-headers-rpi-2712"
|
||||
warn " Debian generic: apt install linux-headers-<version>"
|
||||
warn ""
|
||||
warn "After installing headers, finish with:"
|
||||
for k in \$failed; do
|
||||
warn " sudo dkms autoinstall -k \$k \$NAME/\$VERSION"
|
||||
done
|
||||
warn " sudo modprobe daedalus_v4l2 (after booting that kernel)"
|
||||
warn ""
|
||||
warn "Until then daedalus_v4l2 will NOT be loadable on those kernels"
|
||||
warn "and the userspace daedalus-v4l2 daemon will have nothing to talk to."
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
+25
@@ -1,3 +1,28 @@
|
||||
daedalus-v4l2-dkms (0.1.0+r24+gf0d4186-2) bookworm trixie; urgency=medium
|
||||
|
||||
* postinst: autoinstall for every installed kernel with headers, not
|
||||
just the running one. Previously `dkms autoinstall $NAME/$VERSION`
|
||||
built only against `$(uname -r)`, so installing the package on
|
||||
kernel A and then rebooting into a separately-installed kernel B
|
||||
left /lib/modules/B/updates/dkms/ empty — /dev/daedalus-v4l2 absent,
|
||||
daedalus daemon nothing to talk to, browser/VAAPI silently falling
|
||||
back to software with no obvious diagnostic. Now we enumerate every
|
||||
/lib/modules/*/build that resolves to a real directory and run
|
||||
`dkms autoinstall -k <kver>` for each, reporting per-kernel failure
|
||||
only when headers are missing. Closes #64.
|
||||
|
||||
-- Markus Fritsche <mfritsche@reauktion.de> Thu, 21 May 2026 09:30:00 +0000
|
||||
|
||||
daedalus-v4l2-dkms (0.1.0+r24+gf0d4186-1) bookworm trixie; urgency=medium
|
||||
|
||||
* Bump to f0d4186 — per-ctx vb2 lock fix. daedalus_queue_init now
|
||||
uses ctx->vb_mutex instead of ctx->dev->m2m_lock for each
|
||||
vb2_queue's lock, unblocking Firefox's multi-process VAAPI
|
||||
clients (they were colliding on the device-wide mutex and one
|
||||
would EBUSY-fail S_FMT while another was mid-streamon).
|
||||
|
||||
-- Markus Fritsche <mfritsche@reauktion.de> Wed, 20 May 2026 23:00:00 +0000
|
||||
|
||||
daedalus-v4l2-dkms (0.1.0+r22+g462aa4b-1) bookworm trixie; urgency=medium
|
||||
|
||||
* Bump to 462aa4b — kernel device_run() now calls
|
||||
|
||||
Vendored
+2
-2
@@ -15,8 +15,8 @@ set -euo pipefail
|
||||
# end-to-end via libva (consumer target hit)" — first commit where the
|
||||
# full ffmpeg -hwaccel vaapi → libva → /dev/video0 → daemon path lands
|
||||
# a pixel-correct decoded frame back in ffmpeg.
|
||||
UPSTREAM_COMMIT=462aa4b4804972189d2f1b1ab5782f1ca1e8c423
|
||||
PKGVER=0.1.0+r22+g462aa4b
|
||||
UPSTREAM_COMMIT=f0d41867f60f5bf8dbfcc6cc16404d7d7eb90014
|
||||
PKGVER=0.1.0+r24+gf0d4186
|
||||
PKGREL=1 # reset for new upstream pin (3dd0eb0 — DAEMON-PPS H.264 SPS/PPS NAL synth)
|
||||
|
||||
HERE=$(dirname "$(readlink -f "$0")")
|
||||
|
||||
+19
@@ -1,3 +1,22 @@
|
||||
daedalus-v4l2 (0.1.0+r24+gf0d4186-1) bookworm trixie; urgency=medium
|
||||
|
||||
* Bump to f0d4186 — kernel per-ctx vb2 lock fix. daedalus_queue_init
|
||||
was wiring src_vq->lock and dst_vq->lock to ctx->dev->m2m_lock (a
|
||||
device-wide mutex), serialising every vb2 ioctl across all
|
||||
concurrent clients of /dev/video0. For Firefox (which spawns
|
||||
separate content + RDD + GPU processes that each open the device
|
||||
and run libva probe simultaneously), one libva session's
|
||||
S_FMT(OUTPUT_MPLANE) hit EBUSY while another was mid-streamon —
|
||||
Firefox VAAPI playback fell apart at startup.
|
||||
* Fix gives each open() its own ctx->vb_mutex; vb2 ioctls run
|
||||
independently per client. Matches cedrus / rkvdec / hantro
|
||||
pattern.
|
||||
* Verified on higgs: Firefox YouTube playback engages VAAPI cleanly,
|
||||
sustained ~230 fps decode at 640x368 through the daedalus daemon,
|
||||
zero EBUSY in stderr or daemon journal.
|
||||
|
||||
-- Markus Fritsche <mfritsche@reauktion.de> Wed, 20 May 2026 23:00:00 +0000
|
||||
|
||||
daedalus-v4l2 (0.1.0+r22+g462aa4b-1) bookworm trixie; urgency=medium
|
||||
|
||||
* Bump to 462aa4b — kernel-side fix for control-binding gap that
|
||||
|
||||
+15
-14
@@ -10,21 +10,22 @@
|
||||
# Upstream fork: https://git.reauktion.de/marfrit/libva-v4l2-request-fourier
|
||||
set -euo pipefail
|
||||
|
||||
# Same pin as the Arch PKGBUILD. c1bb444 = PR #9 merge "h264:
|
||||
# max_num_ref_frames fallback + libva-boundary instrumentation (#8)" —
|
||||
# addresses the libva-side portion of marfrit/libva-v4l2-request-fourier#8.
|
||||
# The daedalus_v4l2-via-libavcodec strict consumer rejected frames whose
|
||||
# sps.max_num_ref_frames was 0 (older ffmpeg-vaapi paths leave the field
|
||||
# unset and HW decoders tolerated it). PR adds a per-profile spec
|
||||
# minimum fallback (counts valid DPB entries first; 1 for baseline / 4
|
||||
# for main+high if even that is 0) and a one-line request_log at
|
||||
# h264_set_controls entry dumping raw VAAPI bitfields for diagnosing
|
||||
# the still-open PPS-flag-zero portion of issue #8.
|
||||
# Same pin as the Arch PKGBUILD. 77f9236 = PR #12 merge "av1:
|
||||
# populate V4L2_CID_STATELESS_AV1_SEQUENCE in codec_set_controls
|
||||
# (#11 libva side)" — adds src/av1.{c,h} with av1_set_controls that
|
||||
# maps VAAPI's VAPictureParameterBufferAV1.seq_info_fields onto
|
||||
# struct v4l2_ctrl_av1_sequence and queues V4L2_CID_STATELESS_AV1_
|
||||
# SEQUENCE via S_EXT_CTRLS. The daedalus_v4l2 daemon track is the
|
||||
# consumer that turns the ctrl into an OBU_SEQUENCE_HEADER and
|
||||
# prepends it to the slice bitstream so libdav1d can parse the
|
||||
# (sequence-header-stripped) OUTPUT buffer that ffmpeg-vaapi
|
||||
# delivers.
|
||||
#
|
||||
# Prior pin (9898331) was the LIBVA-2 close — config-side
|
||||
# video_fd_daedalus added to the profile enumeration probe array.
|
||||
UPSTREAM_COMMIT=c1bb444d0731ca7ca831c7e01ec4b52ed736ca8e
|
||||
PKGVER=1.0.0+r382+gc1bb444
|
||||
# Prior pin (c1bb444) = PR #9 merge — h264_set_controls
|
||||
# max_num_ref_frames fallback + libva-boundary instrumentation for
|
||||
# the daedalus consumer-strict path (issue #8 libva side).
|
||||
UPSTREAM_COMMIT=77f92364661419f6e5a7bd827c1b845b4e426569
|
||||
PKGVER=1.0.0+r386+g77f9236
|
||||
PKGREL=1
|
||||
|
||||
HERE=$(dirname "$(readlink -f "$0")")
|
||||
|
||||
Reference in New Issue
Block a user