Skip to content

Commit

Permalink
ffmpeg 6.0.1 and tvheadend 4.3~366e562 update (#6148)
Browse files Browse the repository at this point in the history
* dav1d: Update from version 1.1.0 to 1.4.2

* frei0r: Update from version 2.2.0 to 2.3.3

* libass: Update from version 0.17.1 to 0.17.2

* libaom: Update from version 3.5.0 to 3.8.3

* openh264: Update from version 2.3.1 to 2.4.1

* zimg: Update from version 3.0.4 to 3.0.5

* libpciaccess: Update from version 0.17 to 0.18

* libvpx: Update from version 1.13.0 to 1.14.1

* libdrm: Update from version 2.4.115 to 2.4.121

* libva: Update from version 2.18.0 to 2.21.0

* libva-utils: Update from version 2.18.1 to 2.21.0

* x265: Remove CMAKE_USE_NINJA as now default build in usage

* intel-gmmlib: Update from version 22.3.5 to 22.3.20

* intel-media: Update from version 23.1.6 to 24.1.5

* intel-mediasdk: Update from version 23.2.1 to 23.2.2

* libdc1394: Update from version 2.2.6 to 2.2.7

* flac: Update from version 1.4.2 to 1.4.3

* librist: Update from version v0.2.7 to v0.2.10

* libbluray: Update from version 1.3.3 to 1.3.4

* fdk-aac: Update from version 2.0.2 to 2.0.3

* SVT-AV1: Update from version 1.4.1 to 2.1.0

* ffmpeg: Update from version 6.0 to 6.0.1 with jellyfin patches

* ffmpeg6: Update changelog and ffprobe symlink creation

* tvheadend: Update version 4.3 from f32c7c5 to 366e562 (20240615)

* opencore-amr: Update from version 0.1.5 to 0.1.6

* ffmpeg6: Fix jellyfin patches porting

* tvheadend: Fix patches and disable OSCam support

* svt-av1: Fix build for aarch64 neon with gcc-4.9

* ffmpeg: Fix typo in jellyfin patch documentation

* ffmpeg4: Update libsvtav1 patches and changelog

* ffmpeg5: Update libsvtav1 patches and changelog

* comskip: Update git hash of June 7th 2024 and migrate to ffmpeg5

* ffmpeg5: Update changelog for release for comskip v4->v5 migration

* level-zero: Install Intel level-zero version 1.17.6 (oneAPI/OpenCL)

* intel-libvpl: Migrate DSM7 from MFX to Intel-VPL version 2.11.0

* ffmpeg6: Migrate DSM7 from MFX to Intel-VPL

* ffmpeg4: Re-include svt-hevc enablement patch

* ffmpeg5: Re-enable SVT-HEVC and disable conflicting stvav1 patches
  • Loading branch information
th0ma7 authored Jun 24, 2024
1 parent 6694c06 commit 0d15693
Show file tree
Hide file tree
Showing 188 changed files with 23,199 additions and 825 deletions.
4 changes: 2 additions & 2 deletions cross/comskip/Makefile
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
PKG_NAME = Comskip
PKG_VERS = 0.82.010
PKG_EXT = tar.gz
PKG_GIT_HASH = a041945ffa5dc0c53119e732f25e4d23b11ffa9e
PKG_GIT_HASH = 2ef86841cd84df66fe0e674f300ee49cef6e097a
PKG_DIST_NAME = $(PKG_GIT_HASH).$(PKG_EXT)
PKG_DIST_SITE = https://github.com/erikkaashoek/Comskip/archive
PKG_DIST_FILE = $(PKG_NAME)-git$(PKG_GIT_HASH).$(PKG_EXT)
PKG_DIR = $(PKG_NAME)-$(PKG_GIT_HASH)

DEPENDS = cross/argtable
OPTIONAL_DEPENDS = cross/ffmpeg4
OPTIONAL_DEPENDS = cross/ffmpeg5

HOMEPAGE = https://www.kaashoek.com/comskip
COMMENT = Commercial detector
Expand Down
6 changes: 3 additions & 3 deletions cross/comskip/digests
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Comskip-gita041945ffa5dc0c53119e732f25e4d23b11ffa9e.tar.gz SHA1 42151ea9077a639d66b894537b0ad3b8fa6d814f
Comskip-gita041945ffa5dc0c53119e732f25e4d23b11ffa9e.tar.gz SHA256 69c201820931b714fcf596a6156ffdfb2b698f51480c22551b00505eb9ba0a23
Comskip-gita041945ffa5dc0c53119e732f25e4d23b11ffa9e.tar.gz MD5 1ab49da01a8453617682af59ec7bb279
Comskip-git2ef86841cd84df66fe0e674f300ee49cef6e097a.tar.gz SHA1 800b38a910a6042253568773c140e22baf00c392
Comskip-git2ef86841cd84df66fe0e674f300ee49cef6e097a.tar.gz SHA256 642d26c0a49647a2f5fc3746150a5a83ad4c6d30b2cd6b00acf1d4a590b43bfd
Comskip-git2ef86841cd84df66fe0e674f300ee49cef6e097a.tar.gz MD5 db67e13969a5d05388737cb75591ed16
2 changes: 1 addition & 1 deletion cross/dav1d/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
PKG_NAME = dav1d
PKG_VERS = 1.1.0
PKG_VERS = 1.4.2
PKG_EXT = tar.xz
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://download.videolan.org/pub/videolan/dav1d/$(PKG_VERS)
Expand Down
4 changes: 2 additions & 2 deletions cross/dav1d/PLIST
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
bin:bin/dav1d
lnk:lib/libdav1d.so
lnk:lib/libdav1d.so.6
lib:lib/libdav1d.so.6.8.0
lnk:lib/libdav1d.so.7
lib:lib/libdav1d.so.7.0.0
6 changes: 3 additions & 3 deletions cross/dav1d/digests
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
dav1d-1.1.0.tar.xz SHA1 f042e5e84a55a60ea439e6afd3e18e1dfcdb6d7b
dav1d-1.1.0.tar.xz SHA256 fb57aae7875f28c30fb3dbae4a3683d27e2f91dde09ce5c60c22cef9bc58dfd1
dav1d-1.1.0.tar.xz MD5 e98a56198b2f47dbd27c747e69a9e140
dav1d-1.4.2.tar.xz SHA1 6137672cb64714ab192fed167b852127eb45a2f8
dav1d-1.4.2.tar.xz SHA256 7392cf4c432734eebb383319b5e05e994bffdcdfe66f82287c38873601a4ef0b
dav1d-1.4.2.tar.xz MD5 cdfa07cb6641caad509ac8e46ae7aa2a
2 changes: 1 addition & 1 deletion cross/fdk-aac/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
PKG_NAME = fdk-aac
PKG_VERS = 2.0.2
PKG_VERS = 2.0.3
PKG_EXT = tar.gz
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://downloads.sourceforge.net/opencore-amr
Expand Down
2 changes: 1 addition & 1 deletion cross/fdk-aac/PLIST
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
lnk:lib/libfdk-aac.so
lnk:lib/libfdk-aac.so.2
lib:lib/libfdk-aac.so.2.0.2
lib:lib/libfdk-aac.so.2.0.3
6 changes: 3 additions & 3 deletions cross/fdk-aac/digests
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
fdk-aac-2.0.2.tar.gz SHA1 579b34e8174b4feb21a9c598695f5ff4a7ceef8c
fdk-aac-2.0.2.tar.gz SHA256 c9e8630cf9d433f3cead74906a1520d2223f89bcd3fa9254861017440b8eb22f
fdk-aac-2.0.2.tar.gz MD5 b41222194b31f570b3132bd622a9aef6
fdk-aac-2.0.3.tar.gz SHA1 29f5485a6ec718335243440600ff78418cd4765b
fdk-aac-2.0.3.tar.gz SHA256 829b6b89eef382409cda6857fd82af84fabb63417b08ede9ea7a553f811cb79e
fdk-aac-2.0.3.tar.gz MD5 f43e593991caefdce509ad837d3301bd
19 changes: 19 additions & 0 deletions cross/ffmpeg4/patches/2000-libsvtav1-0000-HOWTO.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
Project page: https://gitlab.com/AOMediaCodec/SVT-AV1
Patches: https://gitlab.com/AOMediaCodec/SVT-AV1/-/tree/master/ffmpeg_plugin?ref_type=heads

Extract svt-av1 git repository
$ git clone https://gitlab.com/AOMediaCodec/SVT-AV1.git

Modify patches to be in -p0 mode:
$ cd SVT-AV1/ffmpeg_plugin/n4.4/
$ sed -i -e 's?--- a/?--- ?1' \
-e 's?+++ b/?+++ ?1' \
*.patch

Rename the patches:
$ i=2001 && ls -1 *.patch | while read LINE; do echo $(printf "%04d" $i)-libsvtav1-$LINE; mv $LINE $(printf "%04d" $i)-libsvtav1-$LINE; let i++; done

Test the patches on a clean ffmpeg tree:
$ tar -jxvf ffmpeg-4.4.4.tar.bz2
$ cd ffmpeg-4.4.4/
$ ls -1d ~/SVT-AV1/ffmpeg_plugin/n4.4/20*.patch | while read LINE; do patch -p0 < $LINE; done
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
From 6b1121f90508fa02739fb8fa698e9e47d9949cf5 Mon Sep 17 00:00:00 2001
From: Limin Wang <[email protected]>
Date: Tue, 24 Aug 2021 18:27:07 +0800
Subject: [PATCH 01/25] avcodec/libsvtav1: Fix duplicate definition of
caps_internal
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Reviewed-by: Jan Ekström <[email protected]>
Signed-off-by: Limin Wang <[email protected]>
---
libavcodec/libsvtav1.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index cfd93a2484..138241b736 100644
--- libavcodec/libsvtav1.c
+++ libavcodec/libsvtav1.c
@@ -561,12 +561,11 @@ AVCodec ff_libsvtav1_encoder = {
.receive_packet = eb_receive_packet,
.close = eb_enc_close,
.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS,
- .caps_internal = FF_CODEC_CAP_AUTO_THREADS,
+ .caps_internal = FF_CODEC_CAP_AUTO_THREADS | FF_CODEC_CAP_INIT_CLEANUP,
.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P,
AV_PIX_FMT_YUV420P10,
AV_PIX_FMT_NONE },
.priv_class = &class,
.defaults = eb_enc_defaults,
- .caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.wrapper_name = "libsvtav1",
};
--
2.44.0

Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
From 46059c7636a8e16a61d41060fa13b15bbe283ad4 Mon Sep 17 00:00:00 2001
From: Limin Wang <[email protected]>
Date: Fri, 17 Sep 2021 10:02:02 +0800
Subject: [PATCH 02/25] avcodec/libsvtav1: make coded GOP type configurable
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Reviewed-by: Jan Ekström <[email protected]>
Signed-off-by: Limin Wang <[email protected]>
---
libavcodec/libsvtav1.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index 138241b736..f57cdba63a 100644
--- libavcodec/libsvtav1.c
+++ libavcodec/libsvtav1.c
@@ -210,7 +210,8 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
param->min_qp_allowed = avctx->qmin;
}

