<feed xmlns='http://www.w3.org/2005/Atom'>
<title>packages/multimedia/ffmpeg/patches/120-v4l2-request-12.patch, branch master</title>
<subtitle>Mirror of packages feed</subtitle>
<id>https://git.openwrt.org/feed/packages/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/feed/packages/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/'/>
<updated>2026-11-15T00:04:03Z</updated>
<entry>
<title>ffmpeg: update V4L2 Request, add RPi DRM PRIME, trust store</title>
<updated>2026-11-15T00:04:03Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-11-11T19:05:03Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=60aae222edbbcf3fcd1e9b570cabba28d5e06520'/>
<id>urn:sha1:60aae222edbbcf3fcd1e9b570cabba28d5e06520</id>
<content type='text'>
Move the V4L2 Request patches to the head of FFmpeg pull request 20847
(3ac4e07593ee), Jonas Karlman's submission of them, as
120-v4l2-request-01 to -11. Their hwcontext maps the capture formats
rpi-hevc-dec prefers, NV12MT_COL128 and NV12MT_10_COL128, only where
linux/videodev2.h defines them, which the toolchain's kernel headers do
not, so patch 151 defines them with the Raspberry Pi kernel's values.

Patch 121, Arun Iyengar's fix from that pull request, hands each frame a
reference-counted session object, so that a frame returned after an SPS
change re-created the hwaccel finds its session closed and needs no
wait; FFmpeg crashed or hung on such HEVC streams. Patch 122 sets the
EXT SPS RPS controls of Linux 7.0, from which rkvdec's HEVC decoders
take the reference picture sets a slice header selects, and patch 152
defines them for the toolchain's kernel headers.

