From f9a14ea5812d03b49ecffe2a215e67f33fb1717c Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 28 Aug 2022 16:51:35 +0200 Subject: [PATCH 1/4] ffmpeg: update to 4.4.1-Nexus-Alpha1 Sync with kodi, seems we forgot to bump it with kodi alpha1. Signed-off-by: Matthias Reichl --- packages/multimedia/ffmpeg/package.mk | 8 ++++---- tools/ffmpeg/gen-patches.sh | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/multimedia/ffmpeg/package.mk b/packages/multimedia/ffmpeg/package.mk index 313efdc523..5904938c09 100644 --- a/packages/multimedia/ffmpeg/package.mk +++ b/packages/multimedia/ffmpeg/package.mk @@ -17,15 +17,15 @@ case "${PROJECT}" in PKG_PATCH_DIRS="libreelec" ;; RPi) - PKG_VERSION="4.4-N-Alpha1" - PKG_SHA256="eb396f46ef7c5ac01b67818d0f2c0516fd4ab32aa9065a9ffa71eebede67ff20" + PKG_VERSION="4.4.1-Nexus-Alpha1" + PKG_SHA256="abbce62231baffe237e412689c71ffe01bfc83135afd375f1e538caae87729ed" PKG_URL="https://github.com/xbmc/FFmpeg/archive/${PKG_VERSION}.tar.gz" PKG_FFMPEG_RPI="--disable-mmal --disable-rpi --enable-sand" PKG_PATCH_DIRS="libreelec rpi" ;; *) - PKG_VERSION="4.4-N-Alpha1" - PKG_SHA256="eb396f46ef7c5ac01b67818d0f2c0516fd4ab32aa9065a9ffa71eebede67ff20" + PKG_VERSION="4.4.1-Nexus-Alpha1" + PKG_SHA256="abbce62231baffe237e412689c71ffe01bfc83135afd375f1e538caae87729ed" PKG_URL="https://github.com/xbmc/FFmpeg/archive/${PKG_VERSION}.tar.gz" PKG_PATCH_DIRS="libreelec v4l2-request v4l2-drmprime" ;; diff --git a/tools/ffmpeg/gen-patches.sh b/tools/ffmpeg/gen-patches.sh index c45d420617..38e9056dab 100755 --- a/tools/ffmpeg/gen-patches.sh +++ b/tools/ffmpeg/gen-patches.sh @@ -2,7 +2,7 @@ # base ffmpeg version KODI_FFMPEG_REPO="https://github.com/xbmc/FFmpeg" -KODI_FFMPEG_VERSION="4.4-N-Alpha1" +KODI_FFMPEG_VERSION="4.4.1-Nexus-Alpha1" ALL_FEATURE_SETS="v4l2-drmprime v4l2-request libreelec rpi" @@ -25,11 +25,11 @@ create_patch() { case "${FEATURE_SET}" in v4l2-drmprime) REPO="https://github.com/jernejsk/FFmpeg" - REFSPEC="v4l2-drmprime-v6" + REFSPEC="v4l2-drmprime-v6-4.4.1-Nexus-Alpha1" ;; v4l2-request) REPO="https://github.com/jernejsk/FFmpeg" - REFSPEC="v4l2-request-hwaccel-4.4" + REFSPEC="v4l2-request-hwaccel-4.4.1-Nexus-Alpha1" ;; libreelec) REPO="https://github.com/LibreELEC/FFmpeg" From 292142ebd2b0b21e3418a61bb2ea2aa57331dc7f Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 6 Sep 2022 10:27:30 +0200 Subject: [PATCH 2/4] ffmpeg: move dav1d support patch to separate patch dir av1 patch is now included in kodi ffmpeg fork so we can drop it from our local patches. Only Amlogic still needs the patch as it doesn't use kodi ffmpeg fork. Signed-off-by: Matthias Reichl --- packages/multimedia/ffmpeg/package.mk | 2 +- .../ffmpeg/patches/{ => dav1d}/ffmpeg-support-dav1d-1-0-0.patch | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename packages/multimedia/ffmpeg/patches/{ => dav1d}/ffmpeg-support-dav1d-1-0-0.patch (100%) diff --git a/packages/multimedia/ffmpeg/package.mk b/packages/multimedia/ffmpeg/package.mk index 5904938c09..caa3751593 100644 --- a/packages/multimedia/ffmpeg/package.mk +++ b/packages/multimedia/ffmpeg/package.mk @@ -14,7 +14,7 @@ case "${PROJECT}" in PKG_VERSION="0e5290bcac015e52f6a65dafaf41ea125816257f" # dev/4.4/rpi_import_1 PKG_SHA256="4bd6e56920b90429bc09e43cda554f5bb9125c4ac090b4331fc459bb709eea68" PKG_URL="https://github.com/jc-kynesim/rpi-ffmpeg/archive/${PKG_VERSION}.tar.gz" - PKG_PATCH_DIRS="libreelec" + PKG_PATCH_DIRS="libreelec dav1d" ;; RPi) PKG_VERSION="4.4.1-Nexus-Alpha1" diff --git a/packages/multimedia/ffmpeg/patches/ffmpeg-support-dav1d-1-0-0.patch b/packages/multimedia/ffmpeg/patches/dav1d/ffmpeg-support-dav1d-1-0-0.patch similarity index 100% rename from packages/multimedia/ffmpeg/patches/ffmpeg-support-dav1d-1-0-0.patch rename to packages/multimedia/ffmpeg/patches/dav1d/ffmpeg-support-dav1d-1-0-0.patch From e832a2717282bffc92486888415cfdaae98b964e Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 6 Sep 2022 10:31:06 +0200 Subject: [PATCH 3/4] ffmpeg: update v4l2-drmprime patch Patch created using revisions 293e067..909ca63 from branch v4l2-drmprime-v6-4.4.1-Nexus-Alpha1 of https://github.com/jernejsk/FFmpeg --- .../ffmpeg-001-v4l2-drmprime.patch | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/multimedia/ffmpeg/patches/v4l2-drmprime/ffmpeg-001-v4l2-drmprime.patch b/packages/multimedia/ffmpeg/patches/v4l2-drmprime/ffmpeg-001-v4l2-drmprime.patch index d6acd23c78..403b073b68 100644 --- a/packages/multimedia/ffmpeg/patches/v4l2-drmprime/ffmpeg-001-v4l2-drmprime.patch +++ b/packages/multimedia/ffmpeg/patches/v4l2-drmprime/ffmpeg-001-v4l2-drmprime.patch @@ -1,4 +1,4 @@ -From 40a990827399c05ad3ce3f8242321bd8a67aa0bd Mon Sep 17 00:00:00 2001 +From 1e73397d52d69378ebac5a390da508cd16d7d97e Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Tue, 24 Apr 2018 23:00:23 -0700 Subject: [PATCH 1/9] libavcodec: v4l2m2m: output AVDRMFrameDescriptor @@ -421,7 +421,7 @@ index ab07c0a24a..6bc7442702 100644 } -From 9a2a361c2c84c8da54cd3a74b0d0bb966df8fe69 Mon Sep 17 00:00:00 2001 +From deb0ba531401f069dc6e4dcf235dfc08bca6577c Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Thu, 16 Aug 2018 21:09:40 -0700 Subject: [PATCH 2/9] libavcodec: v4l2m2m: depends on libdrm @@ -432,10 +432,10 @@ Subject: [PATCH 2/9] libavcodec: v4l2m2m: depends on libdrm 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/configure b/configure -index d7a3f507e8..d203f6f7da 100755 +index 4ba72bf84b..efb065905c 100755 --- a/configure +++ b/configure -@@ -3437,6 +3437,7 @@ sndio_indev_deps="sndio" +@@ -3438,6 +3438,7 @@ sndio_indev_deps="sndio" sndio_outdev_deps="sndio" v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h" v4l2_indev_suggest="libv4l2" @@ -457,7 +457,7 @@ index cbd3e5680d..bebe2c1796 100644 #include #include -From 7b0fa2d859c12a8a129c884d16673ca731336c06 Mon Sep 17 00:00:00 2001 +From f89fad11f53110cd6968c83e89bafb0c449f34ec Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Thu, 16 Aug 2018 21:10:13 -0700 Subject: [PATCH 3/9] libavcodec: v4l2m2m: set format_modifier to @@ -485,7 +485,7 @@ index bebe2c1796..12037d5d66 100644 } -From e1857456c8f24e40d5c898886f2f51014e59ee9d Mon Sep 17 00:00:00 2001 +From d5a37af1a8fe1ed70428e55286126d241986dd0c Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Thu, 16 Aug 2018 21:10:53 -0700 Subject: [PATCH 4/9] libavcodec: v4l2m2m: only mmap the buffer when it is @@ -529,7 +529,7 @@ index 12037d5d66..1adf518ab9 100644 if (avbuf->plane_info[i].mm_addr == MAP_FAILED) -From c8fc3ea1b5777546f7ec72a54b053a2d4fa9fd59 Mon Sep 17 00:00:00 2001 +From d0be699166cdc413a5dc3e1c087433ac7cf142e7 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Thu, 16 Aug 2018 21:11:38 -0700 Subject: [PATCH 5/9] libavcodec: v4l2m2m: allow using software pixel formats @@ -569,7 +569,7 @@ index 6bc7442702..4b9baf833c 100644 .hw_configs = v4l2_m2m_hw_configs, \ .wrapper_name = "v4l2m2m", \ -From 13f02e940f083f19dbe8b9ac8fc7df45700dd36e Mon Sep 17 00:00:00 2001 +From c4736742883eb2a1965ac65a5c75d5409e3c85a0 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 24 Sep 2018 13:39:31 -0700 Subject: [PATCH 6/9] libavcodec: v4l2m2m: implement hwcontext @@ -677,7 +677,7 @@ index 4b9baf833c..6c23693137 100644 ret = ff_v4l2_m2m_codec_init(priv); if (ret) { -From 34be198b8039c9df434792f19f0985e45419407e Mon Sep 17 00:00:00 2001 +From 0b15c77718900bf60c91217ed1492390022ad6db Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 4 May 2020 13:01:29 -0700 Subject: [PATCH 7/9] libavcodec: v4l2m2m: allow lower minimum buffer values @@ -718,7 +718,7 @@ index 6c23693137..e323c37052 100644 }; -From 2956fd1881d28abf6bf77bd9a57866c4ba81d199 Mon Sep 17 00:00:00 2001 +From acc86933e5fe3a13aae44cf84c48bab6c717e49b Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Wed, 6 May 2020 11:12:58 -0700 Subject: [PATCH 8/9] libavcodec: v4l2m2m: add option to specify pixel format @@ -790,7 +790,7 @@ index e323c37052..363e998142 100644 }; -From 2bb6d0cb244590f0c70dd111ed978cd87fa3bee1 Mon Sep 17 00:00:00 2001 +From 909ca6380d9112cc0111266da02a4a8e1e5abc1e Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 24 Sep 2018 13:39:56 -0700 Subject: [PATCH 9/9] libavcodec: v4l2m2m: implement flush From d28960f2b74bd8a2a95df582cad78baf2ab3b276 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 6 Sep 2022 10:33:04 +0200 Subject: [PATCH 4/4] ffmpeg: update v4l2-request patch Patch created using revisions 293e067..237847d from branch v4l2-request-hwaccel-4.4.1-Nexus-Alpha1 of https://github.com/jernejsk/FFmpeg --- .../ffmpeg-001-v4l2-request.patch | 104 +++++++++--------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/packages/multimedia/ffmpeg/patches/v4l2-request/ffmpeg-001-v4l2-request.patch b/packages/multimedia/ffmpeg/patches/v4l2-request/ffmpeg-001-v4l2-request.patch index 6d69d2626f..657eae7f63 100644 --- a/packages/multimedia/ffmpeg/patches/v4l2-request/ffmpeg-001-v4l2-request.patch +++ b/packages/multimedia/ffmpeg/patches/v4l2-request/ffmpeg-001-v4l2-request.patch @@ -1,4 +1,4 @@ -From 904af26693095364851bbc6c6557fca9b3437b69 Mon Sep 17 00:00:00 2001 +From b7afcc4052e9d70408adc97ee2eb3ce91d8e1baf Mon Sep 17 00:00:00 2001 From: Jonas Karlman Date: Mon, 3 Dec 2018 23:48:04 +0100 Subject: [PATCH 01/17] avutil: add av_buffer_pool_flush() @@ -52,7 +52,7 @@ index 241a80ed67..f41363faf1 100644 * Mark the pool as being available for freeing. It will actually be freed only * once all the allocated buffers associated with the pool are released. Thus it -From ec84dc22e99f544e4de7c43e7f8ef9ab7ee8e19b Mon Sep 17 00:00:00 2001 +From 08aeda51103a1382d5d55fa205c1795eb783217a Mon Sep 17 00:00:00 2001 From: Jonas Karlman Date: Sat, 15 Dec 2018 22:32:16 +0100 Subject: [PATCH 02/17] Add common V4L2 request API code @@ -69,7 +69,7 @@ Signed-off-by: Jonas Karlman create mode 100644 libavcodec/v4l2_request.h diff --git a/configure b/configure -index d7a3f507e8..f2e203d134 100755 +index 4ba72bf84b..4a3a5ae9e0 100755 --- a/configure +++ b/configure @@ -279,6 +279,7 @@ External library support: @@ -104,7 +104,7 @@ index d7a3f507e8..f2e203d134 100755 vulkan " -@@ -2919,6 +2923,7 @@ d3d11va_deps="dxva_h ID3D11VideoDecoder ID3D11VideoContext" +@@ -2920,6 +2924,7 @@ d3d11va_deps="dxva_h ID3D11VideoDecoder ID3D11VideoContext" dxva2_deps="dxva2api_h DXVA2_ConfigPictureDecode ole32 user32" ffnvcodec_deps_any="libdl LoadLibrary" nvdec_deps="ffnvcodec" @@ -112,7 +112,7 @@ index d7a3f507e8..f2e203d134 100755 vaapi_x11_deps="xlib" videotoolbox_hwaccel_deps="videotoolbox pthreads" videotoolbox_hwaccel_extralibs="-framework QuartzCore" -@@ -6438,6 +6443,7 @@ enabled libtwolame && require libtwolame twolame.h twolame_init -ltwolame +@@ -6439,6 +6444,7 @@ enabled libtwolame && require libtwolame twolame.h twolame_init -ltwolame { check_lib libtwolame twolame.h twolame_encode_buffer_float32_interleaved -ltwolame || die "ERROR: libtwolame must be installed and version must be >= 0.3.10"; } enabled libuavs3d && require_pkg_config libuavs3d "uavs3d >= 1.1.41" uavs3d.h uavs3d_decode @@ -120,7 +120,7 @@ index d7a3f507e8..f2e203d134 100755 enabled libv4l2 && require_pkg_config libv4l2 libv4l2 libv4l2.h v4l2_ioctl enabled libvidstab && require_pkg_config libvidstab "vidstab >= 0.98" vid.stab/libvidstab.h vsMotionDetectInit enabled libvmaf && require_pkg_config libvmaf "libvmaf >= 1.5.2" libvmaf.h compute_vmaf -@@ -6536,6 +6542,10 @@ enabled rkmpp && { require_pkg_config rkmpp rockchip_mpp rockchip/r +@@ -6537,6 +6543,10 @@ enabled rkmpp && { require_pkg_config rkmpp rockchip_mpp rockchip/r { enabled libdrm || die "ERROR: rkmpp requires --enable-libdrm"; } } @@ -131,7 +131,7 @@ index d7a3f507e8..f2e203d134 100755 enabled vapoursynth && require_pkg_config vapoursynth "vapoursynth-script >= 42" VSScript.h vsscript_init -@@ -6617,6 +6627,8 @@ if enabled v4l2_m2m; then +@@ -6618,6 +6628,8 @@ if enabled v4l2_m2m; then check_cc vp9_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_VP9;" fi @@ -1239,7 +1239,7 @@ index 0000000000..58d2aa70af + +#endif /* AVCODEC_V4L2_REQUEST_H */ -From e432d3151f4c5507e40fb1fe8b3c3fb7c7a0a08c Mon Sep 17 00:00:00 2001 +From ae79312604208dd0cceaf4c48963579056ccafee Mon Sep 17 00:00:00 2001 From: Ezequiel Garcia Date: Wed, 20 Feb 2019 11:18:00 -0300 Subject: [PATCH 03/17] h264dec: add idr_pic_id to slice context @@ -1254,7 +1254,7 @@ Signed-off-by: Jonas Karlman 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c -index 2d0605c7f4..c3a7338a70 100644 +index 0b415ada6f..b3e3ef6183 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -1830,7 +1830,7 @@ static int h264_slice_header_parse(const H264Context *h, H264SliceContext *sl, @@ -1264,8 +1264,8 @@ index 2d0605c7f4..c3a7338a70 100644 - get_ue_golomb_long(&sl->gb); /* idr_pic_id */ + sl->idr_pic_id = get_ue_golomb_long(&sl->gb); - if (sps->poc_type == 0) { - sl->poc_lsb = get_bits(&sl->gb, sps->log2_max_poc_lsb); + sl->poc_lsb = 0; + sl->delta_poc_bottom = 0; diff --git a/libavcodec/h264dec.h b/libavcodec/h264dec.h index b7b19ba4f1..0698ab95ba 100644 --- a/libavcodec/h264dec.h @@ -1279,7 +1279,7 @@ index b7b19ba4f1..0698ab95ba 100644 /** -From 84564d13ec0ec40f408622ff6b0d900723bbab5b Mon Sep 17 00:00:00 2001 +From 5257b2741d7cfb88233ebd00a6ba3b6bda1f3cf2 Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Wed, 22 May 2019 14:44:22 +0200 Subject: [PATCH 04/17] h264dec: add ref_pic_marking and pic_order_cnt bit_size @@ -1295,7 +1295,7 @@ Signed-off-by: Jonas Karlman 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c -index c3a7338a70..c28b58cd5d 100644 +index b3e3ef6183..bcb9f70c0e 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -1748,7 +1748,7 @@ static int h264_slice_header_parse(const H264Context *h, H264SliceContext *sl, @@ -1307,15 +1307,15 @@ index c3a7338a70..c28b58cd5d 100644 if (first_slice) av_assert0(!h->setup_finished); -@@ -1832,6 +1832,7 @@ static int h264_slice_header_parse(const H264Context *h, H264SliceContext *sl, - if (nal->type == H264_NAL_IDR_SLICE) - sl->idr_pic_id = get_ue_golomb_long(&sl->gb); +@@ -1834,6 +1834,7 @@ static int h264_slice_header_parse(const H264Context *h, H264SliceContext *sl, + sl->poc_lsb = 0; + sl->delta_poc_bottom = 0; + pos = sl->gb.index; if (sps->poc_type == 0) { sl->poc_lsb = get_bits(&sl->gb, sps->log2_max_poc_lsb); -@@ -1845,6 +1846,7 @@ static int h264_slice_header_parse(const H264Context *h, H264SliceContext *sl, +@@ -1848,6 +1849,7 @@ static int h264_slice_header_parse(const H264Context *h, H264SliceContext *sl, if (pps->pic_order_present == 1 && picture_structure == PICT_FRAME) sl->delta_poc[1] = get_se_golomb(&sl->gb); } @@ -1323,7 +1323,7 @@ index c3a7338a70..c28b58cd5d 100644 sl->redundant_pic_count = 0; if (pps->redundant_pic_cnt_present) -@@ -1884,9 +1886,11 @@ static int h264_slice_header_parse(const H264Context *h, H264SliceContext *sl, +@@ -1887,9 +1889,11 @@ static int h264_slice_header_parse(const H264Context *h, H264SliceContext *sl, sl->explicit_ref_marking = 0; if (nal->ref_idc) { @@ -1356,7 +1356,7 @@ index 0698ab95ba..2b39e82c3b 100644 /** -From 68883e0cd0c7e4ef6bcccaa1af2e7becf59f8556 Mon Sep 17 00:00:00 2001 +From bfd0f2970a9e84d049fb6a3f60051f307b4e9d69 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sat, 15 Dec 2018 22:32:16 +0100 Subject: [PATCH 05/17] Add V4L2 request API h264 hwaccel @@ -1374,10 +1374,10 @@ Signed-off-by: Jonas Karlman create mode 100644 libavcodec/v4l2_request_h264.c diff --git a/configure b/configure -index f2e203d134..b17e4108c1 100755 +index 4a3a5ae9e0..efd12f1b52 100755 --- a/configure +++ b/configure -@@ -2951,6 +2951,8 @@ h264_dxva2_hwaccel_deps="dxva2" +@@ -2952,6 +2952,8 @@ h264_dxva2_hwaccel_deps="dxva2" h264_dxva2_hwaccel_select="h264_decoder" h264_nvdec_hwaccel_deps="nvdec" h264_nvdec_hwaccel_select="h264_decoder" @@ -1386,7 +1386,7 @@ index f2e203d134..b17e4108c1 100755 h264_vaapi_hwaccel_deps="vaapi" h264_vaapi_hwaccel_select="h264_decoder" h264_vdpau_hwaccel_deps="vdpau" -@@ -6628,6 +6630,7 @@ if enabled v4l2_m2m; then +@@ -6629,6 +6631,7 @@ if enabled v4l2_m2m; then fi check_func_headers "linux/media.h linux/videodev2.h" v4l2_timeval_to_ns @@ -1407,7 +1407,7 @@ index 90dfffcb20..426c7528e9 100644 OBJS-$(CONFIG_H264_VDPAU_HWACCEL) += vdpau_h264.o OBJS-$(CONFIG_H264_VIDEOTOOLBOX_HWACCEL) += videotoolbox.o diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c -index c28b58cd5d..0a10d00aad 100644 +index bcb9f70c0e..6b7f569da4 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -768,6 +768,7 @@ static enum AVPixelFormat get_pixel_format(H264Context *h, int force_callback) @@ -1429,7 +1429,7 @@ index c28b58cd5d..0a10d00aad 100644 if (h->avctx->codec->pix_fmts) choices = h->avctx->codec->pix_fmts; diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c -index 0a999bef43..d78e3eaee3 100644 +index 1705046e29..55046031b2 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -1076,6 +1076,9 @@ AVCodec ff_h264_decoder = { @@ -1917,7 +1917,7 @@ index 0000000000..394bae0550 + .caps_internal = HWACCEL_CAP_ASYNC_SAFE, +}; -From 694f0e61125d4d6b2d5b950023e7f8623bfc58f2 Mon Sep 17 00:00:00 2001 +From fb84a34c8e4465d47946abecbf3f5df8f8920cbe Mon Sep 17 00:00:00 2001 From: Jonas Karlman Date: Sat, 15 Dec 2018 22:32:16 +0100 Subject: [PATCH 06/17] Add V4L2 request API mpeg2 hwaccel @@ -1933,10 +1933,10 @@ Signed-off-by: Jonas Karlman create mode 100644 libavcodec/v4l2_request_mpeg2.c diff --git a/configure b/configure -index b17e4108c1..ec141fabbd 100755 +index efd12f1b52..1b70ea65e4 100755 --- a/configure +++ b/configure -@@ -2995,6 +2995,8 @@ mpeg2_dxva2_hwaccel_deps="dxva2" +@@ -2996,6 +2996,8 @@ mpeg2_dxva2_hwaccel_deps="dxva2" mpeg2_dxva2_hwaccel_select="mpeg2video_decoder" mpeg2_nvdec_hwaccel_deps="nvdec" mpeg2_nvdec_hwaccel_select="mpeg2video_decoder" @@ -1945,7 +1945,7 @@ index b17e4108c1..ec141fabbd 100755 mpeg2_vaapi_hwaccel_deps="vaapi" mpeg2_vaapi_hwaccel_select="mpeg2video_decoder" mpeg2_vdpau_hwaccel_deps="vdpau" -@@ -6631,6 +6633,7 @@ fi +@@ -6632,6 +6634,7 @@ fi check_func_headers "linux/media.h linux/videodev2.h" v4l2_timeval_to_ns check_cc h264_v4l2_request linux/videodev2.h "int i = V4L2_PIX_FMT_H264_SLICE;" @@ -1978,7 +1978,7 @@ index 969a1da0f4..a8ae1483d8 100644 extern const AVHWAccel ff_mpeg2_vdpau_hwaccel; extern const AVHWAccel ff_mpeg2_videotoolbox_hwaccel; diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c -index 94221da2c1..4b0176f6cb 100644 +index 09bf01247d..bcdf26680a 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -1147,6 +1147,9 @@ static const enum AVPixelFormat mpeg2_hwaccel_pixfmt_list_420[] = { @@ -2167,7 +2167,7 @@ index 0000000000..84d53209c7 + .caps_internal = HWACCEL_CAP_ASYNC_SAFE, +}; -From fdacf119ed7ed75197dbc2003cdd9bad6e74764f Mon Sep 17 00:00:00 2001 +From bd1adf7ea2a3592eef7b2524fe0fed06a56a1771 Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Wed, 22 May 2019 14:46:58 +0200 Subject: [PATCH 07/17] Add V4L2 request API vp8 hwaccel @@ -2185,10 +2185,10 @@ Signed-off-by: Jonas Karlman create mode 100644 libavcodec/v4l2_request_vp8.c diff --git a/configure b/configure -index ec141fabbd..f16bed65a3 100755 +index 1b70ea65e4..3f8f7b195a 100755 --- a/configure +++ b/configure -@@ -3027,6 +3027,8 @@ vc1_vdpau_hwaccel_deps="vdpau" +@@ -3028,6 +3028,8 @@ vc1_vdpau_hwaccel_deps="vdpau" vc1_vdpau_hwaccel_select="vc1_decoder" vp8_nvdec_hwaccel_deps="nvdec" vp8_nvdec_hwaccel_select="vp8_decoder" @@ -2197,7 +2197,7 @@ index ec141fabbd..f16bed65a3 100755 vp8_vaapi_hwaccel_deps="vaapi" vp8_vaapi_hwaccel_select="vp8_decoder" vp9_d3d11va_hwaccel_deps="d3d11va DXVA_PicParams_VP9" -@@ -6634,6 +6636,7 @@ fi +@@ -6635,6 +6637,7 @@ fi check_func_headers "linux/media.h linux/videodev2.h" v4l2_timeval_to_ns check_cc h264_v4l2_request linux/videodev2.h "int i = V4L2_PIX_FMT_H264_SLICE;" check_cc mpeg2_v4l2_request linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG2_SLICE;" @@ -2440,7 +2440,7 @@ index d16e7b6aa3..8ee768d875 100644 NULL }, -From 0952cf83284cc4c625b435104cadabbfffff30cc Mon Sep 17 00:00:00 2001 +From fd0b19baa147bad74b2481a53972fec1988fb9e4 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sat, 15 Dec 2018 22:32:16 +0100 Subject: [PATCH 08/17] Add V4L2 request API hevc hwaccel @@ -2458,10 +2458,10 @@ Signed-off-by: Benjamin Gaignard create mode 100644 libavcodec/v4l2_request_hevc.c diff --git a/configure b/configure -index f16bed65a3..02a80cf27f 100755 +index 3f8f7b195a..6192a6c144 100755 --- a/configure +++ b/configure -@@ -2967,6 +2967,8 @@ hevc_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_HEVC" +@@ -2968,6 +2968,8 @@ hevc_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_HEVC" hevc_dxva2_hwaccel_select="hevc_decoder" hevc_nvdec_hwaccel_deps="nvdec" hevc_nvdec_hwaccel_select="hevc_decoder" @@ -2470,7 +2470,7 @@ index f16bed65a3..02a80cf27f 100755 hevc_vaapi_hwaccel_deps="vaapi VAPictureParameterBufferHEVC" hevc_vaapi_hwaccel_select="hevc_decoder" hevc_vdpau_hwaccel_deps="vdpau VdpPictureInfoHEVC" -@@ -6635,6 +6637,7 @@ fi +@@ -6636,6 +6638,7 @@ fi check_func_headers "linux/media.h linux/videodev2.h" v4l2_timeval_to_ns check_cc h264_v4l2_request linux/videodev2.h "int i = V4L2_PIX_FMT_H264_SLICE;" @@ -3129,7 +3129,7 @@ index 0000000000..eaedde0d86 + .caps_internal = HWACCEL_CAP_ASYNC_SAFE, +}; -From c261611471077bb7a51c1267529a71267c369f99 Mon Sep 17 00:00:00 2001 +From 9c2eaf2e2d5ee78d311ef90fc58987b528afe437 Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Thu, 12 Dec 2019 16:13:55 +0100 Subject: [PATCH 09/17] Add V4L2 request API VP9 hwaccel @@ -3148,10 +3148,10 @@ Signed-off-by: Jernej Skrabec create mode 100644 libavcodec/v4l2_request_vp9.c diff --git a/configure b/configure -index 02a80cf27f..0b238c051d 100755 +index 6192a6c144..36a1271a6c 100755 --- a/configure +++ b/configure -@@ -3041,6 +3041,8 @@ vp9_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_VP9" +@@ -3042,6 +3042,8 @@ vp9_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_VP9" vp9_dxva2_hwaccel_select="vp9_decoder" vp9_nvdec_hwaccel_deps="nvdec" vp9_nvdec_hwaccel_select="vp9_decoder" @@ -3160,7 +3160,7 @@ index 02a80cf27f..0b238c051d 100755 vp9_vaapi_hwaccel_deps="vaapi VADecPictureParameterBufferVP9_bit_depth" vp9_vaapi_hwaccel_select="vp9_decoder" vp9_vdpau_hwaccel_deps="vdpau VdpPictureInfoVP9" -@@ -6640,6 +6642,7 @@ check_cc h264_v4l2_request linux/videodev2.h "int i = V4L2_PIX_FMT_H264_SLICE;" +@@ -6641,6 +6643,7 @@ check_cc h264_v4l2_request linux/videodev2.h "int i = V4L2_PIX_FMT_H264_SLICE;" check_cc hevc_v4l2_request linux/videodev2.h "int i = V4L2_PIX_FMT_HEVC_SLICE;" check_cc mpeg2_v4l2_request linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG2_SLICE;" check_cc vp8_v4l2_request linux/videodev2.h "int i = V4L2_PIX_FMT_VP8_FRAME;" @@ -3857,7 +3857,7 @@ index 54726df742..fee3568736 100644 uint8_t pred_prob[3]; struct { -From 861a67f402ef4ec9e8de583a0e42b7912c848273 Mon Sep 17 00:00:00 2001 +From 7b0931f709e16f6f950475f6a0c52df6e14d38d8 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Thu, 14 Feb 2019 23:20:05 +0100 Subject: [PATCH 10/17] Add and use private linux v5.19.2 headers for V4L2 @@ -3873,10 +3873,10 @@ Signed-off-by: Jonas Karlman create mode 100644 libavcodec/hevc-ctrls.h diff --git a/configure b/configure -index 0b238c051d..1c1929d2c2 100755 +index 36a1271a6c..1b5121d972 100755 --- a/configure +++ b/configure -@@ -2967,7 +2967,7 @@ hevc_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_HEVC" +@@ -2968,7 +2968,7 @@ hevc_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_HEVC" hevc_dxva2_hwaccel_select="hevc_decoder" hevc_nvdec_hwaccel_deps="nvdec" hevc_nvdec_hwaccel_select="hevc_decoder" @@ -4154,7 +4154,7 @@ index eaedde0d86..3a4b2493b2 100644 #define MAX_SLICES 16 -From 9eb22ef69c24913344c589588c3d678c2acefeba Mon Sep 17 00:00:00 2001 +From 4abf972abac8a7cf1f81a544fc8b7ad82aff89e9 Mon Sep 17 00:00:00 2001 From: Jonas Karlman Date: Mon, 29 Apr 2019 22:08:59 +0000 Subject: [PATCH 11/17] HACK: hwcontext_drm: do not require drm device @@ -4181,7 +4181,7 @@ index 7a9fdbd263..6297d1f9b6 100644 if (hwctx->fd < 0) return AVERROR(errno); -From 1a2409ddee2a3d7ce17504740538f3e4d6252085 Mon Sep 17 00:00:00 2001 +From 2bf038b3f3b77eeaef2b0c08e265e080c267c0a8 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sat, 15 Dec 2018 22:32:16 +0100 Subject: [PATCH 12/17] WIP: hevc entry point offsets @@ -4228,7 +4228,7 @@ index 3a4b2493b2..59f3192c92 100644 static void fill_sps(struct v4l2_ctrl_hevc_sps *ctrl, const HEVCContext *h) -From 1064c8cdb5e70aea052cbe0f453d15031d025437 Mon Sep 17 00:00:00 2001 +From 36f2b7c0c5245471a16563e078307088fe38c00c Mon Sep 17 00:00:00 2001 From: Jonas Karlman Date: Fri, 15 May 2020 16:54:05 +0000 Subject: [PATCH 13/17] WIP: add NV15 and NV20 support @@ -4240,7 +4240,7 @@ Signed-off-by: Jonas Karlman 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c -index 0a10d00aad..45057fd049 100644 +index 6b7f569da4..ee4c76cf41 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -794,10 +794,17 @@ static enum AVPixelFormat get_pixel_format(H264Context *h, int force_callback) @@ -4315,7 +4315,7 @@ index 5234b5049b..0b294feff2 100644 default: return -1; -From fccf8d12dba1d072e28c30e8c8a77d9beb054ec2 Mon Sep 17 00:00:00 2001 +From 2416dbe0c4b9d93546f88244d9fa543250daca24 Mon Sep 17 00:00:00 2001 From: Jonas Karlman Date: Mon, 27 Jul 2020 23:15:45 +0000 Subject: [PATCH 14/17] HACK: define drm NV15 and NV20 format @@ -4344,7 +4344,7 @@ index 0b294feff2..a8f0ee79ee 100644 { V4L2RequestDescriptor *req = (V4L2RequestDescriptor*)frame->data[0]; -From 3c07e6d802d0372ead81fc4088be9481d6369382 Mon Sep 17 00:00:00 2001 +From a288c02f498b1c223a81d3f9f174e3f879d75047 Mon Sep 17 00:00:00 2001 From: Jonas Karlman Date: Wed, 13 May 2020 22:51:21 +0000 Subject: [PATCH 15/17] WIP: hevc rkvdec fields @@ -4460,7 +4460,7 @@ index 59f3192c92..bf20b9a849 100644 } -From afc228a84fef649497c25ed691e296f3a39dccb7 Mon Sep 17 00:00:00 2001 +From 69ca076a72c32c687bddb611d3a70e4f1c13184a Mon Sep 17 00:00:00 2001 From: Alex Bee Date: Sun, 19 Sep 2021 13:10:55 +0200 Subject: [PATCH 16/17] v4l2_request: validate supported framesizes @@ -4532,7 +4532,7 @@ index a8f0ee79ee..824dcaa8e9 100644 if (ret < 0) { av_log(avctx, AV_LOG_ERROR, "%s: set output format failed, %s (%d)\n", __func__, strerror(errno), errno); -From 5d5bbd001ba027d0b22c51325570b28f52d8a6f5 Mon Sep 17 00:00:00 2001 +From 237847d27938132c5bb9d137a2829bc34aab50d6 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 27 Feb 2022 18:54:21 +0100 Subject: [PATCH 17/17] Improve VP9 decoding