- param->intra_refresh_type = 2; /* Real keyframes only */
+ /* 2 = IDR, closed GOP, 1 = CRA, open GOP */
+ param->intra_refresh_type = avctx->flags & AV_CODEC_FLAG_CLOSED_GOP ? 2 : 1;

if (svt_enc->la_depth >= 0)
param->look_ahead_distance = svt_enc->la_depth;
@@ -545,6 +546,7 @@ static const AVClass class = {

static const AVCodecDefault eb_enc_defaults[] = {
{ "b", "7M" },
+ { "flags", "+cgop" },
{ "g", "-1" },
{ "qmin", "0" },
{ "qmax", "63" },
--
2.44.0

Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
From b8357cd00de896c7f5826544760f7b17ea9ee677 Mon Sep 17 00:00:00 2001
From: Limin Wang <[email protected]>
Date: Sat, 18 Sep 2021 08:24:17 +0800
Subject: [PATCH 03/25] avcodec/libsvtav1: Fix value range for rc mode
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Reviewed-by: Jan Ekström <[email protected]>
Signed-off-by: Limin Wang <[email protected]>
---
libavcodec/libsvtav1.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index f57cdba63a..173979756d 100644
--- libavcodec/libsvtav1.c
+++ libavcodec/libsvtav1.c
@@ -520,7 +520,7 @@ static const AVOption options[] = {
#undef LEVEL

{ "rc", "Bit rate control mode", OFFSET(rc_mode),
- AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 3, VE , "rc"},
+ AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 2, VE , "rc"},
{ "cqp", "Constant quantizer", 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, INT_MIN, INT_MAX, VE, "rc" },
{ "vbr", "Variable Bit Rate, use a target bitrate for the entire stream", 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, INT_MIN, INT_MAX, VE, "rc" },
{ "cvbr", "Constrained Variable Bit Rate, use a target bitrate for each GOP", 0, AV_OPT_TYPE_CONST,{ .i64 = 2 }, INT_MIN, INT_MAX, VE, "rc" },
--
2.44.0

Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
From 5162294f8af44787c387984749efec887b350335 Mon Sep 17 00:00:00 2001
From: Limin Wang <[email protected]>
Date: Sat, 25 Sep 2021 22:09:05 +0800
Subject: [PATCH 04/25] avcodec/libsvtav1: properly enforce CQP mode when set
in wrapper

SVT-AV1 seems to have switched their default from CQP to CRF in February,
so enforce the controlling option accordingly.

Signed-off-by: Limin Wang <[email protected]>
---
libavcodec/libsvtav1.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index 173979756d..24800d1eaf 100644
--- libavcodec/libsvtav1.c
+++ libavcodec/libsvtav1.c
@@ -205,6 +205,7 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
param->frame_rate_denominator = avctx->time_base.num * avctx->ticks_per_frame;
}

+ param->enable_tpl_la = !!param->rate_control_mode;
if (param->rate_control_mode) {
param->max_qp_allowed = avctx->qmax;
param->min_qp_allowed = avctx->qmin;
--
2.44.0

Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
From 2ea8a4b4ae29f382ec06c03ce050158af623193d Mon Sep 17 00:00:00 2001
From: James Almer <[email protected]>
Date: Wed, 16 Feb 2022 10:37:02 -0300
Subject: [PATCH 05/25] avcodec/libsvtav1: add a svtav1-params option to pass a
list of key=value parameters

Signed-off-by: James Almer <[email protected]>
---
doc/encoders.texi | 4 ++++
libavcodec/libsvtav1.c | 52 ++++++++++++++++++++++++++++++------------
2 files changed, 42 insertions(+), 14 deletions(-)

diff --git a/doc/encoders.texi b/doc/encoders.texi
index a92eb0eb2f..d6d0dc7080 100644
--- doc/encoders.texi
+++ doc/encoders.texi
@@ -1795,6 +1795,10 @@ Set log2 of the number of rows of tiles to use (0-6).
@item tile_columns
Set log2 of the number of columns of tiles to use (0-4).

+@item svtav1-params
+Set SVT-AV1 options using a list of @var{key}=@var{value} pairs separated
+by ":". See the SVT-AV1 encoder user guide for a list of accepted parameters.
+
@end table

@section libkvazaar
diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index 24800d1eaf..7c0b034d92 100644
--- libavcodec/libsvtav1.c
+++ libavcodec/libsvtav1.c
@@ -60,6 +60,7 @@ typedef struct SvtContext {
EOS_STATUS eos_flag;

// User options.
+ AVDictionary *svtav1_opts;
int hierarchical_level;
int la_depth;
int enc_mode;
@@ -151,6 +152,41 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
{
SvtContext *svt_enc = avctx->priv_data;
const AVPixFmtDescriptor *desc;
+ AVDictionaryEntry *en = NULL;
+
+ // Update param from options
+ param->hierarchical_levels = svt_enc->hierarchical_level;
+ param->enc_mode = svt_enc->enc_mode;
+ param->tier = svt_enc->tier;
+ param->rate_control_mode = svt_enc->rc_mode;
+ param->scene_change_detection = svt_enc->scd;
+ param->qp = svt_enc->qp;
+
+ if (svt_enc->la_depth >= 0)
+ param->look_ahead_distance = svt_enc->la_depth;
+
+ param->tile_columns = svt_enc->tile_columns;
+ param->tile_rows = svt_enc->tile_rows;
+
+#if SVT_AV1_CHECK_VERSION(0, 9, 1)
+ while ((en = av_dict_get(svt_enc->svtav1_opts, "", en, AV_DICT_IGNORE_SUFFIX))) {
+ EbErrorType ret = svt_av1_enc_parse_parameter(param, en->key, en->value);
+ if (ret != EB_ErrorNone) {
+ int level = (avctx->err_recognition & AV_EF_EXPLODE) ? AV_LOG_ERROR : AV_LOG_WARNING;
+ av_log(avctx, level, "Error parsing option %s: %s.\n", en->key, en->value);
+ if (avctx->err_recognition & AV_EF_EXPLODE)
+ return AVERROR(EINVAL);
+ }
+ }
+#else
+ if ((en = av_dict_get(svt_enc->svtav1_opts, "", NULL, AV_DICT_IGNORE_SUFFIX))) {
+ int level = (avctx->err_recognition & AV_EF_EXPLODE) ? AV_LOG_ERROR : AV_LOG_WARNING;
+ av_log(avctx, level, "svt-params needs libavcodec to be compiled with SVT-AV1 "
+ "headers >= 0.9.1.\n");
+ if (avctx->err_recognition & AV_EF_EXPLODE)
+ return AVERROR(ENOSYS);
+ }
+#endif

param->source_width = avctx->width;
param->source_height = avctx->height;
@@ -184,14 +220,6 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
param->profile = FF_PROFILE_AV1_HIGH;
}

- // Update param from options
- param->hierarchical_levels = svt_enc->hierarchical_level;
- param->enc_mode = svt_enc->enc_mode;
- param->tier = svt_enc->tier;
- param->rate_control_mode = svt_enc->rc_mode;
- param->scene_change_detection = svt_enc->scd;
- param->qp = svt_enc->qp;
-
param->target_bit_rate = avctx->bit_rate;

if (avctx->gop_size > 0)
@@ -214,12 +242,6 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
/* 2 = IDR, closed GOP, 1 = CRA, open GOP */
param->intra_refresh_type = avctx->flags & AV_CODEC_FLAG_CLOSED_GOP ? 2 : 1;

- if (svt_enc->la_depth >= 0)
- param->look_ahead_distance = svt_enc->la_depth;
-
- param->tile_columns = svt_enc->tile_columns;
- param->tile_rows = svt_enc->tile_rows;
-
return 0;
}

@@ -535,6 +557,8 @@ static const AVOption options[] = {
{ "tile_columns", "Log2 of number of tile columns to use", OFFSET(tile_columns), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 4, VE},
{ "tile_rows", "Log2 of number of tile rows to use", OFFSET(tile_rows), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 6, VE},

+ { "svtav1-params", "Set the SVT-AV1 configuration using a :-separated list of key=value parameters", OFFSET(svtav1_opts), AV_OPT_TYPE_DICT, { 0 }, 0, 0, VE },
+
{NULL},
};

--
2.44.0

Loading

0 comments on commit 0d15693

Please sign in to comment.