The V4L2 M2M decoders copy every picture into a software frame, so a
player cannot hand a stateful decoder's capture buffers to the display
as it does with the V4L2 Request hwaccels; the Raspberry Pi 4's H.264
decoder is stateful. Carry LibreELEC's v4l2-drmprime series, rebased
for FFmpeg 9 in LibreELEC commit cd0c6aab93d9 ("ffmpeg: rebase and
re-enable v4l2-drmprime patches"), one file per patch of
packages/multimedia/ffmpeg/patches/v4l2-drmprime/0001-v4l2-drmprime.patch:
  130-v4l2-drmprime-01 to -08 (Lukas Rusak): DRM PRIME output, a DRM
    hwcontext, software pixel formats, a pixel format option and flush
  130-v4l2-drmprime-09 (Rudi Heitbaum): adapt to FFmpeg 9
The decoders include libdrm's drm_fourcc.h, so FFMPEG_V4L2_M2M selects
FFMPEG_LIBDRM. Patches 200 and 201 are refreshed.

The series allocates a DRM hwdevice context per decoder and a hwframes
context per queue and keeps them for the life of the process. Patch 131
releases all three when the decoder context is destroyed.

Give the mbedtls backend, the package's default TLS backend, a trust
store, so that https works with peer verification on, as it is by
default. Take the patch submitted upstream, which reads SSL_CERT_FILE
and otherwise the system bundle.

Let a caller keep a network stream on one uplink of a multi-homed
host. Patches 172 and 173, submitted upstream, make the segment and key
connections of an HLS or DASH stream inherit local_addr from the
playlist connection. Patches 175 and 176, submitted upstream, add
local_dev to the tcp and udp protocols, which binds the socket to a
named device with SO_BINDTODEVICE, joins multicast groups on that
device and is inherited the same way.

Since FFmpeg 9.0, struct Program in the MPEG-TS demuxer is about
131 KiB, and pat_cb() and pmt_cb() each keep one on the stack. The
ffmpeg program demuxes every input in a thread with musl's default
stack of 128 KiB, so it crashes on any MPEG-TS input. Backport FFmpeg
commit 6edbe0d5af28 ("avformat/mpegts: avoid ~131 KiB stack frames in
PAT/PMT callbacks"), which swaps two programs member by member and
copies only the stream list of the previous program.

Fixes: e1a07d05b984 ("ffmpeg: add V4L2 hardware decoding patches from LibreELEC")
Fixes: 785210230381 ("ffmpeg: update to 9.0.1")
Link: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20847
Link: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24565
Link: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24566
Link: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/25960
Link: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/26065
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>ffmpeg: add V4L2 hardware decoding patches from LibreELEC</title>
<updated>2026-09-15T20:40:22Z</updated>
<author>
<name>Mirko Vogt</name>
</author>
<published>2026-09-08T13:49:22Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=e1a07d05b984d9bd14c0a4ad6c00ee617418ce6a'/>
<id>urn:sha1:e1a07d05b984d9bd14c0a4ad6c00ee617418ce6a</id>
<content type='text'>
V4L2 Request API hwaccels for stateless decoders such as Allwinner
cedrus, exporting DRM_PRIME frames, and a V4L2 M2M deinterlace filter
driving mem2mem deinterlacers such as Allwinner's sun8i-di on DRM_PRIME
frames. The hwaccels introduce the v4l2-request and libudev configure
options.

Add the FFMPEG_V4L2_REQUEST option (pulls libdrm and libudev) to the
libffmpeg menu, keep both new configure options explicitly off in the
common block like the other autodetected ones, and re-add the
*_v4l2request hwaccels under manual component selection.

Patches:
  120-v4l2-request-01 to -13: carried over from LibreELEC
    (packages/multimedia/ffmpeg/patches/v4l2-request/0001-v4l2-request.patch
    as of LibreELEC commit 79de202a10), one file per patch of the series:
    01 avutil/hwcontext: Add hwdevice type for V4L2 Request API
       (Jonas Karlman)
    02 avutil/hwcontext_v4l2request: Probe for a capable media and
       video device (Jonas Karlman)
    03 avcodec: Add common V4L2 Request API code (Jonas Karlman)
    04 avcodec/v4l2request: Add common decode support for hwaccels
       (Jonas Karlman)
    05 avcodec: Add V4L2 Request API mpeg2 hwaccel (Jonas Karlman)
    06 avcodec/h264dec: add ref_pic_marking and pic_order_cnt bit_size
       to slice context (Boris Brezillon)
    07 avcodec: Add V4L2 Request API h264 hwaccel (Jernej Skrabec)
    08 avcodec: Add V4L2 Request API hevc hwaccel (Jernej Skrabec)
    09 avcodec: Add V4L2 Request API vp8 hwaccel (Boris Brezillon)
    10 avcodec: Add V4L2 Request API vp9 hwaccel (Boris Brezillon)
    11 avcodec: Add V4L2 Request API av1 hwaccel (Jonas Karlman)
    12 avutil/hwcontext_v4l2request: Add support for AFBC_16X16_SPLIT
       pix fmts (Jernej Skrabec)
    13 avutil/hwcontext_v4l2request: Add support for BROADCOM_SAND128
       pix fmts (Jonas Karlman)
    Co-developed by Alex Bee, Benjamin Gaignard and Ezequiel Garcia.
  140-vf-deinterlace-v4l2m2m: carried over from LibreELEC
    (packages/multimedia/ffmpeg/patches/vf-deinterlace-v4l2m2m/0001-vf-deinterlace-v4l2m2m.patch
    as of LibreELEC commit 9ef6c9c6f7; Jernej Skrabec): adds the
    deinterlace_v4l2m2m filter

Headers unchanged, hunks refreshed with quilt; the patched tree is
identical to the one LibreELEC's files produce.

LibreELEC's v4l2-drmprime patch (stateful M2M decoders) is not carried:
it needs a rebase for FFmpeg 9 which LibreELEC has not done either.

The V4L2 Request API series is under review upstream as:
https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20847
The patches here are taken from LibreELEC, though,
as that's the set that Kodi is built and tested against,
incl. some platform specific fixes.

Signed-off-by: Mirko Vogt &lt;mirko-openwrt@nanl.de&gt;
</content>
</entry>
</feed>
