Files
Mirko Vogt e1a07d05b9 ffmpeg: add V4L2 hardware decoding patches from LibreELEC
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 <mirko-openwrt@nanl.de>
2026-09-15 22:40:22 +02:00
..