diff --git a/0001-avfilter-vf_libplacebo-remove-deprecated-field.patch b/0001-avfilter-vf_libplacebo-remove-deprecated-field.patch deleted file mode 100644 index 0819af4..0000000 --- a/0001-avfilter-vf_libplacebo-remove-deprecated-field.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 1231003c3c6d4839a9e838d06f8e16ee7690958f Mon Sep 17 00:00:00 2001 -From: Niklas Haas -Date: Mon, 13 Mar 2023 14:33:16 +0100 -Subject: [PATCH] avfilter/vf_libplacebo: remove deprecated field - -This has not been functional since a year ago, including in our current -minimum dependency of libplacebo (v4.192.0). It also causes build errors -against libplacebo v6, so it needs to be removed from the code. We can -keep the option around for now, but it should also be removed soon. - -Signed-off-by: Niklas Haas -Signed-off-by: James Almer ---- - doc/filters.texi | 3 --- - libavfilter/vf_libplacebo.c | 7 ++++--- - 2 files changed, 4 insertions(+), 6 deletions(-) - -diff --git a/doc/filters.texi b/doc/filters.texi -index 7a7b2ba4e79e..77b594f69cb1 100644 ---- a/doc/filters.texi -+++ b/doc/filters.texi -@@ -16242,9 +16242,6 @@ Disable linear light scaling. - @item disable_builtin - Disable built-in GPU sampling (forces LUT). - --@item force_icc_lut --Force the use of a full ICC 3DLUT for gamut mapping. -- - @item disable_fbos - Forcibly disable FBOs, resulting in loss of almost all functionality, but - offering the maximum possible speed. -diff --git a/libavfilter/vf_libplacebo.c b/libavfilter/vf_libplacebo.c -index d75723289069..757dc519e9ad 100644 ---- a/libavfilter/vf_libplacebo.c -+++ b/libavfilter/vf_libplacebo.c -@@ -97,7 +97,6 @@ typedef struct LibplaceboContext { - float polar_cutoff; - int disable_linear; - int disable_builtin; -- int force_icc_lut; - int force_dither; - int disable_fbos; - -@@ -139,6 +138,7 @@ typedef struct LibplaceboContext { - float desat_exp; - int gamut_warning; - int gamut_clipping; -+ int force_icc_lut; - #endif - - /* pl_dither_params */ -@@ -463,7 +463,6 @@ static int process_frames(AVFilterContext *avctx, AVFrame *out, AVFrame *in) - .polar_cutoff = s->polar_cutoff, - .disable_linear_scaling = s->disable_linear, - .disable_builtin_scalers = s->disable_builtin, -- .force_icc_lut = s->force_icc_lut, - .force_dither = s->force_dither, - .disable_fbos = s->disable_fbos, - }; -@@ -855,7 +854,9 @@ static const AVOption libplacebo_options[] = { - { "polar_cutoff", "Polar LUT cutoff", OFFSET(polar_cutoff), AV_OPT_TYPE_FLOAT, {.dbl = 0}, 0.0, 1.0, DYNAMIC }, - { "disable_linear", "Disable linear scaling", OFFSET(disable_linear), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, - { "disable_builtin", "Disable built-in scalers", OFFSET(disable_builtin), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, -- { "force_icc_lut", "Force the use of a full ICC 3DLUT for color mapping", OFFSET(force_icc_lut), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, -+#if FF_API_LIBPLACEBO_OPTS -+ { "force_icc_lut", "Deprecated, does nothing", OFFSET(force_icc_lut), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC | AV_OPT_FLAG_DEPRECATED }, -+#endif - { "force_dither", "Force dithering", OFFSET(force_dither), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, - { "disable_fbos", "Force-disable FBOs", OFFSET(disable_fbos), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, - { NULL }, --- -2.39.2 - diff --git a/0001-avfilter-vf_libplacebo-wrap-deprecated-opts-in-FF_AP.patch b/0001-avfilter-vf_libplacebo-wrap-deprecated-opts-in-FF_AP.patch deleted file mode 100644 index 2d2a939..0000000 --- a/0001-avfilter-vf_libplacebo-wrap-deprecated-opts-in-FF_AP.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 11eca6018c40f5ebe6af93cbc4b4dce447d8b3bc Mon Sep 17 00:00:00 2001 -From: Niklas Haas -Date: Mon, 13 Mar 2023 15:10:26 +0100 -Subject: [PATCH] avfilter/vf_libplacebo: wrap deprecated opts in FF_API define - -Signed-off-by: Niklas Haas -Signed-off-by: James Almer ---- - libavfilter/version_major.h | 2 ++ - libavfilter/vf_libplacebo.c | 8 ++++++++ - 2 files changed, 10 insertions(+) - -diff --git a/libavfilter/version_major.h b/libavfilter/version_major.h -index 899dfdb27dba..1decc4012ee0 100644 ---- a/libavfilter/version_major.h -+++ b/libavfilter/version_major.h -@@ -35,4 +35,6 @@ - * the public API and may change, break or disappear at any time. - */ - -+#define FF_API_LIBPLACEBO_OPTS (LIBAVFILTER_VERSION_MAJOR < 10) -+ - #endif /* AVFILTER_VERSION_MAJOR_H */ -diff --git a/libavfilter/vf_libplacebo.c b/libavfilter/vf_libplacebo.c -index 7cd495de2619..d75723289069 100644 ---- a/libavfilter/vf_libplacebo.c -+++ b/libavfilter/vf_libplacebo.c -@@ -132,11 +132,14 @@ typedef struct LibplaceboContext { - int inverse_tonemapping; - float crosstalk; - int tonemapping_lut_size; -+ -+#if FF_API_LIBPLACEBO_OPTS - /* for backwards compatibility */ - float desat_str; - float desat_exp; - int gamut_warning; - int gamut_clipping; -+#endif - - /* pl_dither_params */ - int dithering; -@@ -380,6 +383,7 @@ static int process_frames(AVFilterContext *avctx, AVFrame *out, AVFrame *in) - pl_rect2df_aspect_set(&target.crop, aspect, s->pad_crop_ratio); - } - -+#if FF_API_LIBPLACEBO_OPTS - /* backwards compatibility with older API */ - if (!tonemapping_mode && (s->desat_str >= 0.0f || s->desat_exp >= 0.0f)) { - float str = s->desat_str < 0.0f ? 0.9f : s->desat_str; -@@ -397,6 +401,7 @@ static int process_frames(AVFilterContext *avctx, AVFrame *out, AVFrame *in) - gamut_mode = PL_GAMUT_WARN; - if (s->gamut_clipping) - gamut_mode = PL_GAMUT_DESATURATE; -+#endif - - /* Update render params */ - params = (struct pl_render_params) { -@@ -818,11 +823,14 @@ static const AVOption libplacebo_options[] = { - { "inverse_tonemapping", "Inverse tone mapping (range expansion)", OFFSET(inverse_tonemapping), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, - { "tonemapping_crosstalk", "Crosstalk factor for tone-mapping", OFFSET(crosstalk), AV_OPT_TYPE_FLOAT, {.dbl = 0.04}, 0.0, 0.30, DYNAMIC }, - { "tonemapping_lut_size", "Tone-mapping LUT size", OFFSET(tonemapping_lut_size), AV_OPT_TYPE_INT, {.i64 = 256}, 2, 1024, DYNAMIC }, -+ -+#if FF_API_LIBPLACEBO_OPTS - /* deprecated options for backwards compatibility, defaulting to -1 to not override the new defaults */ - { "desaturation_strength", "Desaturation strength", OFFSET(desat_str), AV_OPT_TYPE_FLOAT, {.dbl = -1.0}, -1.0, 1.0, DYNAMIC | AV_OPT_FLAG_DEPRECATED }, - { "desaturation_exponent", "Desaturation exponent", OFFSET(desat_exp), AV_OPT_TYPE_FLOAT, {.dbl = -1.0}, -1.0, 10.0, DYNAMIC | AV_OPT_FLAG_DEPRECATED }, - { "gamut_warning", "Highlight out-of-gamut colors", OFFSET(gamut_warning), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC | AV_OPT_FLAG_DEPRECATED }, - { "gamut_clipping", "Enable colorimetric gamut clipping", OFFSET(gamut_clipping), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC | AV_OPT_FLAG_DEPRECATED }, -+#endif - - { "dithering", "Dither method to use", OFFSET(dithering), AV_OPT_TYPE_INT, {.i64 = PL_DITHER_BLUE_NOISE}, -1, PL_DITHER_METHOD_COUNT - 1, DYNAMIC, "dither" }, - { "none", "Disable dithering", 0, AV_OPT_TYPE_CONST, {.i64 = -1}, 0, 0, STATIC, "dither" }, --- -2.39.2 - diff --git a/0001-lavc-libopenh264-Drop-openh264-runtime-version-check.patch b/0001-lavc-libopenh264-Drop-openh264-runtime-version-check.patch new file mode 100644 index 0000000..7066f16 --- /dev/null +++ b/0001-lavc-libopenh264-Drop-openh264-runtime-version-check.patch @@ -0,0 +1,109 @@ +From a641e629591d68bd3edd99bddec623dc31295f6b Mon Sep 17 00:00:00 2001 +From: Kalev Lember +Date: Wed, 6 Dec 2023 14:37:34 +0100 +Subject: [PATCH] lavc/libopenh264: Drop openh264 runtime version checks + +Years ago, openh264 releases often changed their ABI without changing +the library soname. To avoid running into ABI issues, a version check +was added to lavc libopenh264 code to error out at runtime in case the +build time and runtime openh264 versions don't match. + +This should no longer be an issue with newer openh264 releases and we +can drop the runtime version check and rely on upstream doing the right +thing and bump the library soname if the ABI changes, similar to how +other libraries are consumed in ffmpeg. + +Almost all major distributions now include openh264 and this means there +are more eyes on ABI changes and issues are discovered and reported +quickly. See e.g. https://github.com/cisco/openh264/issues/3564 where an +ABI issue was quickly discovered and fixed. + +Relaxing the check allows downstream distributions to build ffmpeg +against e.g. openh264 2.3.1 and ship an update to ABI-compatible +openh264 2.4.0, without needing to coordinate a lock step update between +ffmpeg and openh264 (which can be difficult if openh264 is distributed +by Cisco and ffmpeg comes from the distro, such as is the case for +Fedora). + +Signed-off-by: Kalev Lember +--- + libavcodec/libopenh264.c | 15 --------------- + libavcodec/libopenh264.h | 2 -- + libavcodec/libopenh264dec.c | 4 ---- + libavcodec/libopenh264enc.c | 4 ---- + 4 files changed, 25 deletions(-) + +diff --git a/libavcodec/libopenh264.c b/libavcodec/libopenh264.c +index 0f6d28ed88..c80c85ea8b 100644 +--- a/libavcodec/libopenh264.c ++++ b/libavcodec/libopenh264.c +@@ -46,18 +46,3 @@ void ff_libopenh264_trace_callback(void *ctx, int level, const char *msg) + int equiv_ffmpeg_log_level = libopenh264_to_ffmpeg_log_level(level); + av_log(ctx, equiv_ffmpeg_log_level, "%s\n", msg); + } +- +-int ff_libopenh264_check_version(void *logctx) +-{ +- // Mingw GCC < 4.7 on x86_32 uses an incorrect/buggy ABI for the WelsGetCodecVersion +- // function (for functions returning larger structs), thus skip the check in those +- // configurations. +-#if !defined(_WIN32) || !defined(__GNUC__) || !ARCH_X86_32 || AV_GCC_VERSION_AT_LEAST(4, 7) +- OpenH264Version libver = WelsGetCodecVersion(); +- if (memcmp(&libver, &g_stCodecVersion, sizeof(libver))) { +- av_log(logctx, AV_LOG_ERROR, "Incorrect library version loaded\n"); +- return AVERROR(EINVAL); +- } +-#endif +- return 0; +-} +diff --git a/libavcodec/libopenh264.h b/libavcodec/libopenh264.h +index dbb9c5d429..0b462d6fdc 100644 +--- a/libavcodec/libopenh264.h ++++ b/libavcodec/libopenh264.h +@@ -34,6 +34,4 @@ + + void ff_libopenh264_trace_callback(void *ctx, int level, const char *msg); + +-int ff_libopenh264_check_version(void *logctx); +- + #endif /* AVCODEC_LIBOPENH264_H */ +diff --git a/libavcodec/libopenh264dec.c b/libavcodec/libopenh264dec.c +index 7d650ae03e..b6a9bba2dc 100644 +--- a/libavcodec/libopenh264dec.c ++++ b/libavcodec/libopenh264dec.c +@@ -52,13 +52,9 @@ static av_cold int svc_decode_init(AVCodecContext *avctx) + { + SVCContext *s = avctx->priv_data; + SDecodingParam param = { 0 }; +- int err; + int log_level; + WelsTraceCallback callback_function; + +- if ((err = ff_libopenh264_check_version(avctx)) < 0) +- return AVERROR_DECODER_NOT_FOUND; +- + if (WelsCreateDecoder(&s->decoder)) { + av_log(avctx, AV_LOG_ERROR, "Unable to create decoder\n"); + return AVERROR_UNKNOWN; +diff --git a/libavcodec/libopenh264enc.c b/libavcodec/libopenh264enc.c +index f518d0894e..6f231d22b2 100644 +--- a/libavcodec/libopenh264enc.c ++++ b/libavcodec/libopenh264enc.c +@@ -110,14 +110,10 @@ static av_cold int svc_encode_init(AVCodecContext *avctx) + { + SVCContext *s = avctx->priv_data; + SEncParamExt param = { 0 }; +- int err; + int log_level; + WelsTraceCallback callback_function; + AVCPBProperties *props; + +- if ((err = ff_libopenh264_check_version(avctx)) < 0) +- return AVERROR_ENCODER_NOT_FOUND; +- + if (WelsCreateSVCEncoder(&s->encoder)) { + av_log(avctx, AV_LOG_ERROR, "Unable to create encoder\n"); + return AVERROR_UNKNOWN; +-- +2.43.0 + diff --git a/enable_decoders b/enable_decoders index 296c3a3..ea1c38e 100644 --- a/enable_decoders +++ b/enable_decoders @@ -1,5 +1,4 @@ ## module name # reason for enablement in ffmpeg (usually there is another package that already got legal review) -aac aasc libfdk_aac # fdk-aac-free ac3 diff --git a/enable_encoders b/enable_encoders index e0f3cfb..10dd53a 100644 --- a/enable_encoders +++ b/enable_encoders @@ -30,6 +30,7 @@ asv2 av1_amf av1_nvenc av1_qsv +av1_vaapi ayuv # trival bitpacked # trivial bmp # trivial diff --git a/ffmpeg-CVE-2023-49528.patch b/ffmpeg-CVE-2023-49528.patch new file mode 100644 index 0000000..c42275c --- /dev/null +++ b/ffmpeg-CVE-2023-49528.patch @@ -0,0 +1,54 @@ +From 2d9ed64859c9887d0504cd71dbd5b2c15e14251a Mon Sep 17 00:00:00 2001 +From: Paul B Mahol +Date: Sat, 25 Nov 2023 12:54:28 +0100 +Subject: [PATCH] avfilter/af_dialoguenhance: fix overreads + +--- + libavfilter/af_dialoguenhance.c | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +diff --git a/libavfilter/af_dialoguenhance.c b/libavfilter/af_dialoguenhance.c +index 1762ea7cde..29c8ab10a7 100644 +--- a/libavfilter/af_dialoguenhance.c ++++ b/libavfilter/af_dialoguenhance.c +@@ -96,12 +96,12 @@ static int config_input(AVFilterLink *inlink) + if (!s->window) + return AVERROR(ENOMEM); + +- s->in_frame = ff_get_audio_buffer(inlink, s->fft_size * 4); +- s->center_frame = ff_get_audio_buffer(inlink, s->fft_size * 4); +- s->out_dist_frame = ff_get_audio_buffer(inlink, s->fft_size * 4); +- s->windowed_frame = ff_get_audio_buffer(inlink, s->fft_size * 4); +- s->windowed_out = ff_get_audio_buffer(inlink, s->fft_size * 4); +- s->windowed_prev = ff_get_audio_buffer(inlink, s->fft_size * 4); ++ s->in_frame = ff_get_audio_buffer(inlink, (s->fft_size + 2) * 2); ++ s->center_frame = ff_get_audio_buffer(inlink, (s->fft_size + 2) * 2); ++ s->out_dist_frame = ff_get_audio_buffer(inlink, (s->fft_size + 2) * 2); ++ s->windowed_frame = ff_get_audio_buffer(inlink, (s->fft_size + 2) * 2); ++ s->windowed_out = ff_get_audio_buffer(inlink, (s->fft_size + 2) * 2); ++ s->windowed_prev = ff_get_audio_buffer(inlink, (s->fft_size + 2) * 2); + if (!s->in_frame || !s->windowed_out || !s->windowed_prev || + !s->out_dist_frame || !s->windowed_frame || !s->center_frame) + return AVERROR(ENOMEM); +@@ -250,6 +250,7 @@ static int de_stereo(AVFilterContext *ctx, AVFrame *out) + float *right_osamples = (float *)out->extended_data[1]; + float *center_osamples = (float *)out->extended_data[2]; + const int offset = s->fft_size - s->overlap; ++ const int nb_samples = FFMIN(s->overlap, s->in->nb_samples); + float vad; + + // shift in/out buffers +@@ -258,8 +259,8 @@ static int de_stereo(AVFilterContext *ctx, AVFrame *out) + memmove(left_out, &left_out[s->overlap], offset * sizeof(float)); + memmove(right_out, &right_out[s->overlap], offset * sizeof(float)); + +- memcpy(&left_in[offset], left_samples, s->overlap * sizeof(float)); +- memcpy(&right_in[offset], right_samples, s->overlap * sizeof(float)); ++ memcpy(&left_in[offset], left_samples, nb_samples * sizeof(float)); ++ memcpy(&right_in[offset], right_samples, nb_samples * sizeof(float)); + memset(&left_out[offset], 0, s->overlap * sizeof(float)); + memset(&right_out[offset], 0, s->overlap * sizeof(float)); + +-- +2.25.1 + diff --git a/ffmpeg-allow-fdk-aac-free.patch b/ffmpeg-allow-fdk-aac-free.patch index 0cc91f1..3b87cce 100644 --- a/ffmpeg-allow-fdk-aac-free.patch +++ b/ffmpeg-allow-fdk-aac-free.patch @@ -1,3 +1,5 @@ +From: Andreas Schneider + fdk-aac-free-devel is GPL compatible See https://bugzilla.redhat.com/show_bug.cgi?id=1501522#c112 diff --git a/ffmpeg-c99.patch b/ffmpeg-c99.patch new file mode 100644 index 0000000..0ae4d8a --- /dev/null +++ b/ffmpeg-c99.patch @@ -0,0 +1,67 @@ +From 42982b5a5d461530a792e69b3e8abdd9d6d67052 Mon Sep 17 00:00:00 2001 +From: Frank Plowman +Date: Fri, 22 Dec 2023 12:00:01 +0000 +Subject: [PATCH] avformat/ffrtmpcrypt: Fix int-conversion warning +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Content-type: text/plain + +The gcrypt definition of `bn_new` used to use the return statement +on errors, with an AVERROR return value, regardless of the signature +of the function where the macro is used - it is called in +`dh_generate_key` and `ff_dh_init` which return pointers. As a result, +compiling with gcrypt and the ffrtmpcrypt protocol resulted in an +int-conversion warning. GCC 14 may upgrade these to errors [1]. + +This patch fixes the problem by changing the macro to remove `AVERROR` +and instead set `bn` to null if the allocation fails. This is the +behaviour of all the other `bn_new` implementations and so the result is +already checked at all the callsites. AFAICT, this should be the only +change needed to get ffmpeg off Fedora's naughty list of projects with +warnings which may be upgraded to errors in GCC 14 [2]. + +[1]: https://gcc.gnu.org/pipermail/gcc/2023-May/241264.html +[2]: https://www.mail-archive.com/devel@lists.fedoraproject.org/msg196024.html + +Signed-off-by: Frank Plowman +Signed-off-by: Martin Storsjö +--- + libavformat/rtmpdh.c | 21 ++++++++++++--------- + 1 file changed, 12 insertions(+), 9 deletions(-) + +diff --git a/libavformat/rtmpdh.c b/libavformat/rtmpdh.c +index 5ddae537a1..6a6c2ccd87 100644 +--- a/libavformat/rtmpdh.c ++++ b/libavformat/rtmpdh.c +@@ -113,15 +113,18 @@ static int bn_modexp(FFBigNum bn, FFBigNum y, FFBigNum q, FFBigNum p) + return 0; + } + #elif CONFIG_GCRYPT +-#define bn_new(bn) \ +- do { \ +- if (!gcry_control(GCRYCTL_INITIALIZATION_FINISHED_P)) { \ +- if (!gcry_check_version("1.5.4")) \ +- return AVERROR(EINVAL); \ +- gcry_control(GCRYCTL_DISABLE_SECMEM, 0); \ +- gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0); \ +- } \ +- bn = gcry_mpi_new(1); \ ++#define bn_new(bn) \ ++ do { \ ++ if (!gcry_control(GCRYCTL_INITIALIZATION_FINISHED_P)) { \ ++ if (gcry_check_version("1.5.4")) { \ ++ gcry_control(GCRYCTL_DISABLE_SECMEM, 0); \ ++ gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0); \ ++ } \ ++ } \ ++ if (gcry_control(GCRYCTL_INITIALIZATION_FINISHED_P)) \ ++ bn = gcry_mpi_new(1); \ ++ else \ ++ bn = NULL; \ + } while (0) + #define bn_free(bn) gcry_mpi_release(bn) + #define bn_set_word(bn, w) gcry_mpi_set_ui(bn, w) +-- +2.43.0 + diff --git a/ffmpeg-chromium.patch b/ffmpeg-chromium.patch new file mode 100644 index 0000000..2160609 --- /dev/null +++ b/ffmpeg-chromium.patch @@ -0,0 +1,46 @@ +From d32aacab65a322b66d6a1b48f6cdb03e42bde0f9 Mon Sep 17 00:00:00 2001 +From: Frank Liberato +Date: Wed, 7 Jul 2021 19:01:22 -0700 +Subject: [PATCH] Add av_stream_get_first_dts for Chromium + +--- + libavformat/avformat.h | 4 ++++ + libavformat/utils.c | 7 +++++++ + 2 files changed, 11 insertions(+) + +diff --git a/libavformat/avformat.h b/libavformat/avformat.h +index 1916aa2dc5..e6682849fa 100644 +--- a/libavformat/avformat.h ++++ b/libavformat/avformat.h +@@ -1019,6 +1019,10 @@ attribute_deprecated + int64_t av_stream_get_end_pts(const AVStream *st); + #endif + ++// Chromium: We use the internal field first_dts vvv ++int64_t av_stream_get_first_dts(const AVStream *st); ++// Chromium: We use the internal field first_dts ^^^ ++ + #define AV_PROGRAM_RUNNING 1 + + /** +diff --git a/libavformat/utils.c b/libavformat/utils.c +index cf4d68bff9..7d750abf88 100644 +--- a/libavformat/utils.c ++++ b/libavformat/utils.c +@@ -55,6 +55,13 @@ int ff_unlock_avformat(void) + return ff_mutex_unlock(&avformat_mutex) ? -1 : 0; + } + ++// Chromium: We use the internal field first_dts vvv ++int64_t av_stream_get_first_dts(const AVStream *st) ++{ ++ return cffstream(st)->first_dts; ++} ++// Chromium: We use the internal field first_dts ^^^ ++ + /* an arbitrarily chosen "sane" max packet size -- 50M */ + #define SANE_CHUNK_SIZE (50000000) + +-- +2.41.0 + diff --git a/ffmpeg-dlopen-openh264.patch b/ffmpeg-dlopen-openh264.patch index 334e07f..329606b 100644 --- a/ffmpeg-dlopen-openh264.patch +++ b/ffmpeg-dlopen-openh264.patch @@ -1,7 +1,7 @@ -From 4739b0c97b3378bdaf737171777fe9a71a53eff1 Mon Sep 17 00:00:00 2001 +From 3daa49cae0bfc3de434dd28c3a23ae877f0639db Mon Sep 17 00:00:00 2001 From: Neal Gompa -Date: Wed, 12 Oct 2022 09:41:27 -0400 -Subject: [PATCH] avcodec/openh264: Add the ability to dlopen() OpenH264 +Date: Thu, 4 Jan 2024 10:21:17 -0500 +Subject: [PATCH] lavc/openh264: Add the ability to dlopen() OpenH264 We can't directly depend on OpenH264, but we can weakly link to it and gracefully expose the capability. @@ -14,20 +14,20 @@ Signed-off-by: Neal Gompa --- configure | 3 + libavcodec/Makefile | 1 + - libavcodec/libopenh264.c | 18 +++- + libavcodec/libopenh264.c | 5 ++ libavcodec/libopenh264_dlopen.c | 147 ++++++++++++++++++++++++++++++++ libavcodec/libopenh264_dlopen.h | 58 +++++++++++++ libavcodec/libopenh264dec.c | 10 +++ libavcodec/libopenh264enc.c | 10 +++ - 7 files changed, 245 insertions(+), 2 deletions(-) + 7 files changed, 234 insertions(+) create mode 100644 libavcodec/libopenh264_dlopen.c create mode 100644 libavcodec/libopenh264_dlopen.h diff --git a/configure b/configure -index ba5793b2ff..8855c1a908 100755 +index 1f0b9497cb..97fa4a5d6a 100755 --- a/configure +++ b/configure -@@ -251,6 +251,7 @@ External library support: +@@ -249,6 +249,7 @@ External library support: --enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no] --enable-libopencv enable video filtering via libopencv [no] --enable-libopenh264 enable H.264 encoding via OpenH264 [no] @@ -35,7 +35,7 @@ index ba5793b2ff..8855c1a908 100755 --enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no] --enable-libopenmpt enable decoding tracked files via libopenmpt [no] --enable-libopenvino enable OpenVINO as a DNN module backend -@@ -1844,6 +1845,7 @@ EXTERNAL_LIBRARY_LIST=" +@@ -1871,6 +1872,7 @@ EXTERNAL_LIBRARY_LIST=" libmysofa libopencv libopenh264 @@ -43,7 +43,7 @@ index ba5793b2ff..8855c1a908 100755 libopenjpeg libopenmpt libopenvino -@@ -6596,6 +6598,7 @@ enabled libopencv && { check_headers opencv2/core/core_c.h && +@@ -6765,6 +6767,7 @@ enabled libopencv && { check_headers opencv2/core/core_c.h && require libopencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } || require_pkg_config libopencv opencv opencv/cxcore.h cvCreateImageHeader; } enabled libopenh264 && require_pkg_config libopenh264 openh264 wels/codec_api.h WelsGetCodecVersion @@ -52,19 +52,19 @@ index ba5793b2ff..8855c1a908 100755 { require_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } } enabled libopenmpt && require_pkg_config libopenmpt "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create -lstdc++ && append libopenmpt_extralibs "-lstdc++" diff --git a/libavcodec/Makefile b/libavcodec/Makefile -index 457ec58377..08a26fba5f 100644 +index 580a8d6b54..c27d229f6d 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile -@@ -1075,6 +1075,7 @@ OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o +@@ -1115,6 +1115,7 @@ OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o OBJS-$(CONFIG_LIBOPENCORE_AMRNB_DECODER) += libopencore-amr.o OBJS-$(CONFIG_LIBOPENCORE_AMRNB_ENCODER) += libopencore-amr.o OBJS-$(CONFIG_LIBOPENCORE_AMRWB_DECODER) += libopencore-amr.o +OBJS-$(CONFIG_LIBOPENH264_DLOPEN) += libopenh264_dlopen.o OBJS-$(CONFIG_LIBOPENH264_DECODER) += libopenh264dec.o libopenh264.o OBJS-$(CONFIG_LIBOPENH264_ENCODER) += libopenh264enc.o libopenh264.o - OBJS-$(CONFIG_LIBOPENJPEG_DECODER) += libopenjpegdec.o + OBJS-$(CONFIG_LIBOPENJPEG_ENCODER) += libopenjpegenc.o diff --git a/libavcodec/libopenh264.c b/libavcodec/libopenh264.c -index 0f6d28ed88..a124c3fa1e 100644 +index c80c85ea8b..128c3d9846 100644 --- a/libavcodec/libopenh264.c +++ b/libavcodec/libopenh264.c @@ -20,8 +20,13 @@ @@ -81,26 +81,6 @@ index 0f6d28ed88..a124c3fa1e 100644 #include "libavutil/error.h" #include "libavutil/log.h" -@@ -52,8 +57,17 @@ int ff_libopenh264_check_version(void *logctx) - // Mingw GCC < 4.7 on x86_32 uses an incorrect/buggy ABI for the WelsGetCodecVersion - // function (for functions returning larger structs), thus skip the check in those - // configurations. --#if !defined(_WIN32) || !defined(__GNUC__) || !ARCH_X86_32 || AV_GCC_VERSION_AT_LEAST(4, 7) -- OpenH264Version libver = WelsGetCodecVersion(); -+ // Also, for dlopened OpenH264, we should not do the version check. It's too punitive. -+#if !defined(_WIN32) || !defined(__GNUC__) || !ARCH_X86_32 || AV_GCC_VERSION_AT_LEAST(4, 7) || !defined(CONFIG_LIBOPENH264_DLOPEN) -+ OpenH264Version libver; -+ -+#ifdef CONFIG_LIBOPENH264_DLOPEN -+ if (loadLibOpenH264(logctx)) { -+ return AVERROR_EXTERNAL; -+ } -+#endif -+ -+ libver = WelsGetCodecVersion(); - if (memcmp(&libver, &g_stCodecVersion, sizeof(libver))) { - av_log(logctx, AV_LOG_ERROR, "Incorrect library version loaded\n"); - return AVERROR(EINVAL); diff --git a/libavcodec/libopenh264_dlopen.c b/libavcodec/libopenh264_dlopen.c new file mode 100644 index 0000000000..49ea8ff44f @@ -319,7 +299,7 @@ index 0000000000..d7d8bb7cad + +#endif /* HAVE_LIBOPENH264_DLOPEN_H */ diff --git a/libavcodec/libopenh264dec.c b/libavcodec/libopenh264dec.c -index 007f86b619..57aa3bc1d1 100644 +index b6a9bba2dc..e042189161 100644 --- a/libavcodec/libopenh264dec.c +++ b/libavcodec/libopenh264dec.c @@ -19,8 +19,12 @@ @@ -335,7 +315,7 @@ index 007f86b619..57aa3bc1d1 100644 #include "libavutil/common.h" #include "libavutil/fifo.h" -@@ -56,6 +60,12 @@ static av_cold int svc_decode_init(AVCodecContext *avctx) +@@ -55,6 +59,12 @@ static av_cold int svc_decode_init(AVCodecContext *avctx) int log_level; WelsTraceCallback callback_function; @@ -345,11 +325,11 @@ index 007f86b619..57aa3bc1d1 100644 + } +#endif + - if ((err = ff_libopenh264_check_version(avctx)) < 0) - return AVERROR_DECODER_NOT_FOUND; - + if (WelsCreateDecoder(&s->decoder)) { + av_log(avctx, AV_LOG_ERROR, "Unable to create decoder\n"); + return AVERROR_UNKNOWN; diff --git a/libavcodec/libopenh264enc.c b/libavcodec/libopenh264enc.c -index db252aace1..75289678da 100644 +index 6f231d22b2..3f0e990d80 100644 --- a/libavcodec/libopenh264enc.c +++ b/libavcodec/libopenh264enc.c @@ -19,8 +19,12 @@ @@ -365,7 +345,7 @@ index db252aace1..75289678da 100644 #include "libavutil/attributes.h" #include "libavutil/common.h" -@@ -137,6 +141,12 @@ static av_cold int svc_encode_init(AVCodecContext *avctx) +@@ -114,6 +118,12 @@ static av_cold int svc_encode_init(AVCodecContext *avctx) WelsTraceCallback callback_function; AVCPBProperties *props; @@ -375,9 +355,9 @@ index db252aace1..75289678da 100644 + } +#endif + - if ((err = ff_libopenh264_check_version(avctx)) < 0) - return AVERROR_ENCODER_NOT_FOUND; - + if (WelsCreateSVCEncoder(&s->encoder)) { + av_log(avctx, AV_LOG_ERROR, "Unable to create encoder\n"); + return AVERROR_UNKNOWN; -- -2.36.1 +2.43.0 diff --git a/ffmpeg-new-coder-errors.patch b/ffmpeg-new-coder-errors.patch deleted file mode 100644 index a08b6a9..0000000 --- a/ffmpeg-new-coder-errors.patch +++ /dev/null @@ -1,37 +0,0 @@ -From: Jan Engelhardt -Date: 2016-04-10 23:23:53.138440254 +0200 - -Improve the error messages a bit to say what's really going on -(in light of a reduced build). - ---- - fftools/ffmpeg.c | 2 +- - fftools/ffmpeg_filter.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -Index: ffmpeg-6.0/fftools/ffmpeg.c -=================================================================== ---- ffmpeg-6.0.orig/fftools/ffmpeg.c -+++ ffmpeg-6.0/fftools/ffmpeg.c -@@ -2797,7 +2797,7 @@ static int init_input_stream(InputStream - if (ist->decoding_needed) { - const AVCodec *codec = ist->dec; - if (!codec) { -- snprintf(error, error_len, "Decoder (codec %s) not found for input stream #%d:%d", -+ snprintf(error, error_len, "This build of ffmpeg does not include a \"%s\" decoder needed for input stream #%d:%d.", - avcodec_get_name(ist->dec_ctx->codec_id), ist->file_index, ist->st->index); - return AVERROR(EINVAL); - } -Index: ffmpeg-6.0/fftools/ffmpeg_filter.c -=================================================================== ---- ffmpeg-6.0.orig/fftools/ffmpeg_filter.c -+++ ffmpeg-6.0/fftools/ffmpeg_filter.c -@@ -1064,7 +1064,7 @@ static int configure_input_filter(Filter - { - if (!ifilter->ist->dec) { - av_log(NULL, AV_LOG_ERROR, -- "No decoder for stream #%d:%d, filtering impossible\n", -+ "This build of ffmpeg does not have a suitable decoder for stream #%d:%d enabled, filtering impossible\n", - ifilter->ist->file_index, ifilter->ist->st->index); - return AVERROR_DECODER_NOT_FOUND; - } diff --git a/ffmpeg.spec b/ffmpeg.spec index bee14b9..0479a32 100644 --- a/ffmpeg.spec +++ b/ffmpeg.spec @@ -91,8 +91,8 @@ Name: ffmpeg %global pkg_name %{name}%{?pkg_suffix} -Version: 6.0 -Release: 11%{?dist} +Version: 6.1.2 +Release: 1%{?dist} Summary: A complete solution to record, convert and stream audio and video License: GPL-3.0-or-later URL: https://ffmpeg.org/ @@ -113,18 +113,24 @@ Source93: ffmpeg_find_free_source_headers.sh # Fixes for reduced codec selection on free build Patch1: ffmpeg-codec-choice.patch -# Better error messages for free build -Patch2: ffmpeg-new-coder-errors.patch # Allow to build with fdk-aac-free # See https://bugzilla.redhat.com/show_bug.cgi?id=1501522#c112 -Patch3: ffmpeg-allow-fdk-aac-free.patch -# Backport upstream patches for libplacebo v5.264 -Patch4: 0001-avfilter-vf_libplacebo-wrap-deprecated-opts-in-FF_AP.patch -Patch5: 0001-avfilter-vf_libplacebo-remove-deprecated-field.patch +Patch2: ffmpeg-allow-fdk-aac-free.patch +# Drop openh264 runtime version checks +# https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=10211 +Patch4: 0001-lavc-libopenh264-Drop-openh264-runtime-version-check.patch +Patch5: ffmpeg-c99.patch +Patch6: https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/2d9ed64859c9887d0504cd71dbd5b2c15e14251a#/ffmpeg-CVE-2023-49528.patch # Set up dlopen for openh264 Patch1001: ffmpeg-dlopen-openh264.patch +# Add first_dts getter to libavformat for Chromium +# See: https://bugzilla.redhat.com/show_bug.cgi?id=2240127 +# Reference: https://crbug.com/1306560 +Patch1002: ffmpeg-chromium.patch + + Requires: libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: libavdevice%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: libavfilter%{?pkg_suffix}%{_isa} = %{version}-%{release} @@ -141,6 +147,7 @@ BuildRequires: flite-devel >= 2.2 %endif BuildRequires: game-music-emu-devel BuildRequires: gcc +BuildRequires: git-core BuildRequires: gnupg2 BuildRequires: gsm-devel BuildRequires: ladspa-devel @@ -231,7 +238,7 @@ BuildRequires: pkgconfig(vidstab) BuildRequires: pkgconfig(vorbis) BuildRequires: pkgconfig(vo-amrwbenc) BuildRequires: pkgconfig(vpx) -BuildRequires: pkgconfig(vulkan) +BuildRequires: pkgconfig(vulkan) >= 1.3.255 BuildRequires: pkgconfig(wavpack) BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(xcb-render) @@ -331,6 +338,7 @@ Requires: libswresample%{?pkg_suffix}%{_isa} = %{version}-%{release} ## Note, we can do this because openh264 is provided in a default-enabled ## third party repository provided by Cisco. Recommends: libopenh264.so.%{openh264_soversion}%{?lib64_suffix} +Suggests: openh264%{_isa} %description -n libavcodec%{?pkg_suffix} The libavcodec library provides a generic encoding/decoding framework @@ -537,10 +545,10 @@ This subpackage contains the headers for FFmpeg libswscale. %prep %if %{with upstream_tarball} -gpgv2 --quiet --keyring %{SOURCE3} %{SOURCE2} %{SOURCE0} +%{gpgverify} --keyring='%{SOURCE3}' --signature='%{SOURCE2}' --data='%{SOURCE0}' %endif -%autosetup -a1 -p1 +%autosetup -a1 -S git_am install -m 0644 %{SOURCE20} enable_decoders install -m 0644 %{SOURCE21} enable_encoders # fix -O3 -g in host_cflags @@ -854,6 +862,41 @@ rm -rf %{buildroot}%{_datadir}/%{name}/examples %{_mandir}/man3/libswscale.3* %changelog +* Sat Aug 24 2024 Fabio Valentini - 6.1.2-1 +- Update to 6.1.2 + +* Wed Jun 19 2024 Dominik Mierzejewski - 6.1.1-4 +- Backport fix for CVE-2023-49528 + +* Mon Jan 15 2024 Neal Gompa - 6.1.1-3 +- Add missing files for some of the libraries to fix riscv64 builds + +* Fri Jan 05 2024 Florian Weimer - 6.1.1-2 +- Backport upstream patch to fix C compatibility issues + +* Thu Jan 04 2024 Neal Gompa - 6.1.1-1 +- Update to 6.1.1 + +* Thu Jan 04 2024 Neal Gompa - 6.1-1 +- Rebase to 6.1 + +* Wed Dec 06 2023 Kalev Lember - 6.0.1-2 +- Prefer openh264 over noopenh264 +- Backport upstream patch to drop openh264 runtime version checks + +* Sat Nov 11 2023 Neal Gompa - 6.0.1-1 +- Update to 6.0.1 +- Add ffmpeg chromium support patch (#2240127) +- Use git to apply patches + +* Fri Nov 10 2023 Neal Gompa - 6.0-13 +- Add patches to support enhanced RTMP and AV1 encoding through VA-API +- Force AAC decoding through fdk-aac-free + +* Sun Oct 08 2023 Dominik Mierzejewski - 6.0-12 +- Backport upstream patch to fix segfault when passing non-existent filter + option (rfbz#6773) + * Sat Aug 05 2023 Richard Shaw - 6.0-11 - Rebuild for codec2. diff --git a/ffmpeg_free_sources b/ffmpeg_free_sources index 0354de5..ee8be40 100644 --- a/ffmpeg_free_sources +++ b/ffmpeg_free_sources @@ -29,8 +29,6 @@ doc/codecs.texi doc/decoders.texi doc/default.css doc/demuxers.texi -doc/dev_community/community.md -doc/dev_community/resolution_process.md doc/developer.texi doc/devices.texi doc/doxy-wrapper.sh @@ -138,7 +136,9 @@ fftools/cmdutils.c fftools/cmdutils.h fftools/ffmpeg.c fftools/ffmpeg.h +fftools/ffmpeg_dec.c fftools/ffmpeg_demux.c +fftools/ffmpeg_enc.c fftools/ffmpeg_filter.c fftools/ffmpeg_hw.c fftools/ffmpeg_mux.c @@ -212,10 +212,7 @@ libavcodec/aandcttab.h libavcodec/aarch64/Makefile libavcodec/aarch64/aacpsdsp_init_aarch64.c libavcodec/aarch64/aacpsdsp_neon.S -libavcodec/aarch64/asm-offsets.h libavcodec/aarch64/cabac.h -libavcodec/aarch64/fft_init_aarch64.c -libavcodec/aarch64/fft_neon.S libavcodec/aarch64/fmtconvert_init.c libavcodec/aarch64/fmtconvert_neon.S libavcodec/aarch64/h264chroma_init_aarch64.c @@ -232,7 +229,6 @@ libavcodec/aarch64/hpeldsp_neon.S libavcodec/aarch64/idct.h libavcodec/aarch64/idctdsp_init_aarch64.c libavcodec/aarch64/idctdsp_neon.S -libavcodec/aarch64/mdct_neon.S libavcodec/aarch64/me_cmp_init_aarch64.c libavcodec/aarch64/me_cmp_neon.S libavcodec/aarch64/mpegaudiodsp_init.c @@ -358,9 +354,6 @@ libavcodec/arm/blockdsp_init_neon.c libavcodec/arm/blockdsp_neon.S libavcodec/arm/cabac.h libavcodec/arm/dca.h -libavcodec/arm/fft_init_arm.c -libavcodec/arm/fft_neon.S -libavcodec/arm/fft_vfp.S libavcodec/arm/flacdsp_arm.S libavcodec/arm/flacdsp_init_arm.c libavcodec/arm/fmtconvert_init_arm.c @@ -398,8 +391,6 @@ libavcodec/arm/jrevdct_arm.S libavcodec/arm/lossless_audiodsp_init_arm.c libavcodec/arm/lossless_audiodsp_neon.S libavcodec/arm/mathops.h -libavcodec/arm/mdct_neon.S -libavcodec/arm/mdct_vfp.S libavcodec/arm/me_cmp_armv6.S libavcodec/arm/me_cmp_init_arm.c libavcodec/arm/mlpdsp_armv5te.S @@ -419,8 +410,6 @@ libavcodec/arm/neontest.c libavcodec/arm/pixblockdsp_armv6.S libavcodec/arm/pixblockdsp_init_arm.c libavcodec/arm/pixblockdsp_neon.S -libavcodec/arm/rdft_init_arm.c -libavcodec/arm/rdft_neon.S libavcodec/arm/sbcdsp_armv6.S libavcodec/arm/sbcdsp_init_arm.c libavcodec/arm/sbcdsp_neon.S @@ -468,6 +457,7 @@ libavcodec/arm/vp9lpf_16bpp_neon.S libavcodec/arm/vp9lpf_neon.S libavcodec/arm/vp9mc_16bpp_neon.S libavcodec/arm/vp9mc_neon.S +libavcodec/arm/vpx_arith.h libavcodec/ass.c libavcodec/ass.h libavcodec/ass_split.c @@ -499,6 +489,8 @@ libavcodec/aura.c libavcodec/av1.h libavcodec/av1_frame_merge_bsf.c libavcodec/av1_frame_split_bsf.c +libavcodec/av1_levels.c +libavcodec/av1_levels.h libavcodec/av1_metadata_bsf.c libavcodec/av1_parse.c libavcodec/av1_parse.h @@ -507,6 +499,7 @@ libavcodec/av1dec.c libavcodec/av1dec.h libavcodec/avcodec.c libavcodec/avcodec.h +libavcodec/avcodec_internal.h libavcodec/avdct.c libavcodec/avdct.h libavcodec/avfft.c @@ -573,6 +566,8 @@ libavcodec/cbs_h2645.h libavcodec/cbs_h264_syntax_template.c libavcodec/cbs_h265.h libavcodec/cbs_h265_syntax_template.c +libavcodec/cbs_h266.h +libavcodec/cbs_h266_syntax_template.c libavcodec/cbs_internal.h libavcodec/cbs_jpeg.c libavcodec/cbs_jpeg.h @@ -652,7 +647,6 @@ libavcodec/dcaenc.h libavcodec/dcahuff.c libavcodec/dcahuff.h libavcodec/dcamath.h -libavcodec/dct.c libavcodec/dct.h libavcodec/dct32.h libavcodec/dct32_fixed.c @@ -731,8 +725,6 @@ libavcodec/dvenc.c libavcodec/dxa.c libavcodec/dxtory.c libavcodec/dxva2.h -libavcodec/dynamic_hdr10_plus.c -libavcodec/dynamic_hdr10_plus.h libavcodec/dynamic_hdr_vivid.c libavcodec/dynamic_hdr_vivid.h libavcodec/eac3_core_bsf.c @@ -754,6 +746,13 @@ libavcodec/error_resilience.c libavcodec/error_resilience.h libavcodec/escape124.c libavcodec/escape130.c +libavcodec/evc.h +libavcodec/evc_frame_merge_bsf.c +libavcodec/evc_parse.c +libavcodec/evc_parse.h +libavcodec/evc_parser.c +libavcodec/evc_ps.c +libavcodec/evc_ps.h libavcodec/evrcdata.h libavcodec/evrcdec.c libavcodec/exif.c @@ -773,13 +772,6 @@ libavcodec/fdctdsp.c libavcodec/fdctdsp.h libavcodec/fflcms2.c libavcodec/fflcms2.h -libavcodec/fft-internal.h -libavcodec/fft.h -libavcodec/fft_fixed_32.c -libavcodec/fft_float.c -libavcodec/fft_init_table.c -libavcodec/fft_table.h -libavcodec/fft_template.c libavcodec/ffv1.c libavcodec/ffv1.h libavcodec/ffv1_template.c @@ -916,6 +908,7 @@ libavcodec/h264qpel_template.c libavcodec/h265_metadata_bsf.c libavcodec/h265_profile_level.c libavcodec/h265_profile_level.h +libavcodec/h266_metadata_bsf.c libavcodec/h274.h libavcodec/half2float.c libavcodec/hap.c @@ -970,6 +963,7 @@ libavcodec/huffyuvdsp.h libavcodec/huffyuvenc.c libavcodec/huffyuvencdsp.c libavcodec/huffyuvencdsp.h +libavcodec/hwaccel_internal.h libavcodec/hwaccels.h libavcodec/hwconfig.h libavcodec/idcinvideo.c @@ -1021,10 +1015,13 @@ libavcodec/jpeg2000.c libavcodec/jpeg2000.h libavcodec/jpeg2000_parser.c libavcodec/jpeg2000dec.c +libavcodec/jpeg2000dec.h libavcodec/jpeg2000dsp.c libavcodec/jpeg2000dsp.h libavcodec/jpeg2000dwt.c libavcodec/jpeg2000dwt.h +libavcodec/jpeg2000htdec.c +libavcodec/jpeg2000htdec.h libavcodec/jpegls.c libavcodec/jpegls.h libavcodec/jpeglsdec.c @@ -1035,6 +1032,10 @@ libavcodec/jpegquanttables.h libavcodec/jpegtables.c libavcodec/jpegtables.h libavcodec/jpegtabs.h +libavcodec/jpegxl.h +libavcodec/jpegxl_parse.c +libavcodec/jpegxl_parse.h +libavcodec/jpegxl_parser.c libavcodec/jrevdct.c libavcodec/jvdec.c libavcodec/kbdwin.c @@ -1070,7 +1071,6 @@ libavcodec/libopenh264.c libavcodec/libopenh264.h libavcodec/libopenh264dec.c libavcodec/libopenh264enc.c -libavcodec/libopenjpegdec.c libavcodec/libopenjpegenc.c libavcodec/libopus.c libavcodec/libopus.h @@ -1086,7 +1086,6 @@ libavcodec/libtwolame.c libavcodec/libvo-amrwbenc.c libavcodec/libvorbisdec.c libavcodec/libvorbisenc.c -libavcodec/libvpx.c libavcodec/libvpx.h libavcodec/libvpxdec.c libavcodec/libvpxenc.c @@ -1117,9 +1116,6 @@ libavcodec/m101.c libavcodec/mace.c libavcodec/mathops.h libavcodec/mathtables.c -libavcodec/mdct_fixed_32.c -libavcodec/mdct_float.c -libavcodec/mdct_template.c libavcodec/mdec.c libavcodec/me_cmp.c libavcodec/me_cmp.h @@ -1381,10 +1377,6 @@ libavcodec/ppc/audiodsp.c libavcodec/ppc/blockdsp.c libavcodec/ppc/fdct.h libavcodec/ppc/fdctdsp.c -libavcodec/ppc/fft_altivec.S -libavcodec/ppc/fft_init.c -libavcodec/ppc/fft_vsx.c -libavcodec/ppc/fft_vsx.h libavcodec/ppc/fmtconvert_altivec.c libavcodec/ppc/h264chroma_init.c libavcodec/ppc/h264chroma_template.c @@ -1470,15 +1462,17 @@ libavcodec/raw.c libavcodec/raw.h libavcodec/rawdec.c libavcodec/rawenc.c -libavcodec/rdft.c -libavcodec/rdft.h libavcodec/realtextdec.c libavcodec/rectangle.h +libavcodec/refstruct.c +libavcodec/refstruct.h libavcodec/remove_extradata_bsf.c libavcodec/reverse.c libavcodec/riscv/Makefile libavcodec/riscv/aacpsdsp_init.c libavcodec/riscv/aacpsdsp_rvv.S +libavcodec/riscv/ac3dsp_init.c +libavcodec/riscv/ac3dsp_rvb.S libavcodec/riscv/alacdsp_init.c libavcodec/riscv/alacdsp_rvv.S libavcodec/riscv/audiodsp_init.c @@ -1487,8 +1481,14 @@ libavcodec/riscv/audiodsp_rvv.S libavcodec/riscv/bswapdsp_init.c libavcodec/riscv/bswapdsp_rvb.S libavcodec/riscv/bswapdsp_rvv.S +libavcodec/riscv/exrdsp_init.c +libavcodec/riscv/exrdsp_rvv.S libavcodec/riscv/fmtconvert_init.c libavcodec/riscv/fmtconvert_rvv.S +libavcodec/riscv/g722dsp_init.c +libavcodec/riscv/g722dsp_rvv.S +libavcodec/riscv/h264_chroma_init_riscv.c +libavcodec/riscv/h264_mc_chroma.S libavcodec/riscv/idctdsp_init.c libavcodec/riscv/idctdsp_rvv.S libavcodec/riscv/opusdsp_init.c @@ -1696,6 +1696,7 @@ libavcodec/vaapi_decode.c libavcodec/vaapi_decode.h libavcodec/vaapi_encode.c libavcodec/vaapi_encode.h +libavcodec/vaapi_encode_av1.c libavcodec/vaapi_encode_h264.c libavcodec/vaapi_encode_h265.c libavcodec/vaapi_encode_mjpeg.c @@ -1778,6 +1779,7 @@ libavcodec/vp8.c libavcodec/vp8.h libavcodec/vp89_rac.h libavcodec/vp8_parser.c +libavcodec/vp8data.c libavcodec/vp8data.h libavcodec/vp8dsp.c libavcodec/vp8dsp.h @@ -1808,6 +1810,18 @@ libavcodec/vpx_rac.c libavcodec/vpx_rac.h libavcodec/vqavideo.c libavcodec/vqcdec.c +libavcodec/vulkan.c +libavcodec/vulkan.h +libavcodec/vulkan_av1.c +libavcodec/vulkan_decode.c +libavcodec/vulkan_decode.h +libavcodec/vulkan_video.c +libavcodec/vulkan_video_codec_av1std_decode_mesa.h +libavcodec/vulkan_video_codec_av1std_mesa.h +libavcodec/vulkan_video.h +libavcodec/vvc.h +libavcodec/vvc_mp4toannexb_bsf.c +libavcodec/vvc_parser.c libavcodec/wavarc.c libavcodec/wavpack.c libavcodec/wavpack.h @@ -1875,7 +1889,6 @@ libavcodec/x86/constants.h libavcodec/x86/dcadsp.asm libavcodec/x86/dcadsp_init.c libavcodec/x86/dct32.asm -libavcodec/x86/dct_init.c libavcodec/x86/dirac_dwt.asm libavcodec/x86/dirac_dwt_init.c libavcodec/x86/diracdsp.asm @@ -1887,9 +1900,6 @@ libavcodec/x86/exrdsp_init.c libavcodec/x86/fdct.c libavcodec/x86/fdct.h libavcodec/x86/fdctdsp_init.c -libavcodec/x86/fft.asm -libavcodec/x86/fft.h -libavcodec/x86/fft_init.c libavcodec/x86/flac_dsp_gpl.asm libavcodec/x86/flacdsp.asm libavcodec/x86/flacdsp_init.c @@ -1923,8 +1933,6 @@ libavcodec/x86/hpeldsp.asm libavcodec/x86/hpeldsp.h libavcodec/x86/hpeldsp_init.c libavcodec/x86/hpeldsp_rnd_template.c -libavcodec/x86/hpeldsp_vp3.asm -libavcodec/x86/hpeldsp_vp3_init.c libavcodec/x86/huffyuvdsp.asm libavcodec/x86/huffyuvdsp_init.c libavcodec/x86/huffyuvdsp_template.asm @@ -2025,6 +2033,7 @@ libavcodec/x86/vp9lpf_16bpp.asm libavcodec/x86/vp9mc.asm libavcodec/x86/vp9mc_16bpp.asm libavcodec/x86/vpx_arith.h +libavcodec/x86/w64xmmtest.c libavcodec/x86/xvididct.asm libavcodec/x86/xvididct.h libavcodec/x86/xvididct_init.c @@ -2115,8 +2124,11 @@ libavdevice/xcbgrab.c libavdevice/xv.c libavfilter/Makefile libavfilter/aarch64/Makefile +libavfilter/aarch64/vf_bwdif_init_aarch64.c +libavfilter/aarch64/vf_bwdif_neon.S libavfilter/aarch64/vf_nlmeans_init.c libavfilter/aarch64/vf_nlmeans_neon.S +libavfilter/adynamicequalizer_template.c libavfilter/aeval.c libavfilter/af_acontrast.c libavfilter/af_acopy.c @@ -2158,6 +2170,7 @@ libavfilter/af_aphaser.c libavfilter/af_apsyclip.c libavfilter/af_apulsator.c libavfilter/af_aresample.c +libavfilter/af_arls.c libavfilter/af_arnndn.c libavfilter/af_asdr.c libavfilter/af_asetnsamples.c @@ -2257,7 +2270,10 @@ libavfilter/buffersink.c libavfilter/buffersink.h libavfilter/buffersrc.c libavfilter/buffersrc.h -libavfilter/bwdif.h +libavfilter/bwdifdsp.c +libavfilter/bwdifdsp.h +libavfilter/ccfifo.c +libavfilter/ccfifo.h libavfilter/colorchannelmixer_template.c libavfilter/colorspace.c libavfilter/colorspace.h @@ -2270,28 +2286,6 @@ libavfilter/deshake.h libavfilter/dnn/Makefile libavfilter/dnn/dnn_backend_common.c libavfilter/dnn/dnn_backend_common.h -libavfilter/dnn/dnn_backend_native.c -libavfilter/dnn/dnn_backend_native.h -libavfilter/dnn/dnn_backend_native_layer_avgpool.c -libavfilter/dnn/dnn_backend_native_layer_avgpool.h -libavfilter/dnn/dnn_backend_native_layer_conv2d.c -libavfilter/dnn/dnn_backend_native_layer_conv2d.h -libavfilter/dnn/dnn_backend_native_layer_dense.c -libavfilter/dnn/dnn_backend_native_layer_dense.h -libavfilter/dnn/dnn_backend_native_layer_depth2space.c -libavfilter/dnn/dnn_backend_native_layer_depth2space.h -libavfilter/dnn/dnn_backend_native_layer_mathbinary.c -libavfilter/dnn/dnn_backend_native_layer_mathbinary.h -libavfilter/dnn/dnn_backend_native_layer_mathunary.c -libavfilter/dnn/dnn_backend_native_layer_mathunary.h -libavfilter/dnn/dnn_backend_native_layer_maximum.c -libavfilter/dnn/dnn_backend_native_layer_maximum.h -libavfilter/dnn/dnn_backend_native_layer_pad.c -libavfilter/dnn/dnn_backend_native_layer_pad.h -libavfilter/dnn/dnn_backend_native_layers.c -libavfilter/dnn/dnn_backend_native_layers.h -libavfilter/dnn/dnn_backend_openvino.h -libavfilter/dnn/dnn_backend_tf.h libavfilter/dnn/dnn_interface.c libavfilter/dnn/dnn_io_proc.c libavfilter/dnn/dnn_io_proc.h @@ -2399,6 +2393,7 @@ libavfilter/setpts.c libavfilter/settb.c libavfilter/signature.h libavfilter/signature_lookup.c +libavfilter/silenceremove_template.c libavfilter/split.c libavfilter/src_avsynctest.c libavfilter/src_movie.c @@ -2443,7 +2438,9 @@ libavfilter/vf_blurdetect.c libavfilter/vf_bm3d.c libavfilter/vf_boxblur.c libavfilter/vf_bwdif.c +libavfilter/vf_bwdif_vulkan.c libavfilter/vf_cas.c +libavfilter/vf_ccrepack.c libavfilter/vf_chromaber_vulkan.c libavfilter/vf_chromakey.c libavfilter/vf_chromanr.c @@ -2569,6 +2566,7 @@ libavfilter/vf_maskedmerge.c libavfilter/vf_maskedminmax.c libavfilter/vf_maskedthreshold.c libavfilter/vf_maskfun.c +libavfilter/vf_mcdeint.c libavfilter/vf_median.c libavfilter/vf_mergeplanes.c libavfilter/vf_mestimate.c @@ -2587,6 +2585,7 @@ libavfilter/vf_nlmeans.c libavfilter/vf_nlmeans.h libavfilter/vf_nlmeans_init.h libavfilter/vf_nlmeans_opencl.c +libavfilter/vf_nlmeans_vulkan.c libavfilter/vf_nnedi.c libavfilter/vf_noise.c libavfilter/vf_noise.h @@ -2680,6 +2679,7 @@ libavfilter/vf_transpose_vulkan.c libavfilter/vf_unsharp.c libavfilter/vf_unsharp_opencl.c libavfilter/vf_untile.c +libavfilter/vf_uspp.c libavfilter/vf_v360.c libavfilter/vf_vaguedenoiser.c libavfilter/vf_varblur.c @@ -2699,6 +2699,7 @@ libavfilter/vf_weave.c libavfilter/vf_xbr.c libavfilter/vf_xfade.c libavfilter/vf_xfade_opencl.c +libavfilter/vf_xfade_vulkan.c libavfilter/vf_xmedian.c libavfilter/vf_yadif.c libavfilter/vf_yaepblur.c @@ -2717,10 +2718,13 @@ libavfilter/vsrc_mandelbrot.c libavfilter/vsrc_mptestsrc.c libavfilter/vsrc_sierpinski.c libavfilter/vsrc_testsrc.c +libavfilter/vsrc_testsrc_vulkan.c libavfilter/vulkan.c libavfilter/vulkan.h libavfilter/vulkan_filter.c libavfilter/vulkan_filter.h +libavfilter/vulkan_shaderc.c +libavfilter/vulkan_spirv.h libavfilter/w3fdif.h libavfilter/window_func.h libavfilter/x86/Makefile @@ -2811,6 +2815,8 @@ libavformat/aadec.c libavformat/aaxdec.c libavformat/ac3_channel_layout_tab.c libavformat/ac3dec.c +libavformat/ac4dec.c +libavformat/ac4enc.c libavformat/acedec.c libavformat/acm.c libavformat/act.c @@ -2942,6 +2948,9 @@ libavformat/dxa.c libavformat/eacdata.c libavformat/electronicarts.c libavformat/epafdec.c +libavformat/evc.c +libavformat/evc.h +libavformat/evcdec.c libavformat/ffmeta.h libavformat/ffmetadec.c libavformat/ffmetaenc.c @@ -3050,8 +3059,8 @@ libavformat/ivfenc.c libavformat/jacosubdec.c libavformat/jacosubenc.c libavformat/jpegtables.c -libavformat/jpegxl_probe.c -libavformat/jpegxl_probe.h +libavformat/jpegxl_anim_dec.c +libavformat/jpegxl_parse.c libavformat/jvdec.c libavformat/kvag.c libavformat/lafdec.c @@ -3178,11 +3187,13 @@ libavformat/options.c libavformat/options_table.h libavformat/os_support.c libavformat/os_support.h +libavformat/osq.c libavformat/paf.c libavformat/pcm.c libavformat/pcm.h libavformat/pcmdec.c libavformat/pcmenc.c +libavformat/pdvdec.c libavformat/pjsdec.c libavformat/pmpdec.c libavformat/pp_bnk.c @@ -3195,6 +3206,7 @@ libavformat/qcp.c libavformat/qtpalette.c libavformat/qtpalette.h libavformat/r3d.c +libavformat/rangecoder_dec.c libavformat/rawdec.c libavformat/rawdec.h libavformat/rawenc.c @@ -3380,6 +3392,7 @@ libavformat/url.c libavformat/url.h libavformat/urldecode.c libavformat/urldecode.h +libavformat/usmdec.c libavformat/utils.c libavformat/vag.c libavformat/vapoursynth.c @@ -3403,6 +3416,7 @@ libavformat/vpcc.h libavformat/vpk.c libavformat/vplayerdec.c libavformat/vqf.c +libavformat/vvcdec.c libavformat/w64.c libavformat/w64.h libavformat/wady.c @@ -3465,11 +3479,13 @@ libavutil/arm/cpu.c libavutil/arm/cpu.h libavutil/arm/float_dsp_arm.h libavutil/arm/float_dsp_init_arm.c +libavutil/arm/float_dsp_init_neon.c libavutil/arm/float_dsp_init_vfp.c libavutil/arm/float_dsp_neon.S libavutil/arm/float_dsp_vfp.S libavutil/arm/intmath.h libavutil/arm/intreadwrite.h +libavutil/arm/neontest.h libavutil/arm/timer.h libavutil/attributes.h libavutil/attributes_internal.h @@ -3482,7 +3498,6 @@ libavutil/avstring.h libavutil/avutil.h libavutil/base64.c libavutil/base64.h -libavutil/bfin/timer.h libavutil/blowfish.c libavutil/blowfish.h libavutil/bprint.c @@ -3521,12 +3536,15 @@ libavutil/dovi_meta.h libavutil/downmix_info.c libavutil/downmix_info.h libavutil/dynarray.h +libavutil/emms.h libavutil/encryption_info.c libavutil/encryption_info.h libavutil/error.c libavutil/error.h libavutil/eval.c libavutil/eval.h +libavutil/executor.c +libavutil/executor.h libavutil/ffmath.h libavutil/fifo.c libavutil/fifo.h @@ -3654,6 +3672,7 @@ libavutil/ripemd.h libavutil/riscv/Makefile libavutil/riscv/asm.S libavutil/riscv/bswap.h +libavutil/riscv/bswap_rvb.S libavutil/riscv/cpu.c libavutil/riscv/cpu.h libavutil/riscv/fixed_dsp_init.c @@ -3709,12 +3728,12 @@ libavutil/version.h libavutil/version_major.h libavutil/video_enc_params.c libavutil/video_enc_params.h +libavutil/video_hint.c +libavutil/video_hint.h libavutil/vulkan.c libavutil/vulkan.h libavutil/vulkan_functions.h -libavutil/vulkan_glslang.c libavutil/vulkan_loader.h -libavutil/vulkan_shaderc.c libavutil/wchar_filename.h libavutil/x86/Makefile libavutil/x86/asm.h @@ -3723,7 +3742,6 @@ libavutil/x86/cpu.c libavutil/x86/cpu.h libavutil/x86/cpuid.asm libavutil/x86/emms.asm -libavutil/x86/emms.h libavutil/x86/fixed_dsp.asm libavutil/x86/fixed_dsp_init.c libavutil/x86/float_dsp.asm @@ -3740,6 +3758,7 @@ libavutil/x86/pixelutils_init.c libavutil/x86/timer.h libavutil/x86/tx_float.asm libavutil/x86/tx_float_init.c +libavutil/x86/w64xmmtest.h libavutil/x86/x86inc.asm libavutil/x86/x86util.asm libavutil/xga_font_data.c @@ -3760,11 +3779,13 @@ libswresample/Makefile libswresample/aarch64/Makefile libswresample/aarch64/audio_convert_init.c libswresample/aarch64/audio_convert_neon.S +libswresample/aarch64/neontest.c libswresample/aarch64/resample.S libswresample/aarch64/resample_init.c libswresample/arm/Makefile libswresample/arm/audio_convert_init.c libswresample/arm/audio_convert_neon.S +libswresample/arm/neontest.c libswresample/arm/resample.S libswresample/arm/resample_init.c libswresample/audioconvert.c @@ -3796,6 +3817,7 @@ libswresample/x86/rematrix.asm libswresample/x86/rematrix_init.c libswresample/x86/resample.asm libswresample/x86/resample_init.c +libswresample/x86/w64xmmtest.c libswscale/Makefile libswscale/aarch64/Makefile libswscale/aarch64/hscale.S @@ -3811,6 +3833,7 @@ libswscale/arm/hscale.S libswscale/arm/output.S libswscale/arm/rgb2yuv_neon_16.S libswscale/arm/rgb2yuv_neon_32.S +libswscale/arm/rgb2yuv_neon_common.S libswscale/arm/swscale.c libswscale/arm/swscale_unscaled.c libswscale/arm/yuv2rgb_neon.S @@ -3836,6 +3859,7 @@ libswscale/rgb2rgb.h libswscale/rgb2rgb_template.c libswscale/riscv/Makefile libswscale/riscv/rgb2rgb.c +libswscale/riscv/rgb2rgb_rvb.S libswscale/riscv/rgb2rgb_rvv.S libswscale/slice.c libswscale/swscale.c @@ -3858,6 +3882,7 @@ libswscale/x86/scale.asm libswscale/x86/scale_avx2.asm libswscale/x86/swscale.c libswscale/x86/swscale_template.c +libswscale/x86/w64xmmtest.c libswscale/x86/yuv2rgb.c libswscale/x86/yuv2rgb_template.c libswscale/x86/yuv2yuvX.asm @@ -3943,15 +3968,14 @@ tests/fate/cover-art.mak tests/fate/dca.mak tests/fate/demux.mak tests/fate/dfa.mak -tests/fate/dnn.mak tests/fate/dnxhd.mak tests/fate/dpcm.mak tests/fate/dvvideo.mak tests/fate/ea.mak +tests/fate/enc_external.mak tests/fate/exif.mak tests/fate/ffmpeg.mak tests/fate/ffprobe.mak -tests/fate/fft.mak tests/fate/fifo-muxer.mak tests/fate/filter-audio.mak tests/fate/filter-video.mak @@ -3969,6 +3993,8 @@ tests/fate/id3v2.mak tests/fate/image.mak tests/fate/imf.mak tests/fate/indeo.mak +tests/fate/jpeg2000.mak +tests/fate/jxl.mak tests/fate/lavf-audio.mak tests/fate/lavf-container.mak tests/fate/lavf-image.mak @@ -4026,11 +4052,11 @@ tests/fate/wma.mak tests/fate/xvid.mak tools/Makefile tools/aviocat.c -tools/cl2c tools/crypto_bench.c tools/cws2fws.c tools/decode_simple.c tools/decode_simple.h +tools/enc_recon_frame_test.c tools/enum_options.c tools/ffescape.c tools/ffeval.c @@ -4045,6 +4071,7 @@ tools/scale_slice_test.c tools/seek_print.c tools/sidxindex.c tools/sofa2wavs.c +tools/source2c tools/trasher.c tools/uncoded_frame.c tools/venc_data_dump.c diff --git a/sources b/sources index b9b9241..03daa05 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (ffmpeg-free-6.0.tar.xz) = 5e806529f45311d94a81401d8951135e84361a81d158ed030aeee9812b399dd28b25c5d3e1a4abe0665d5838e0954626de538b10cebf34f8669963b1974a3910 -SHA512 (ffmpeg-6.0.tar.xz.asc) = a64cd0f8578fcea4537f5a38634c930d66c8ba4abd3e8e9dcffaeb95c3ad2e754d7bc4fbb5272409d4d32abf8180ef83f7204c6a570b52a37e635efd96cb94ed +SHA512 (ffmpeg-free-6.1.2.tar.xz) = edaa836c69b0ec2f484a4fd9b49dab97f76e7c6451449f8db8f81f04558974d850b725e3affc36f9790c206a049e42b710f54bb8fd7e4da00ec80ebce6a13e5f +SHA512 (ffmpeg-6.1.2.tar.xz.asc) = a26dba1f4870b964080b45f8468f5ce3591eb6aa69be426bf4afbe5a60c3cbd0fe5056dc86ca7bb817c04ae30d39160cb7773772a9a2123ae7f095b18a6d7050 SHA512 (ffmpeg-dlopen-headers.tar.xz) = 97e6986fc2bb9dfa4516135a76b04d27ceb52ff96f0af21a6169919aeefefb4d2e2e24a771959689cdbec385f5d71614ba661223c67c0e94089a6dd823a30099 SHA512 (ffmpeg.keyring) = 9b36506835db36f776b7ddb53ad6fa9e915e6ca2f9c7cfebe8eb45513e1036a985283590a840ca313a111bf35dc3731f68885aaafb1fb7011ec433cc119e5165