public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/ffmpeg] epel9-next: Initial import (fedora#2051008)
@ 2026-07-14 21:59 Andreas Schneider
  0 siblings, 0 replies; only message in thread
From: Andreas Schneider @ 2026-07-14 21:59 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/ffmpeg
Branch : epel9-next
Commit : 53e04e97f3c86835cb97e5637b59e5f08426c590
Author : Andreas Schneider <asn@cryptomilk.org>
Date   : 2022-02-11T20:18:52+01:00
Stats  : +2552/-2 in 15 file(s)
URL    : https://src.fedoraproject.org/rpms/ffmpeg/c/53e04e97f3c86835cb97e5637b59e5f08426c590?branch=epel9-next

Log:
Initial import (fedora#2051008)

---
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f8ca151
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+ffmpeg-*.asc
+ffmpeg-*.rpm
+ffmpeg-*.tar.xz

diff --git a/README.md b/README.md
index 3588ab8..8c5a6f6 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,15 @@
-# ffmpeg
+# FFMEPG
 
-The ffmpeg package
+FFmpeg is a multimedia framework, able to decode, encode, transcode, mux,
+demux, stream, filter and play pretty much anything that humans and machines
+have created. It supports the most obscure ancient formats up to the cutting
+edge. No matter if they were designed by some standards committee, the
+community or a corporation.
+
+## Creating the 'free' tarball
+
+1. Update the `Version` in the spec file
+2. Set the `Release` to 0
+2. Do a full build locally: `fedpkg mockbuild --with full_build`
+3. Create the 'clean' tarball: `./ffmpeg_clean_sources.sh results_ffmpeg/5.0/0.fc35/build.log`
+4. Set the `Release` to 1

diff --git a/enable_decoders b/enable_decoders
new file mode 100644
index 0000000..1b47016
--- /dev/null
+++ b/enable_decoders
@@ -0,0 +1,110 @@
+## module name # reason for enablement in ffmpeg (usually there is another package that already got legal review)
+libfdk_aac # fdk-aac-free
+ac3
+ansi # trivial
+apng # animated png
+ass # trivial
+ayuv # trivial
+bmp # trivial
+dirac # dirac
+exr # openEXR
+ffv1 # ffmpeg
+ffvhuff # ffmpeg
+ffwavesynth # pseudo
+flac # libFLAC
+gif # libpng
+gsm # libgsm
+h264_v4l2m2m # hardware
+h264_qsv # hardware
+huffyuv # trivial+zlib
+ilbc # ilbc
+jpeg2000 # openjpeg2
+libaom # libaom
+libaom_av1 # libaom
+libcelt # celt, opus
+libcodec2 # codec2
+libdav1d # av1
+libgsm # libgsm
+libopenjpeg # openjpeg
+libopus # opus
+libschroedinger # schroedinger
+libspeex # speex
+libvorbis # libvorbis
+libvpx_vp8 # libvpx
+libvpx_vp9 # libvpx
+mjpeg # mjpegtools
+mp1 # twolame/lame
+mp1float # twolame/lame
+mp2 # twolame
+mp2float # twolame
+mp3 # lame
+mp3float # lame
+mpeg1video
+mpeg2video
+opus # libopus
+pam # trivial
+pbm # trivial
+pcm_alaw # trivial
+pcm_bluray
+pcm_dvd
+pcm_f32be # trivial
+pcm_f32le # trivial
+pcm_f64be # trivial
+pcm_f64le # trivial
+pcm_mulaw # trivial
+pcm_s16be # trivial
+pcm_s16be_planar # trivial
+pcm_s16le # trivial
+pcm_s16le_planar # trivial
+pcm_s24be # trivial
+pcm_s24le # trivial
+pcm_s24le_planar # trivial
+pcm_s32be # trivial
+pcm_s32le # trivial
+pcm_s32le_planar # trivial
+pcm_s8 # trivial
+pcm_s8_planar # trivial
+pcm_u16be # trivial
+pcm_u16le # trivial
+pcm_u24be # trivial
+pcm_u24le # trivial
+pcm_u32be # trivial
+pcm_u32le # trivial
+pcm_u8 # trivial
+pcx
+pgm # trivial
+pgmyuv # trivial
+pgssub # mkvtoolnix
+pgx
+png # libpng
+ppm # trivial
+rawvideo # trivial
+sgi # trivial
+srt # trivial
+ssa # trivial
+sunrast # trivial
+targa # trivial
+text # trivial
+theora # libtheora
+tiff # libtiff
+v210 # trivial
+v210x # trivial
+v308 # trivial
+v408 # trivial
+v410 # trivial
+vorbis # libvorbis
+vp3 # libav
+vp5 # libav
+vp6 # libav
+vp6a # libav
+vp6f # libav
+vp8 # libvpx
+vp9 # libvpx
+webp # libwebp
+webvtt # trivial
+wrapped_avframe # passthrough
+xbm # trivial
+xwd # xwd
+y41p # trivial
+yuv4 # trivial
+zlib # zlib

diff --git a/enable_encoders b/enable_encoders
new file mode 100644
index 0000000..db4377d
--- /dev/null
+++ b/enable_encoders
@@ -0,0 +1,95 @@
+## module name # reason for enablement in ffmpeg (usually there is another package that already got legal review)
+libfdk_aac # fdk-aac-free
+ac3
+apng # libpng
+ass # trivial
+ayuv # trival
+bmp # trivial
+ffv1
+ffvhuff # trivial+zlib
+flac # libFLAC
+gif # libpng
+h264_qsv # hardware
+h264_v4l2m2m # hardware
+h264_vaapi # hardware
+hevc_qsv # hardware
+hevc_v4l2m2m # hardware
+huffyuv # trivial+zlib
+jpegls
+jpeg2000
+libaom # libaom
+libaom_av1 # libaom
+libcodec2 # codec2
+libgsm # libgsm
+libmp3lame # lame
+libopenjpeg # openjpeg
+libopus # opus
+librav1e # rav1e
+libschroedinger # schroedinger
+libspeex # speex
+libsvtav1
+libtheora # libtheora
+libtwolame # twolame
+libvorbis # libvorbis
+libvpx_vp8 # libvpx
+libvpx_vp9 # libvpx
+libwebp # libwebp
+libwebp_anim # libwebp
+mjpeg # mjpegtools
+mp2 # twolame
+mp2fixed # twolame
+mpeg1video
+mpeg2video
+opus # opus
+pam
+pbm # trivial
+pcm_alaw # trivial
+pcm_f32be # trivial
+pcm_f32le # trivial
+pcm_f64be # trivial
+pcm_f64le # trivial
+pcm_mulaw # trivial
+pcm_s16be # trivial
+pcm_s16be_planar # trivial
+pcm_s16le # trivial
+pcm_s16le_planar # trivial
+pcm_s24be # trivial
+pcm_s24le # trivial
+pcm_s24le_planar # trivial
+pcm_s32be # trivial
+pcm_s32le # trivial
+pcm_s32le_planar # trivial
+pcm_s8 # trivial
+pcm_s8_planar # trivial
+pcm_u16be # trivial
+pcm_u16le # trivial
+pcm_u24be # trivial
+pcm_u24le # trivial
+pcm_u32be # trivial
+pcm_u32le # trivial
+pcm_u8 # trivial
+pcx
+pgm # trivial
+pgmyuv # trivial
+png # libpng
+ppm # trivial
+rawvideo # trivial
+sgi # trivial
+srt # trivial
+ssa # trivial
+sunrast # trivial
+targa # trivial
+text # trivial
+tiff # libtiff
+v210 # trivial
+v308 # trivial
+v408 # trivial
+v410 # trivial
+vorbis # libvorbis
+webvtt # trivial
+wrapped_avframe # passthrough
+xbm # (X11)
+xwd # xwd
+y41p # trivial
+yuv4 # trivial
+zlib # zlib

diff --git a/ffmpeg-allow-fdk-aac-free.patch b/ffmpeg-allow-fdk-aac-free.patch
new file mode 100644
index 0000000..0cc91f1
--- /dev/null
+++ b/ffmpeg-allow-fdk-aac-free.patch
@@ -0,0 +1,24 @@
+fdk-aac-free-devel is GPL compatible
+
+See https://bugzilla.redhat.com/show_bug.cgi?id=1501522#c112
+
+Index: ffmpeg-5.0/configure
+===================================================================
+--- ffmpeg-5.0.orig/configure	2022-02-09 20:07:49.490888877 +0100
++++ ffmpeg-5.0/configure	2022-02-09 20:08:30.102854308 +0100
+@@ -1783,7 +1783,6 @@ EXTERNAL_LIBRARY_GPL_LIST="
+ 
+ EXTERNAL_LIBRARY_NONFREE_LIST="
+     decklink
+-    libfdk_aac
+     libtls
+ "
+ 
+@@ -1822,6 +1821,7 @@ EXTERNAL_LIBRARY_LIST="
+     libdav1d
+     libdc1394
+     libdrm
++    libfdk_aac
+     libflite
+     libfontconfig
+     libfreetype

diff --git a/ffmpeg-codec-choice.patch b/ffmpeg-codec-choice.patch
new file mode 100644
index 0000000..3c2bf10
--- /dev/null
+++ b/ffmpeg-codec-choice.patch
@@ -0,0 +1,56 @@
+From: Jan Engelhardt <jengelh@inai.de>
+
+Edit the default codec selection such that
+
+    ffmpeg -i youtube.blah.webm foobar.mkv
+
+without any further arguments can produce a result even on a
+reduced codec selection list.
+
+---
+ libavformat/matroskaenc.c |   19 +++++++++++++------
+ 1 file changed, 13 insertions(+), 6 deletions(-)
+
+Index: ffmpeg-5.0/libavformat/matroskaenc.c
+===================================================================
+--- ffmpeg-5.0.orig/libavformat/matroskaenc.c	2022-01-14 19:45:40.000000000 +0100
++++ ffmpeg-5.0/libavformat/matroskaenc.c	2022-02-04 08:29:14.582130919 +0100
+@@ -2887,16 +2887,24 @@ static int mkv_query_codec(enum AVCodecI
+     return 0;
+ }
+ 
++#define PREFAUDIO \
++    CONFIG_LIBOPUS_ENCODER ? AV_CODEC_ID_OPUS : \
++    CONFIG_AAC_ENCODER ? AV_CODEC_ID_AAC : \
++    CONFIG_VORBIS_ENCODER ? AV_CODEC_ID_VORBIS : \
++    AV_CODEC_ID_AC3
+ const AVOutputFormat ff_matroska_muxer = {
+     .name              = "matroska",
+     .long_name         = NULL_IF_CONFIG_SMALL("Matroska"),
+     .mime_type         = "video/x-matroska",
+     .extensions        = "mkv",
+     .priv_data_size    = sizeof(MatroskaMuxContext),
+-    .audio_codec       = CONFIG_LIBVORBIS_ENCODER ?
+-                         AV_CODEC_ID_VORBIS : AV_CODEC_ID_AC3,
+-    .video_codec       = CONFIG_LIBX264_ENCODER ?
+-                         AV_CODEC_ID_H264 : AV_CODEC_ID_MPEG4,
++    .audio_codec       = PREFAUDIO,
++    .video_codec       =
++        CONFIG_LIBVPX_VP9_ENCODER ? AV_CODEC_ID_VP9 : \
++        CONFIG_LIBX264_ENCODER ? AV_CODEC_ID_H264 : \
++        CONFIG_LIBVPX_VP8_ENCODER ? AV_CODEC_ID_VP8 : \
++        CONFIG_MPEG4_ENCODER ? AV_CODEC_ID_MPEG4 : \
++        AV_CODEC_ID_THEORA,
+     .init              = mkv_init,
+     .deinit            = mkv_deinit,
+     .write_header      = mkv_write_header,
+@@ -2954,8 +2962,7 @@ const AVOutputFormat ff_matroska_audio_m
+     .mime_type         = "audio/x-matroska",
+     .extensions        = "mka",
+     .priv_data_size    = sizeof(MatroskaMuxContext),
+-    .audio_codec       = CONFIG_LIBVORBIS_ENCODER ?
+-                         AV_CODEC_ID_VORBIS : AV_CODEC_ID_AC3,
++    .audio_codec       = PREFAUDIO,
+     .video_codec       = AV_CODEC_ID_NONE,
+     .init              = mkv_init,
+     .deinit            = mkv_deinit,

diff --git a/ffmpeg-fix-exif-include.patch b/ffmpeg-fix-exif-include.patch
new file mode 100644
index 0000000..7086cbe
--- /dev/null
+++ b/ffmpeg-fix-exif-include.patch
@@ -0,0 +1,95 @@
+From fe17c9fadf375d8beeb42b062390dfe18cb59e08 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@cryptomilk.org>
+Date: Fri, 11 Feb 2022 09:46:15 +0100
+Subject: [PATCH 1/2] avcodec/exif: Include bytestream.h for GetByteContext
+
+bytestream.h should be directly included for GetByteContext and not
+rely on other headers to include it. It could be removed from there.
+
+Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
+---
+ libavcodec/exif.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libavcodec/exif.h b/libavcodec/exif.h
+index 4db84a1c2f..310f6e8e64 100644
+--- a/libavcodec/exif.h
++++ b/libavcodec/exif.h
+@@ -30,6 +30,7 @@
+ 
+ #include <stdint.h>
+ #include "libavutil/dict.h"
++#include "bytestream.h"
+ #include "tiff.h"
+ 
+ #define EXIF_MAX_IFD_RECURSION 2
+-- 
+2.34.1
+
+
+From 45a9f8044ef6dc425209141e3d9272008ce6bbff Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@cryptomilk.org>
+Date: Fri, 11 Feb 2022 09:49:25 +0100
+Subject: [PATCH 2/2] avcodec/exif: Include tiff_common.h only where needed
+
+The exif.h header doesn't use anything from tiff.h.
+
+Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
+---
+ libavcodec/exif.c     | 1 +
+ libavcodec/exif.h     | 1 -
+ libavcodec/mjpegdec.c | 1 +
+ libavcodec/webp.c     | 1 +
+ 4 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/libavcodec/exif.c b/libavcodec/exif.c
+index 0b656fd09b..9485b24b8e 100644
+--- a/libavcodec/exif.c
++++ b/libavcodec/exif.c
+@@ -26,6 +26,7 @@
+  */
+ 
+ #include "exif.h"
++#include "tiff_common.h"
+ 
+ 
+ static const char *exif_get_tag_name(uint16_t id)
+diff --git a/libavcodec/exif.h b/libavcodec/exif.h
+index 310f6e8e64..ffacba7e66 100644
+--- a/libavcodec/exif.h
++++ b/libavcodec/exif.h
+@@ -31,7 +31,6 @@
+ #include <stdint.h>
+ #include "libavutil/dict.h"
+ #include "bytestream.h"
+-#include "tiff.h"
+ 
+ #define EXIF_MAX_IFD_RECURSION 2
+ #define EXIF_TAG_NAME_LENGTH   32
+diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
+index a735d2337d..267609d96a 100644
+--- a/libavcodec/mjpegdec.c
++++ b/libavcodec/mjpegdec.c
+@@ -50,6 +50,7 @@
+ #include "tiff.h"
+ #include "exif.h"
+ #include "bytestream.h"
++#include "tiff_common.h"
+ 
+ 
+ static int init_default_huffman_tables(MJpegDecodeContext *s)
+diff --git a/libavcodec/webp.c b/libavcodec/webp.c
+index 9e642e050a..148dc02170 100644
+--- a/libavcodec/webp.c
++++ b/libavcodec/webp.c
+@@ -48,6 +48,7 @@
+ #include "exif.h"
+ #include "get_bits.h"
+ #include "internal.h"
++#include "tiff_common.h"
+ #include "thread.h"
+ #include "vp8.h"
+ 
+-- 
+2.34.1
+

diff --git a/ffmpeg-fix-gnutls-priority.patch b/ffmpeg-fix-gnutls-priority.patch
new file mode 100644
index 0000000..b64c516
--- /dev/null
+++ b/ffmpeg-fix-gnutls-priority.patch
@@ -0,0 +1,13 @@
+Index: ffmpeg-5.0/libavformat/tls_gnutls.c
+===================================================================
+--- ffmpeg-5.0.orig/libavformat/tls_gnutls.c	2022-01-14 19:45:40.000000000 +0100
++++ ffmpeg-5.0/libavformat/tls_gnutls.c	2022-02-10 23:06:52.364362893 +0100
+@@ -192,7 +192,7 @@ static int tls_open(URLContext *h, const
+     gnutls_transport_set_pull_function(p->session, gnutls_url_pull);
+     gnutls_transport_set_push_function(p->session, gnutls_url_push);
+     gnutls_transport_set_ptr(p->session, p);
+-    gnutls_priority_set_direct(p->session, "NORMAL", NULL);
++    gnutls_set_default_priority(p->session);
+     do {
+         if (ff_check_interrupt(&h->interrupt_callback)) {
+             ret = AVERROR_EXIT;

diff --git a/ffmpeg-new-coder-errors.patch b/ffmpeg-new-coder-errors.patch
new file mode 100644
index 0000000..1dc687c
--- /dev/null
+++ b/ffmpeg-new-coder-errors.patch
@@ -0,0 +1,60 @@
+From: Jan Engelhardt <jengelh@inai.de>
+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 |    4 ++--
+ fftools/ffmpeg_opt.c    |    2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+Index: ffmpeg-5.0/fftools/ffmpeg.c
+===================================================================
+--- ffmpeg-5.0.orig/fftools/ffmpeg.c	2022-01-14 19:45:39.000000000 +0100
++++ ffmpeg-5.0/fftools/ffmpeg.c	2022-02-04 08:16:14.606621540 +0100
+@@ -2871,7 +2871,7 @@ static int init_input_stream(int ist_ind
+     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-5.0/fftools/ffmpeg_filter.c
+===================================================================
+--- ffmpeg-5.0.orig/fftools/ffmpeg_filter.c	2022-01-14 19:45:39.000000000 +0100
++++ ffmpeg-5.0/fftools/ffmpeg_filter.c	2022-02-04 08:16:14.607621538 +0100
+@@ -925,7 +925,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;
+     }
+@@ -1094,7 +1094,7 @@ int configure_filtergraph(FilterGraph *f
+         if (!ost->enc) {
+             /* identical to the same check in ffmpeg.c, needed because
+                complex filter graphs are initialized earlier */
+-            av_log(NULL, AV_LOG_ERROR, "Encoder (codec %s) not found for output stream #%d:%d\n",
++            av_log(NULL, AV_LOG_ERROR, "This build of ffmpeg does not include a \"%s\" encoder needed for output stream #%d:%d.\n",
+                      avcodec_get_name(ost->st->codecpar->codec_id), ost->file_index, ost->index);
+             ret = AVERROR(EINVAL);
+             goto fail;
+Index: ffmpeg-5.0/fftools/ffmpeg_opt.c
+===================================================================
+--- ffmpeg-5.0.orig/fftools/ffmpeg_opt.c	2022-01-14 19:45:39.000000000 +0100
++++ ffmpeg-5.0/fftools/ffmpeg_opt.c	2022-02-04 08:16:14.607621538 +0100
+@@ -1406,7 +1406,7 @@ static int choose_encoder(OptionsContext
+             if (!ost->enc) {
+                 av_log(NULL, AV_LOG_FATAL, "Automatic encoder selection failed for "
+                        "output stream #%d:%d. Default encoder for format %s (codec %s) is "
+-                       "probably disabled. Please choose an encoder manually.\n",
++                       "probably disabled or this build of ffmpeg does not include that codec. Please choose an encoder manually.\n",
+                        ost->file_index, ost->index, s->oformat->name,
+                        avcodec_get_name(ost->st->codecpar->codec_id));
+                 return AVERROR_ENCODER_NOT_FOUND;

diff --git a/ffmpeg-support-chromium.patch b/ffmpeg-support-chromium.patch
new file mode 100644
index 0000000..8e9a0ac
--- /dev/null
+++ b/ffmpeg-support-chromium.patch
@@ -0,0 +1,42 @@
+commit	95aab0fd83619408995720ce53d7a74790580220
+author	liberato@chromium.org <liberato@chromium.org>	Thu Jul 08 02:01:22 2021
+committer	liberato@chromium.org <liberato@chromium.org>	Thu Jul 08 02:01:22 2021
+tree	ac725b5e2c548c8142aa7096d8184d87d3876a49
+parent	e073b7a22e4993e0a7cab80a42a21524e5349f95
+
+Add av_stream_get_first_dts for Chromium
+
+diff --git a/libavformat/avformat.h b/libavformat/avformat.h
+index cd7b0d9..b4a6dce 100644
+--- a/libavformat/avformat.h
++++ b/libavformat/avformat.h
+@@ -1010,6 +1010,10 @@
+  */
+ int64_t    av_stream_get_end_pts(const AVStream *st);
+ 
++// 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 de7580c..0ef0fe5 100644
+--- a/libavformat/utils.c
++++ b/libavformat/utils.c
+@@ -121,6 +121,13 @@
+         return AV_NOPTS_VALUE;
+ }
+ 
++// 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 ^^^
++
+ struct AVCodecParserContext *av_stream_get_parser(const AVStream *st)
+ {
+     return cffstream(st)->parser;
+

diff --git a/ffmpeg.keyring b/ffmpeg.keyring
new file mode 100644
index 0000000..ba6d858
Binary files /dev/null and b/ffmpeg.keyring differ

diff --git a/ffmpeg.spec b/ffmpeg.spec
new file mode 100644
index 0000000..c4074aa
--- /dev/null
+++ b/ffmpeg.spec
@@ -0,0 +1,775 @@
+# For a complete build enable these two
+%bcond_with upstream_tarball
+%bcond_with all_codecs
+
+# If you want to do a build with the upstream source tarball, then set the
+# pkg_suffix to %%nil. We can't handle this with a conditional, as srpm
+# generation would not take it into account.
+%global pkg_suffix -free
+
+# Fails due to asm issue
+%ifarch %{ix86} %arm
+%bcond_with lto
+%else
+%bcond_without lto
+%endif
+
+%ifarch %{ix86}
+%bcond_with vulkan
+%else
+%bcond_without vulkan
+%endif
+
+%ifarch x86_64
+%bcond_without svtav1
+%else
+%bcond_with svtav1
+%endif
+
+%if %{with all_codecs}
+%bcond_without rtmp
+%bcond_without x264
+%bcond_without x265
+%bcond_without xvid
+%else
+%bcond_with rtmp
+%bcond_with x264
+%bcond_with x265
+%bcond_with xvid
+%endif
+
+%global av_codec_soversion 59
+%global av_device_soversion 59
+%global av_filter_soversion 8
+%global av_format_soversion 59
+%global av_util_soversion 57
+%global postproc_soversion 56
+%global swresample_soversion 4
+%global swscale_soversion 6
+
+Name:           ffmpeg
+%global pkg_name %{name}%{?pkg_suffix}
+
+Version:        5.0
+Release:        1%{?dist}
+Summary:        A complete solution to record, convert and stream audio and video
+License:        GPLv3+
+URL:            https://ffmpeg.org/
+Source0:        ffmpeg%{?pkg_suffix}-%{version}.tar.xz
+Source1:        https://ffmpeg.org/releases/ffmpeg-%{version}.tar.xz.asc
+# https://ffmpeg.org/ffmpeg-devel.asc
+# gpg2 --import --import-options import-export,import-minimal ffmpeg-devel.asc > ./ffmpeg.keyring
+Source2:        ffmpeg.keyring
+Source3:        ffmpeg_clean_sources.sh
+Source20:       enable_decoders
+Source21:       enable_encoders
+# Change path from /usr/local to /usr
+Patch1:         fix-vmaf-model-path.patch
+# Some header cleanup
+# http://ffmpeg.org/pipermail/ffmpeg-devel/2022-February/292877.html
+Patch2:         ffmpeg-fix-exif-include.patch
+# Fixes for reduced codec selection on free build
+Patch3:         ffmpeg-codec-choice.patch
+# Better error messages for free build
+Patch4:         ffmpeg-new-coder-errors.patch
+# Allow to build with fdk-aac-free
+# See https://bugzilla.redhat.com/show_bug.cgi?id=1501522#c112
+Patch5:         ffmpeg-allow-fdk-aac-free.patch
+# http://ffmpeg.org/pipermail/ffmpeg-devel/2022-February/292853.html
+Patch6:         ffmpeg-fix-gnutls-priority.patch
+# https://ffmpeg.org/pipermail/ffmpeg-devel/2021-September/285401.html
+Patch7:         ffmpeg-support-chromium.patch
+
+Requires:       libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libavdevice%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libavfilter%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libavformat%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libpostproc%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libswresample%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libswscale%{?pkg_suffix}%{_isa} = %{version}-%{release}
+
+BuildRequires:  fdk-aac-free-devel
+BuildRequires:  flite-devel
+BuildRequires:  game-music-emu-devel
+BuildRequires:  gcc
+BuildRequires:  gnupg2
+BuildRequires:  gsm-devel
+BuildRequires:  ladspa-devel
+BuildRequires:  lame-devel
+BuildRequires:  libcrystalhd-devel
+BuildRequires:  libmysofa-devel
+BuildRequires:  make
+BuildRequires:  nasm
+BuildRequires:  perl(Pod::Man)
+BuildRequires:  pkgconfig(alsa)
+BuildRequires:  pkgconfig(aom)
+BuildRequires:  pkgconfig(bzip2)
+BuildRequires:  pkgconfig(caca)
+BuildRequires:  pkgconfig(codec2)
+BuildRequires:  pkgconfig(dav1d)
+BuildRequires:  pkgconfig(enca)
+BuildRequires:  pkgconfig(ffnvcodec)
+BuildRequires:  pkgconfig(flac)
+BuildRequires:  pkgconfig(fontconfig)
+BuildRequires:  pkgconfig(freetype2)
+BuildRequires:  pkgconfig(frei0r)
+BuildRequires:  pkgconfig(fribidi)
+BuildRequires:  pkgconfig(gnutls)
+BuildRequires:  pkgconfig(ilbc)
+BuildRequires:  pkgconfig(jack)
+BuildRequires:  pkgconfig(libass)
+BuildRequires:  pkgconfig(libavc1394)
+BuildRequires:  pkgconfig(libbluray)
+BuildRequires:  pkgconfig(libbs2b)
+BuildRequires:  pkgconfig(libcdio)
+BuildRequires:  pkgconfig(libcdio_paranoia)
+BuildRequires:  pkgconfig(libchromaprint)
+BuildRequires:  pkgconfig(libdc1394-2)
+BuildRequires:  pkgconfig(libdrm)
+BuildRequires:  pkgconfig(libiec61883)
+BuildRequires:  pkgconfig(libmfx) < 2.0
+BuildRequires:  pkgconfig(libmodplug)
+BuildRequires:  pkgconfig(libomxil-bellagio)
+BuildRequires:  pkgconfig(libopenjp2)
+BuildRequires:  pkgconfig(libopenmpt)
+BuildRequires:  pkgconfig(libpulse)
+BuildRequires:  pkgconfig(librsvg-2.0)
+BuildRequires:  pkgconfig(libssh)
+BuildRequires:  pkgconfig(libv4l2)
+BuildRequires:  pkgconfig(libva)
+BuildRequires:  pkgconfig(libva-drm)
+BuildRequires:  pkgconfig(libva-x11)
+BuildRequires:  pkgconfig(libvmaf)
+BuildRequires:  pkgconfig(libwebp)
+BuildRequires:  pkgconfig(libxml-2.0)
+BuildRequires:  pkgconfig(libzmq)
+BuildRequires:  pkgconfig(lilv-0)
+BuildRequires:  pkgconfig(netcdf)
+BuildRequires:  pkgconfig(ogg)
+BuildRequires:  pkgconfig(openal)
+BuildRequires:  pkgconfig(opencv4)
+BuildRequires:  pkgconfig(opus)
+BuildRequires:  pkgconfig(rav1e)
+BuildRequires:  pkgconfig(rubberband)
+BuildRequires:  pkgconfig(schroedinger-1.0)
+BuildRequires:  pkgconfig(sdl2)
+BuildRequires:  pkgconfig(smbclient)
+BuildRequires:  pkgconfig(snappy)
+BuildRequires:  pkgconfig(soxr)
+BuildRequires:  pkgconfig(speex)
+BuildRequires:  pkgconfig(srt)
+BuildRequires:  pkgconfig(tesseract)
+BuildRequires:  pkgconfig(theora)
+BuildRequires:  pkgconfig(twolame)
+BuildRequires:  pkgconfig(vapoursynth)
+BuildRequires:  pkgconfig(vdpau)
+BuildRequires:  pkgconfig(vidstab)
+BuildRequires:  pkgconfig(vorbis)
+BuildRequires:  pkgconfig(vpx)
+BuildRequires:  pkgconfig(wavpack)
+BuildRequires:  pkgconfig(xcb)
+BuildRequires:  pkgconfig(xcb-render)
+BuildRequires:  pkgconfig(xcb-shape)
+BuildRequires:  pkgconfig(xcb-shm)
+BuildRequires:  pkgconfig(xcb-xfixes)
+BuildRequires:  pkgconfig(zimg)
+BuildRequires:  pkgconfig(zlib)
+BuildRequires:  pkgconfig(zvbi-0.2)
+BuildRequires:  texinfo
+
+%if %{with amr}
+BuildRequires:  pkgconfig(opencore-amrnb)
+BuildRequires:  pkgconfig(vo-amrwbenc)
+%endif
+%if %{with rtmp}
+BuildRequires:  librtmp-devel
+%endif
+%if %{with svtav1}
+BuildRequires:  pkgconfig(SvtAv1Enc) >= 0.8.4
+%endif
+%if %{with vulkan}
+BuildRequires:  vulkan-loader-devel
+BuildRequires:  glslang-devel
+%endif
+%if %{with x264}
+BuildRequires:  pkgconfig(x264)
+%endif
+%if %{with x265}
+BuildRequires:  pkgconfig(x265)
+%endif
+%if %{with xvid}
+BuildRequires:  xvidcore-devel
+%endif
+
+
+%description
+FFmpeg is a leading multimedia framework, able to decode, encode, transcode,
+mux, demux, stream, filter and play pretty much anything that humans and
+machines have created. It supports the most obscure ancient formats up to the
+cutting edge. No matter if they were designed by some standards committee, the
+community or a corporation.
+
+%if %{without all_codecs}
+This build of ffmpeg is limited in the number of codecs supported.
+%endif
+
+%if "x%{?pkg_suffix}" != "x"
+%package -n     %{pkg_name}
+Summary:        A complete solution to record, convert and stream audio and video
+Requires:       libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libavdevice%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libavfilter%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libavformat%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libpostproc%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libswresample%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libswscale%{?pkg_suffix}%{_isa} = %{version}-%{release}
+
+
+%description -n %{pkg_name}
+FFmpeg is a leading multimedia framework, able to decode, encode, transcode,
+mux, demux, stream, filter and play pretty much anything that humans and
+machines have created. It supports the most obscure ancient formats up to the
+cutting edge. No matter if they were designed by some standards committee, the
+community or a corporation.
+
+%if %{without all_codecs}
+This build of ffmpeg is limited in the number of codecs supported.
+%endif
+
+#/ "x%%{?pkg_suffix}" != "x"
+%endif
+
+%package -n     %{pkg_name}-devel
+Summary:        Development package for %{name}
+Requires:       libavcodec%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libavfilter%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libavformat%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libavutil%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libpostproc%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libswresample%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libswscale%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       pkgconfig
+
+%description -n %{pkg_name}-devel
+FFmpeg is a leading multimedia framework, able to decode, encode, transcode,
+mux, demux, stream, filter and play pretty much anything that humans and
+machines have created. It supports the most obscure ancient formats up to the
+cutting edge. No matter if they were designed by some standards committee, the
+community or a corporation.
+
+This package contains also private headers for libavformat, libavcodec and
+libavutil which are needed by libav-tools to build. No other package apart
+from libav should depend on these private headers which are expected to
+break compatibility without any notice.
+
+%package -n libavcodec%{?pkg_suffix}
+Summary:        FFmpeg codec library
+Requires:       libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libswresample%{?pkg_suffix}%{_isa} = %{version}-%{release}
+
+%description -n libavcodec%{?pkg_suffix}
+The libavcodec library provides a generic encoding/decoding framework
+and contains multiple decoders and encoders for audio, video and
+subtitle streams, and several bitstream filters.
+
+%if %{without all_codecs}
+This build of ffmpeg is limited in the number of codecs supported.
+%endif
+
+%package -n libavcodec%{?pkg_suffix}-devel
+Summary:        Development files for FFmpeg's codec library
+Requires:       libavutil%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       pkgconfig
+
+%description -n libavcodec%{?pkg_suffix}-devel
+The libavcodec library provides a generic encoding/decoding framework
+and contains multiple decoders and encoders for audio, video and
+subtitle streams, and several bitstream filters.
+
+This subpackage contains the headers for FFmpeg libavcodec.
+
+%package -n libavdevice%{?pkg_suffix}
+Summary:        FFmpeg device library
+Requires:       libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libavfilter%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libavformat%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release}
+
+%description -n libavdevice%{?pkg_suffix}
+The libavdevice library provides a generic framework for grabbing from
+and rendering to many common multimedia input/output devices, and
+supports several input and output devices, including Video4Linux2, VfW,
+DShow, and ALSA.
+
+%package -n libavdevice%{?pkg_suffix}-devel
+Summary:        Development files for FFmpeg's device library
+Requires:       libavcodec%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libavfilter%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libavformat%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libavutil%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libpostproc%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libswresample%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libswscale%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libavdevice%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       pkgconfig
+
+%description -n libavdevice%{?pkg_suffix}-devel
+The libavdevice library provides a generic framework for grabbing from
+and rendering to many common multimedia input/output devices, and
+supports several input and output devices, including Video4Linux2, VfW,
+DShow, and ALSA.
+
+This subpackage contains the headers for FFmpeg libavdevice.
+
+%package -n libavfilter%{?pkg_suffix}
+Summary:        FFmpeg audio and video filtering library
+Requires:       libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libavformat%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libpostproc%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libswresample%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libswscale%{?pkg_suffix}%{_isa} = %{version}-%{release}
+
+%description -n libavfilter%{?pkg_suffix}
+The libavfilter library provides a generic audio/video filtering
+framework containing several filters, sources and sinks.
+
+%package -n libavfilter%{?pkg_suffix}-devel
+Summary:        Development files for FFmpeg's audio/video filter library
+Requires:       libavcodec%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libavformat%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libavutil%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libpostproc%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libswresample%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libswscale%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libavfilter%{?pkg_suffix} = %{version}-%{release}
+Requires:       pkgconfig
+
+%description -n libavfilter%{?pkg_suffix}-devel
+The libavfilter library provides a generic audio/video filtering
+framework containing several filters, sources and sinks.
+
+This subpackage contains the headers for FFmpeg libavfilter.
+
+%package -n libavformat%{?pkg_suffix}
+Summary:        FFmpeg's stream format library
+Requires:       libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release}
+
+%description -n libavformat%{?pkg_suffix}
+The libavformat library provides a generic framework for multiplexing
+and demultiplexing (muxing and demuxing) audio, video and subtitle
+streams. It encompasses multiple muxers and demuxers for multimedia
+container formats.
+
+%if %{without all_codecs}
+This build of ffmpeg is limited in the number of codecs supported.
+%endif
+
+%package -n libavformat%{?pkg_suffix}-devel
+Summary:        Development files for FFmpeg's stream format library
+Requires:       libavcodec%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libavutil%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libswresample%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libavformat%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       pkgconfig
+
+%description -n libavformat%{?pkg_suffix}-devel
+The libavformat library provides a generic framework for multiplexing
+and demultiplexing (muxing and demuxing) audio, video and subtitle
+streams. It encompasses multiple muxers and demuxers for multimedia
+container formats.
+
+This subpackage contains the headers for FFmpeg libavformat.
+
+%package -n libavutil%{?pkg_suffix}
+Summary:        FFmpeg's utility library
+Group:          System/Libraries
+
+%description -n libavutil%{?pkg_suffix}
+The libavutil library is a utility library to aid portable multimedia
+programming. It contains safe portable string functions, random
+number generators, data structures, additional mathematics functions,
+cryptography and multimedia related functionality (like enumerations
+for pixel and sample formats).
+
+%package -n libavutil%{?pkg_suffix}-devel
+Summary:        Development files for FFmpeg's utility library
+Requires:       libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       pkgconfig
+
+%description -n libavutil%{?pkg_suffix}-devel
+The libavutil library is a utility library to aid portable multimedia
+programming. It contains safe portable string functions, random
+number generators, data structures, additional mathematics functions,
+cryptography and multimedia related functionality (like enumerations
+for pixel and sample formats).
+
+This subpackage contains the headers for FFmpeg libavutil.
+
+%package -n libpostproc%{?pkg_suffix}
+Summary:        FFmpeg post-processing library
+Requires:       libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release}
+
+%description -n libpostproc%{?pkg_suffix}
+A library with video postprocessing filters, such as deblocking and
+deringing filters, noise reduction, automatic contrast and brightness
+correction, linear/cubic interpolating deinterlacing.
+
+%package -n libpostproc%{?pkg_suffix}-devel
+Summary:        Development files for the FFmpeg post-processing library
+Requires:       libavutil%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libpostproc%{?pkg_suffix}%{_isa} = %{version}-%{release}
+Requires:       pkgconfig
+
+%description -n libpostproc%{?pkg_suffix}-devel
+A library with video postprocessing filters, such as deblocking and
+deringing filters, noise reduction, automatic contrast and brightness
+correction, linear/cubic interpolating deinterlacing.
+
+This subpackage contains the headers for FFmpeg libpostproc.
+
+%package -n libswresample%{?pkg_suffix}
+Summary:        FFmpeg software resampling library
+Requires:       libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release}
+
+%description -n libswresample%{?pkg_suffix}
+The libswresample library performs audio conversion between different
+sample rates, channel layout and channel formats.
+
+%package -n libswresample%{?pkg_suffix}-devel
+Summary:        Development files for the FFmpeg software resampling library
+Requires:       libavutil%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libswresample%{?pkg_suffix}%{_isa} = %{version}-%{release}
+
+%description -n libswresample%{?pkg_suffix}-devel
+The libswresample library performs audio conversion between different
+sample rates, channel layout and channel formats.
+
+This subpackage contains the headers for FFmpeg libswresample.
+
+%package -n libswscale%{?pkg_suffix}
+Summary:        FFmpeg image scaling and colorspace/pixel conversion library
+Requires:       libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release}
+
+%description -n libswscale%{?pkg_suffix}
+The libswscale library performs image scaling and colorspace and
+pixel format conversion operations.
+
+%package -n libswscale%{?pkg_suffix}-devel
+Summary:        Development files for FFmpeg's image scaling and colorspace library
+Provides:       libswscale%{?pkg_suffix}-devel = %{version}-%{release}
+Conflicts:      libswscale%{?pkg_suffix}-devel < %{version}-%{release}
+Requires:       libavutil%{?pkg_suffix}-devel = %{version}-%{release}
+Requires:       libswscale%{?pkg_suffix}%{_isa} = %{version}-%{release}
+
+%description -n libswscale%{?pkg_suffix}-devel
+The libswscale library performs image scaling and colorspace and
+pixel format conversion operations.
+
+This subpackage contains the headers for FFmpeg libswscale.
+
+%prep
+%if %{with upstream_tarball}
+gpgv2 --quiet --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0}
+%endif
+
+%autosetup -p1
+install -m 0644 %{SOURCE20} enable_decoders
+install -m 0644 %{SOURCE21} enable_encoders
+# fix -O3 -g in host_cflags
+sed -i "s|check_host_cflags -O3|check_host_cflags %{optflags}|" configure
+install -m0755 -d _doc/examples
+cp -a doc/examples/{*.c,Makefile,README} _doc/examples/
+
+%build
+%set_build_flags
+
+# This is not a normal configure script, don't use %%configure
+./configure \
+    --prefix=%{_prefix} \
+    --bindir=%{_bindir} \
+    --datadir=%{_datadir}/%{name} \
+    --docdir=%{_docdir}/%{name} \
+    --incdir=%{_includedir}/%{name} \
+    --libdir=%{_libdir} \
+    --mandir=%{_mandir} \
+    --arch=%{_target_cpu} \
+    --optflags="%{optflags}" \
+    --extra-cflags="%{build_cflags}" \
+    --disable-htmlpages \
+    --enable-pic \
+    --disable-stripping \
+    --enable-shared \
+    --disable-static \
+    --enable-gpl \
+    --enable-version3 \
+    --enable-libsmbclient \
+    --disable-openssl \
+    --enable-gnutls \
+    --enable-ladspa \
+%if %{with vulkan}
+    --enable-vulkan \
+%endif
+    --disable-cuda-sdk \
+    --enable-libaom \
+    --enable-libass \
+    --enable-libbluray \
+    --enable-libbs2b \
+    --enable-libcdio \
+    --enable-libdav1d \
+    --enable-libdc1394 \
+    --enable-libdrm \
+    --enable-libfdk-aac \
+    --enable-libfontconfig \
+    --enable-libfreetype \
+    --enable-libfribidi \
+    --enable-libgsm \
+    --enable-libjack \
+    --enable-libmp3lame \
+    --enable-libmysofa \
+    --enable-libopenjpeg \
+    --enable-libopenmpt \
+    --enable-libopus \
+    --enable-libpulse \
+    --enable-librav1e \
+    --enable-librubberband \
+%if %{with svtav1}
+    --enable-libsvtav1 \
+%endif
+    --enable-libsoxr \
+    --enable-libspeex \
+    --enable-libssh \
+    --enable-libsrt \
+    --enable-libtheora \
+    --enable-libtwolame \
+    --enable-libvidstab \
+    --enable-libvmaf \
+    --enable-libvorbis \
+    --enable-libv4l2 \
+    --enable-libvpx \
+    --enable-libwebp \
+    --enable-libxml2 \
+    --enable-libzimg \
+    --enable-libzvbi \
+%if %{with lto}
+  --enable-lto \
+%endif
+    --enable-libmfx \
+    --enable-vaapi \
+    --enable-vdpau \
+%if %{with amr}
+    --enable-libopencore-amrnb \
+    --enable-libopencore-amrwb \
+    --enable-libvo-amrwbenc \
+%endif
+%if %{with x264}
+    --enable-libx264 \
+%endif
+%if %{with x265}
+    --enable-libx265 \
+%endif
+%if %{with librtmp}
+    --enable-librtmp \
+%endif
+%if %{with xvid}
+    --enable-libxvid \
+%endif
+%if %{without all_codecs}
+    --enable-muxers \
+    --enable-demuxers \
+    --disable-encoders \
+    --disable-decoders \
+    --disable-decoder="mpeg4,h263,h264,hevc,vc1" \
+    --enable-encoder="$(perl -pe 's{^(\w*).*}{$1,}gs' <enable_encoders)" \
+    --enable-decoder="$(perl -pe 's{^(\w*).*}{$1,}gs' <enable_decoders)" \
+%endif
+%ifarch %{power64}
+%ifarch ppc64
+    --cpu=g5 \
+%endif
+%ifarch ppc64p7
+    --cpu=power7 \
+%endif
+%ifarch ppc64le
+    --cpu=power8 \
+%endif
+    --enable-pic \
+%endif
+%ifarch %{arm}
+    --disable-runtime-cpudetect --arch=arm \
+%ifarch armv6hl
+    --cpu=armv6 \
+%endif
+%ifarch armv7hl armv7hnl
+    --cpu=armv7-a \
+    --enable-vfpv3 \
+    --enable-thumb \
+%endif
+%ifarch armv7hl
+    --disable-neon \
+%endif
+%ifarch armv7hnl
+    --enable-neon \
+%endif
+%endif
+    || cat ffbuild/config.log
+
+cat config.h
+
+# Paranoia check
+%if %{without all_codecs}
+# DECODER
+for i in MPEG4 H263 H264 HEVC HEVC_QSV HEVC_RKMPP VC1; do
+    grep -q "#define CONFIG_${i}_DECODER 0" config.h
+done
+
+# ENCODER
+for i in MPEG4 H263 H263P LIBX264 LIBX264RGB LIBX265 LIBXVID; do
+    grep -q "#define CONFIG_${i}_ENCODER 0" config.h
+done
+for i in H264 HEVC; do
+    for j in AMF MF NVENC VIDEOTOOLBOX; do
+        grep -q "#define CONFIG_${i}_${j}_ENCODER 0" config.h
+    done
+done
+%endif
+
+%make_build V=1
+%make_build documentation V=1
+%make_build alltools V=1
+
+%install
+%make_install V=1
+
+# Install private headers required by libav-tools
+for f in libavformat/options_table.h \
+         libavformat/os_support.h \
+         libavformat/internal.h \
+         libavcodec/options_table.h \
+         libavutil/libm.h \
+         libavutil/internal.h \
+         libavutil/colorspace.h \
+         libavutil/timer.h \
+         libavutil/x86/emms.h \
+         libavutil/aarch64/timer.h \
+         libavutil/arm/timer.h \
+         libavutil/bfin/timer.h \
+         libavutil/ppc/timer.h \
+         libavutil/x86/timer.h; do
+    install -m 0755 -d "%{buildroot}%{_includedir}/ffmpeg/private/$(dirname "${f}")"
+    cp -a ${f} "%{buildroot}%{_includedir}/ffmpeg/private/${f}"
+done
+
+# We will package is as %%doc in the devel package
+rm -rf %{buildroot}%{_datadir}/%{name}/examples
+
+%ldconfig_scriptlets -n libavcodec%{?pkg_suffix}
+%ldconfig_scriptlets -n libavdevice%{?pkg_suffix}
+%ldconfig_scriptlets -n libavfilter%{?pkg_suffix}
+%ldconfig_scriptlets -n libavformat%{?pkg_suffix}
+%ldconfig_scriptlets -n libavutil%{?pkg_suffix}
+%ldconfig_scriptlets -n libpostproc%{?pkg_suffix}
+%ldconfig_scriptlets -n libswresample%{?pkg_suffix}
+%ldconfig_scriptlets -n libswscle%{?pkg_suffix}
+
+%files -n %{pkg_name}
+%doc CREDITS README.md
+%{_bindir}/ffmpeg
+%{_bindir}/ffplay
+%{_bindir}/ffprobe
+%{_mandir}/man1/ff*.1*
+%dir %{_datadir}/%{name}
+%{_datadir}/%{name}/ffprobe.xsd
+%{_datadir}/%{name}/libvpx-*.ffpreset
+
+%files -n %{pkg_name}-devel
+%doc MAINTAINERS doc/APIchanges doc/*.txt
+%doc _doc/examples
+%{_includedir}/%{name}/private
+
+%files -n libavcodec%{?pkg_suffix}
+%license COPYING.GPLv2 LICENSE.md
+%{_libdir}/libavcodec.so.%{av_codec_soversion}{,.*}
+
+%files -n libavcodec%{?pkg_suffix}-devel
+%{_includedir}/%{name}/libavcodec
+%{_libdir}/pkgconfig/libavcodec.pc
+%{_libdir}/libavcodec.so
+%{_mandir}/man3/libavcodec.3*
+
+%files -n libavdevice%{?pkg_suffix}
+%license COPYING.GPLv2 LICENSE.md
+%{_libdir}/libavdevice.so.%{av_device_soversion}{,.*}
+
+%files -n libavdevice%{?pkg_suffix}-devel
+%{_includedir}/%{name}/libavdevice
+%{_libdir}/pkgconfig/libavdevice.pc
+%{_libdir}/libavdevice.so
+%{_mandir}/man3/libavdevice.3*
+
+%files -n libavfilter%{?pkg_suffix}
+%license COPYING.GPLv2 LICENSE.md
+%{_libdir}/libavfilter.so.%{av_filter_soversion}{,.*}
+
+%files -n libavfilter%{?pkg_suffix}-devel
+%{_includedir}/%{name}/libavfilter
+%{_libdir}/pkgconfig/libavfilter.pc
+%{_libdir}/libavfilter.so
+%{_mandir}/man3/libavfilter.3*
+
+%files -n libavformat%{?pkg_suffix}
+%license COPYING.GPLv2 LICENSE.md
+%{_libdir}/libavformat.so.%{av_format_soversion}{,.*}
+
+%files -n libavformat%{?pkg_suffix}-devel
+%{_includedir}/%{name}/libavformat
+%{_libdir}/pkgconfig/libavformat.pc
+%{_libdir}/libavformat.so
+%{_mandir}/man3/libavformat.3*
+
+%files -n libavutil%{?pkg_suffix}
+%license COPYING.GPLv2 LICENSE.md
+%{_libdir}/libavutil.so.%{av_util_soversion}{,.*}
+
+%files -n libavutil%{?pkg_suffix}-devel
+%{_includedir}/%{name}/libavutil
+%{_libdir}/pkgconfig/libavutil.pc
+%{_libdir}/libavutil.so
+%{_mandir}/man3/libavutil.3*
+
+%files -n libpostproc%{?pkg_suffix}
+%license COPYING.GPLv2 LICENSE.md
+%{_libdir}/libpostproc.so.%{postproc_soversion}{,.*}
+
+%files -n libpostproc%{?pkg_suffix}-devel
+%{_includedir}/%{name}/libpostproc
+%{_libdir}/pkgconfig/libpostproc.pc
+%{_libdir}/libpostproc.so
+
+%files -n libswresample%{?pkg_suffix}
+%license COPYING.GPLv2 LICENSE.md
+%{_libdir}/libswresample.so.%{swresample_soversion}{,.*}
+
+%files -n libswresample%{?pkg_suffix}-devel
+%{_includedir}/%{name}/libswresample
+%{_libdir}/pkgconfig/libswresample.pc
+%{_libdir}/libswresample.so
+%{_mandir}/man3/libswresample.3*
+
+%files -n libswscale%{?pkg_suffix}
+%license COPYING.GPLv2 LICENSE.md
+%{_libdir}/libswscale.so.%{swscale_soversion}{,.*}
+
+%files -n libswscale%{?pkg_suffix}-devel
+%{_includedir}/%{name}/libswscale
+%{_libdir}/pkgconfig/libswscale.pc
+%{_libdir}/libswscale.so
+%{_mandir}/man3/libswscale.3*
+
+%changelog
+* Fri Feb 11 2022 Andreas Schneider <asn@redhat.com> - 5.0-1
+- Initial import (fedora#2051008)

diff --git a/ffmpeg_clean_sources.sh b/ffmpeg_clean_sources.sh
new file mode 100755
index 0000000..5303e71
--- /dev/null
+++ b/ffmpeg_clean_sources.sh
@@ -0,0 +1,1239 @@
+#!/bin/bash
+#
+# Copyright (c) 2022      Andreas Schneider <asn@cryptomilk.org>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+# shellcheck disable=2181
+
+FF_PKGNAME="ffmpeg"
+FF_PKGNAME_SUFFIX="-free"
+FF_VERSION="$(rpmspec -P ./*.spec | grep ^Version | sed -e 's/Version:[ ]*//g')"
+FF_TARBALL_URL="https://ffmpeg.org/releases/${FF_PKGNAME}-${FF_VERSION}.tar.xz"
+FF_TARBALL="$(basename "${FF_TARBALL_URL}")"
+FF_GPG_ARMOR_FILE="${FF_TARBALL}.asc"
+FF_PKG_DIR="$(pwd)"
+FF_KEYRING="${FF_PKG_DIR}/ffmpeg.keyring"
+FF_TMPDIR=$(mktemp --tmpdir -d ffmpeg-XXXXXXXX)
+FF_PATH="${FF_TMPDIR}/${FF_PKGNAME}-${FF_VERSION}"
+
+cleanup_tmpdir() {
+    # shellcheck disable=2164
+    popd 2>/dev/null
+    rm -rf "${FF_TMPDIR}"
+}
+trap cleanup_tmpdir SIGINT
+
+cleanup_and_exit()
+{
+    cleanup_tmpdir
+
+    if test "$1" = 0 -o -z "$1"; then
+        exit 0
+    else
+        # shellcheck disable=2086
+        exit ${1}
+    fi
+}
+
+function usage()
+{
+    echo "Usage: $(basename "${0}") BUILD_LOG"
+    cleanup_and_exit 0
+}
+
+if [[ $# -lt 1 ]]; then
+    usage
+fi
+
+build_log="$(readlink -f "${1}")"
+if [[ -z "${build_log}" ]] || [[ ! -r "${build_log}" ]]; then
+    echo "Build log doesn't exist: %{build_log}"
+    cleanup_and_exit 1
+fi
+
+if [[ ! -w "${FF_TARBALL}" ]]; then
+    echo ">>> Downloading tarball and signature"
+    wget "${FF_TARBALL_URL}"
+    wget "${FF_TARBALL_URL}.asc"
+fi
+
+echo ">>> Verifying ${FF_TARBALL} GPG signature"
+gpgv2 --quiet --keyring "${FF_KEYRING}" "${FF_GPG_ARMOR_FILE}" "${FF_TARBALL}"
+if [ $? -ne 0 ]; then
+    echo "ERROR: GPG signature verification failed"
+    cleanup_and_exit 1
+fi
+echo
+
+echo ">>> Unpacking ${FF_TARBALL}"
+
+tar -xf "${FF_TARBALL}" -C "${FF_TMPDIR}"
+if [ $? -ne 0 ]; then
+    echo "ERROR: Failed to unpack ${FF_TARBALL}"
+    cleanup_and_exit 1
+fi
+
+other_files=(CONTRIBUTING.md
+             COPYING.GPLv2
+             COPYING.GPLv3
+             COPYING.LGPLv2.1
+             COPYING.LGPLv3
+             CREDITS
+             Changelog
+             INSTALL.md
+             LICENSE.md
+             MAINTAINERS
+             README.md
+             RELEASE
+             RELEASE_NOTES
+             VERSION
+             configure)
+
+doc_files=(doc/APIchanges
+           doc/Doxyfile
+           doc/authors.texi
+           doc/bitstream_filters.texi
+           doc/bootstrap.min.css
+           doc/build_system.txt
+           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
+           doc/encoders.texi
+           doc/errno.txt
+           doc/examples/Makefile.example
+           doc/examples/README
+           doc/examples/avio_list_dir.c
+           doc/examples/avio_reading.c
+           doc/examples/decode_audio.c
+           doc/examples/decode_video.c
+           doc/examples/demuxing_decoding.c
+           doc/examples/encode_audio.c
+           doc/examples/encode_video.c
+           doc/examples/extract_mvs.c
+           doc/examples/filter_audio.c
+           doc/examples/filtering_audio.c
+           doc/examples/filtering_video.c
+           doc/examples/http_multiclient.c
+           doc/examples/hw_decode.c
+           doc/examples/metadata.c
+           doc/examples/muxing.c
+           doc/examples/qsvdec.c
+           doc/examples/remuxing.c
+           doc/examples/resampling_audio.c
+           doc/examples/scaling_video.c
+           doc/examples/transcode_aac.c
+           doc/examples/transcoding.c
+           doc/examples/vaapi_encode.c
+           doc/examples/vaapi_transcode.c
+           doc/faq.texi
+           doc/fate.texi
+           doc/fate_config.sh.template
+           doc/ffmpeg-bitstream-filters.texi
+           doc/ffmpeg-codecs.texi
+           doc/ffmpeg-devices.texi
+           doc/ffmpeg-filters.texi
+           doc/ffmpeg-formats.texi
+           doc/ffmpeg-protocols.texi
+           doc/ffmpeg-resampler.texi
+           doc/ffmpeg-scaler.texi
+           doc/ffmpeg-utils.texi
+           doc/ffmpeg.texi
+           doc/ffmpeg.txt
+           doc/ffplay.texi
+           doc/ffprobe.texi
+           doc/ffprobe.xsd
+           doc/fftools-common-opts.texi
+           doc/filter_design.txt
+           doc/filters.texi
+           doc/formats.texi
+           doc/general.texi
+           doc/general_contents.texi
+           doc/git-howto.texi
+           doc/indevs.texi
+           doc/issue_tracker.txt
+           doc/lexicon
+           doc/libav-merge.txt
+           doc/libavcodec.texi
+           doc/libavdevice.texi
+           doc/libavfilter.texi
+           doc/libavformat.texi
+           doc/libavutil.texi
+           doc/libswresample.texi
+           doc/libswscale.texi
+           doc/mailing-list-faq.texi
+           doc/metadata.texi
+           doc/mips.txt
+           doc/multithreading.txt
+           doc/muxers.texi
+           doc/nut.texi
+           doc/optimization.txt
+           doc/outdevs.texi
+           doc/patchwork
+           doc/platform.texi
+           doc/protocols.texi
+           doc/rate_distortion.txt
+           doc/resampler.texi
+           doc/scaler.texi
+           doc/snow.txt
+           doc/style.min.css
+           doc/swresample.txt
+           doc/swscale.txt
+           doc/t2h.init
+           doc/t2h.pm
+           doc/tablegen.txt
+           doc/texi2pod.pl
+           doc/texidep.pl
+           doc/transforms.md
+           doc/undefined.txt
+           doc/utils.texi
+           doc/writing_filters.txt)
+
+version_scripts=(libavcodec/libavcodec.v
+                 libswscale/libswscale.v
+                 libavfilter/libavfilter.v
+                 libavutil/libavutil.v
+                 libavdevice/libavdevice.v
+                 libswresample/libswresample.v
+                 libavformat/libavformat.v
+                 libpostproc/libpostproc.v)
+
+build_files=(ffbuild/arch.mak
+             ffbuild/bin2c.c
+             ffbuild/common.mak
+             ffbuild/library.mak
+             ffbuild/libversion.sh
+             ffbuild/pkgconfig_generate.sh
+             ffbuild/version.sh)
+
+make_files=(Makefile
+            doc/Makefile
+            doc/examples/Makefile
+            fftools/Makefile
+            libavcodec/Makefile
+            libavcodec/aarch64/Makefile
+            libavcodec/alpha/Makefile
+            libavcodec/arm/Makefile
+            libavcodec/loongarch/Makefile
+            libavcodec/mips/Makefile
+            libavcodec/neon/Makefile
+            libavcodec/ppc/Makefile
+            libavcodec/x86/Makefile
+            libavdevice/Makefile
+            libavfilter/Makefile
+            libavfilter/aarch64/Makefile
+            libavfilter/dnn/Makefile
+            libavfilter/x86/Makefile
+            libavformat/Makefile
+            libavutil/Makefile
+            libavutil/aarch64/Makefile
+            libavutil/arm/Makefile
+            libavutil/loongarch/Makefile
+            libavutil/mips/Makefile
+            libavutil/ppc/Makefile
+            libavutil/x86/Makefile
+            libpostproc/Makefile
+            libswresample/Makefile
+            libswresample/aarch64/Makefile
+            libswresample/arm/Makefile
+            libswresample/x86/Makefile
+            libswscale/Makefile
+            libswscale/aarch64/Makefile
+            libswscale/arm/Makefile
+            libswscale/ppc/Makefile
+            libswscale/x86/Makefile
+            tools/Makefile)
+
+test_files=(tests/Makefile
+            tests/api/Makefile
+            tests/checkasm/Makefile
+            tests/fate/aac.mak
+            tests/fate/ac3.mak
+            tests/fate/acodec.mak
+            tests/fate/adpcm.mak
+            tests/fate/alac.mak
+            tests/fate/als.mak
+            tests/fate/amrnb.mak
+            tests/fate/amrwb.mak
+            tests/fate/api.mak
+            tests/fate/apng.mak
+            tests/fate/atrac.mak
+            tests/fate/audio.mak
+            tests/fate/bmp.mak
+            tests/fate/build.mak
+            tests/fate/caf.mak
+            tests/fate/canopus.mak
+            tests/fate/cbs.mak
+            tests/fate/cdxl.mak
+            tests/fate/checkasm.mak
+            tests/fate/concatdec.mak
+            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/ea.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
+            tests/fate/fits.mak
+            tests/fate/flac.mak
+            tests/fate/flvenc.mak
+            tests/fate/gapless.mak
+            tests/fate/gif.mak
+            tests/fate/h264.mak
+            tests/fate/hap.mak
+            tests/fate/hevc.mak
+            tests/fate/hlsenc.mak
+            tests/fate/hw.mak
+            tests/fate/id3v2.mak
+            tests/fate/image.mak
+            tests/fate/indeo.mak
+            tests/fate/lavf-audio.mak
+            tests/fate/lavf-container.mak
+            tests/fate/lavf-image.mak
+            tests/fate/lavf-image2pipe.mak
+            tests/fate/lavf-video.mak
+            tests/fate/libavcodec.mak
+            tests/fate/libavdevice.mak
+            tests/fate/libavformat.mak
+            tests/fate/libavutil.mak
+            tests/fate/libswresample.mak
+            tests/fate/libswscale.mak
+            tests/fate/lossless-audio.mak
+            tests/fate/lossless-video.mak
+            tests/fate/matroska.mak
+            tests/fate/microsoft.mak
+            tests/fate/monkeysaudio.mak
+            tests/fate/mov.mak
+            tests/fate/mp3.mak
+            tests/fate/mpc.mak
+            tests/fate/mpeg4.mak
+            tests/fate/mpegps.mak
+            tests/fate/mpegts.mak
+            tests/fate/mxf.mak
+            tests/fate/oma.mak
+            tests/fate/opus.mak
+            tests/fate/pcm.mak
+            tests/fate/pixfmt.mak
+            tests/fate/pixlet.mak
+            tests/fate/probe.mak
+            tests/fate/prores.mak
+            tests/fate/qt.mak
+            tests/fate/qtrle.mak
+            tests/fate/real.mak
+            tests/fate/screen.mak
+            tests/fate/seek.mak
+            tests/fate/segment.mak
+            tests/fate/source.mak
+            tests/fate/speedhq.mak
+            tests/fate/subtitles.mak
+            tests/fate/truehd.mak
+            tests/fate/utvideo.mak
+            tests/fate/vcodec.mak
+            tests/fate/video.mak
+            tests/fate/voice.mak
+            tests/fate/vorbis.mak
+            tests/fate/vpx.mak
+            tests/fate/vqf.mak
+            tests/fate/wavpack.mak
+            tests/fate/wma.mak
+            tests/fate/xvid.mak)
+
+header_files=(compat/atomics/gcc/stdatomic.h
+              compat/cuda/dynlink_loader.h
+              compat/va_copy.h
+              compat/w32dlfcn.h
+              fftools/cmdutils.h
+              fftools/ffmpeg.h
+              libavcodec/aac_ac3_parser.h
+              libavcodec/aac_defines.h
+              libavcodec/aandcttab.h
+              libavcodec/ac3.h
+              libavcodec/ac3_channel_layout_tab.h
+              libavcodec/ac3_parser.h
+              libavcodec/ac3_parser_internal.h
+              libavcodec/ac3dec.c
+              libavcodec/ac3dec.h
+              libavcodec/ac3dec_data.h
+              libavcodec/ac3dsp.h
+              libavcodec/ac3enc.h
+              libavcodec/ac3enc_template.c
+              libavcodec/ac3tab.h
+              libavcodec/adts_header.h
+              libavcodec/adts_parser.h
+              libavcodec/adx.h
+              libavcodec/apng.h
+              libavcodec/arm/vp8dsp.h
+              libavcodec/ass.h
+              libavcodec/ass_split.h
+              libavcodec/atsc_a53.h
+              libavcodec/audio_frame_queue.h
+              libavcodec/audiodsp.h
+              libavcodec/av1.h
+              libavcodec/av1_parse.h
+              libavcodec/av1dec.h
+              libavcodec/avcodec.h
+              libavcodec/avdct.h
+              libavcodec/avfft.h
+              libavcodec/avs3.h
+              libavcodec/bethsoftvideo.h
+              libavcodec/bintext.h
+              libavcodec/bit_depth_template.c
+              libavcodec/blockdsp.h
+              libavcodec/bmp.h
+              libavcodec/bsf.h
+              libavcodec/bsf_internal.h
+              libavcodec/bswapdsp.h
+              libavcodec/bytestream.h
+              libavcodec/cabac.h
+              libavcodec/cavs.h
+              libavcodec/cavsdsp.h
+              libavcodec/cbrt_data.h
+              libavcodec/cbrt_tablegen.h
+              libavcodec/cbs.h
+              libavcodec/cbs_av1.h
+              libavcodec/cbs_av1_syntax_template.c
+              libavcodec/cbs_bsf.h
+              libavcodec/cbs_h264.h
+              libavcodec/cbs_h2645.h
+              libavcodec/cbs_h264_syntax_template.c
+              libavcodec/cbs_h265.h
+              libavcodec/cbs_h265_syntax_template.c
+              libavcodec/cbs_internal.h
+              libavcodec/cbs_jpeg.h
+              libavcodec/cbs_mpeg2.h
+              libavcodec/cbs_mpeg2_syntax_template.c
+              libavcodec/cbs_sei.h
+              libavcodec/cbs_sei_syntax_template.c
+              libavcodec/cbs_vp9.h
+              libavcodec/cbs_vp9_syntax_template.c
+              libavcodec/cga_data.h
+              libavcodec/codec.h
+              libavcodec/codec2utils.h
+              libavcodec/codec_desc.h
+              libavcodec/codec_id.h
+              libavcodec/codec_par.h
+              libavcodec/copy_block.h
+              libavcodec/d3d11va.h
+              libavcodec/dca.h
+              libavcodec/dca_core.h
+              libavcodec/dca_exss.h
+              libavcodec/dca_lbr.h
+              libavcodec/dca_sample_rate_tab.h
+              libavcodec/dca_syncwords.h
+              libavcodec/dca_xll.h
+              libavcodec/dcadata.h
+              libavcodec/dcadct.h
+              libavcodec/dcadec.h
+              libavcodec/dcadsp.h
+              libavcodec/dcaenc.h
+              libavcodec/dcahuff.h
+              libavcodec/dcamath.h
+              libavcodec/dct.h
+              libavcodec/dct32.h
+              libavcodec/dct32_template.c
+              libavcodec/decode.h
+              libavcodec/defs.h
+              libavcodec/dirac.h
+              libavcodec/dirac_arith.h
+              libavcodec/dirac_dwt.h
+              libavcodec/dirac_dwt_template.c
+              libavcodec/dirac_vlc.h
+              libavcodec/diracdsp.h
+              libavcodec/diractab.h
+              libavcodec/dnxhddata.h
+              libavcodec/dolby_e.h
+              libavcodec/dovi_rpu.h
+              libavcodec/dv.h
+              libavcodec/dv_profile.h
+              libavcodec/dv_profile_internal.h
+              libavcodec/dvaudio.h
+              libavcodec/dvbtxt.h
+              libavcodec/dxva2.h
+              libavcodec/dynamic_hdr10_plus.h
+              libavcodec/eac3_data.h
+              libavcodec/eac3dec.c
+              libavcodec/eac3enc.h
+              libavcodec/elbg.h
+              libavcodec/encode.h
+              libavcodec/error_resilience.h
+              libavcodec/exif.h
+              libavcodec/exrdsp.h
+              libavcodec/faandct.h
+              libavcodec/faanidct.h
+              libavcodec/faxcompr.h
+              libavcodec/fdctdsp.h
+              libavcodec/fft-internal.h
+              libavcodec/fft.h
+              libavcodec/fft_table.h
+              libavcodec/fft_template.c
+              libavcodec/ffv1.h
+              libavcodec/ffv1_template.c
+              libavcodec/ffv1dec_template.c
+              libavcodec/ffv1enc_template.c
+              libavcodec/fits.h
+              libavcodec/flac.h
+              libavcodec/flacdata.h
+              libavcodec/flacdsp.h
+              libavcodec/flacdsp_lpc_template.c
+              libavcodec/flacdsp_template.c
+              libavcodec/flv.h
+              libavcodec/fmtconvert.h
+              libavcodec/frame_thread_encoder.h
+              libavcodec/g723_1.h
+              libavcodec/g729.h
+              libavcodec/get_bits.h
+              libavcodec/gif.h
+              libavcodec/golomb.h
+              libavcodec/gsm.h
+              libavcodec/gsmdec_data.h
+              libavcodec/gsmdec_template.c
+              libavcodec/h261.h
+              libavcodec/h263.h
+              libavcodec/h263_parser.h
+              libavcodec/h263data.h
+              libavcodec/h263dsp.h
+              libavcodec/h264.h
+              libavcodec/h2645_parse.h
+              libavcodec/h264_levels.h
+              libavcodec/h264_parse.h
+              libavcodec/h264_ps.h
+              libavcodec/h264_sei.h
+              libavcodec/h264addpx_template.c
+              libavcodec/h264chroma.h
+              libavcodec/h264chroma_template.c
+              libavcodec/h264data.h
+              libavcodec/h264dec.h
+              libavcodec/h264dsp.h
+              libavcodec/h264dsp_template.c
+              libavcodec/h264idct.h
+              libavcodec/h264idct_template.c
+              libavcodec/h264pred.h
+              libavcodec/h264pred_template.c
+              libavcodec/h264qpel.h
+              libavcodec/h265_profile_level.h
+              libavcodec/h274.h
+              libavcodec/half2float.h
+              libavcodec/hap.h
+              libavcodec/hevc.h
+              libavcodec/hevc_data.h
+              libavcodec/hevc_parse.h
+              libavcodec/hevc_ps.h
+              libavcodec/hevc_sei.h
+              libavcodec/hevcdec.h
+              libavcodec/hevcdsp.h
+              libavcodec/hevcpred.h
+              libavcodec/hpeldsp.h
+              libavcodec/hpel_template.c
+              libavcodec/htmlsubtitles.h
+              libavcodec/huffman.h
+              libavcodec/huffyuv.h
+              libavcodec/huffyuvdsp.h
+              libavcodec/huffyuvencdsp.h
+              libavcodec/hwaccels.h
+              libavcodec/hwconfig.h
+              libavcodec/ilbcdata.h
+              libavcodec/idctdsp.h
+              libavcodec/iirfilter.h
+              libavcodec/internal.h
+              libavcodec/intrax8.h
+              libavcodec/intrax8dsp.h
+              libavcodec/jacosub.h
+              libavcodec/jfdctint_template.c
+              libavcodec/jni.h
+              libavcodec/jpegls.h
+              libavcodec/jpeg2000.h
+              libavcodec/jpeg2000dwt.h
+              libavcodec/jpeg2000dsp.h
+              libavcodec/jpeglsdec.h
+              libavcodec/jpegtables.h
+              libavcodec/jpegtabs.h
+              libavcodec/kbdwin.h
+              libavcodec/lcl.h
+              libavcodec/libopus.h
+              libavcodec/libvpx.h
+              libavcodec/libwebpenc_common.h
+              libavcodec/lossless_videodsp.h
+              libavcodec/lossless_videoencdsp.h
+              libavcodec/lpc.h
+              libavcodec/lzw.h
+              libavcodec/mathops.h
+              libavcodec/mdct15.h
+              libavcodec/mdct_template.c
+              libavcodec/me_cmp.h
+              libavcodec/mediacodec.h
+              libavcodec/mjpeg.h
+              libavcodec/mjpegdec.h
+              libavcodec/mjpegenc.h
+              libavcodec/mjpegenc_common.h
+              libavcodec/mjpegenc_huffman.h
+              libavcodec/mlp.h
+              libavcodec/mlp_parse.h
+              libavcodec/motion_est.h
+              libavcodec/motion_est_template.c
+              libavcodec/mpeg12.h
+              libavcodec/mpeg12data.h
+              libavcodec/mpeg12vlc.h
+              libavcodec/mpeg4audio.h
+              libavcodec/mpeg4audio_sample_rates.h
+              libavcodec/mpeg4data.h
+              libavcodec/mpeg4video.h
+              libavcodec/mpeg4video_parser.h
+              libavcodec/mpeg_er.h
+              libavcodec/mpegaudio.h
+              libavcodec/mpegaudio_tablegen.h
+              libavcodec/mpegaudiodata.h
+              libavcodec/mpegaudiodec_common_tablegen.h
+              libavcodec/mpegaudiodec_template.c
+              libavcodec/mpegaudiodecheader.h
+              libavcodec/mpegaudiodsp.h
+              libavcodec/mpegaudiodsp_template.c
+              libavcodec/mpegaudioenc_template.c
+              libavcodec/mpegaudiotab.h
+              libavcodec/mpegaudiotabs.h
+              libavcodec/mpegpicture.h
+              libavcodec/mpegutils.h
+              libavcodec/mpegvideo.h
+              libavcodec/mpegvideodata.h
+              libavcodec/mpegvideodsp.h
+              libavcodec/mpegvideoencdsp.h
+              libavcodec/mqc.h
+              libavcodec/msgsmdec.h
+              libavcodec/msmpeg4.h
+              libavcodec/msmpeg4data.h
+              libavcodec/msrledec.h
+              libavcodec/nvdec.h
+              libavcodec/options_table.h
+              libavcodec/opus.h
+              libavcodec/opus_celt.h
+              libavcodec/opus_pvq.h
+              libavcodec/opus_rc.h
+              libavcodec/opusdsp.h
+              libavcodec/opusenc.h
+              libavcodec/opusenc_psy.h
+              libavcodec/opusenc_utils.h
+              libavcodec/opustab.h
+              libavcodec/packet.h
+              libavcodec/packet_internal.h
+              libavcodec/paf.h
+              libavcodec/parser.h
+              libavcodec/pcm_tablegen.h
+              libavcodec/pel_template.c
+              libavcodec/pixblockdsp.h
+              libavcodec/pixels.h
+              libavcodec/png.h
+              libavcodec/pngdsp.h
+              libavcodec/pnm.h
+              libavcodec/profiles.h
+              libavcodec/psymodel.h
+              libavcodec/pthread_internal.h
+              libavcodec/put_bits.h
+              libavcodec/qpeldsp.h
+              libavcodec/qpel_template.c
+              libavcodec/qsv.h
+              libavcodec/qsv_internal.h
+              libavcodec/qsvenc.h
+              libavcodec/rangecoder.h
+              libavcodec/ratecontrol.h
+              libavcodec/raw.h
+              libavcodec/rdft.h
+              libavcodec/rectangle.h
+              libavcodec/rl.h
+              libavcodec/rle.h
+              libavcodec/rnd_avg.h
+              libavcodec/rv10.h
+              libavcodec/sbc.h
+              libavcodec/sbr.h
+              libavcodec/sbrdsp.h
+              libavcodec/sbrdsp_template.c
+              libavcodec/sei.h
+              libavcodec/sgi.h
+              libavcodec/simple_idct.h
+              libavcodec/simple_idct_template.c
+              libavcodec/sinewin.h
+              libavcodec/sinewin_tablegen.h
+              libavcodec/sp5x.h
+              libavcodec/speedhqenc.h
+              libavcodec/startcode.h
+              libavcodec/sunrast.h
+              libavcodec/synth_filter.h
+              libavcodec/tak.h
+              libavcodec/targa.h
+              libavcodec/texturedsp.h
+              libavcodec/thread.h
+              libavcodec/tiff.h
+              libavcodec/tiff_common.h
+              libavcodec/tiff_data.h
+              libavcodec/to_upper4.h
+              libavcodec/ttmlenc.h
+              libavcodec/unary.h
+              libavcodec/v210dec.h
+              libavcodec/v210enc.h
+              libavcodec/v210_template.c
+              libavcodec/v4l2_buffers.h
+              libavcodec/v4l2_context.h
+              libavcodec/v4l2_fmt.h
+              libavcodec/v4l2_m2m.h
+              libavcodec/vaapi_decode.h
+              libavcodec/vaapi_encode.h
+              libavcodec/vaapi_hevc.h
+              libavcodec/vc1.h
+              libavcodec/vc1_common.h
+              libavcodec/vc1_pred.h
+              libavcodec/vc1acdata.h
+              libavcodec/vc1data.h
+              libavcodec/vc1dsp.h
+              libavcodec/vdpau.h
+              libavcodec/vdpau_internal.h
+              libavcodec/version.h
+              libavcodec/videodsp.h
+              libavcodec/videodsp_template.c
+              libavcodec/videotoolbox.h
+              libavcodec/vlc.h
+              libavcodec/vorbis.h
+              libavcodec/vorbis_enc_data.h
+              libavcodec/vorbis_parser.h
+              libavcodec/vorbis_parser_internal.h
+              libavcodec/vorbisdsp.h
+              libavcodec/vp3data.h
+              libavcodec/vp3dsp.h
+              libavcodec/vp4data.h
+              libavcodec/vp56.h
+              libavcodec/vp56data.h
+              libavcodec/vp56dsp.h
+              libavcodec/vp5data.h
+              libavcodec/vp6data.h
+              libavcodec/vp8.h
+              libavcodec/vp8data.h
+              libavcodec/vp8dsp.h
+              libavcodec/vp9.h
+              libavcodec/vp9_mc_template.c
+              libavcodec/vp9data.h
+              libavcodec/vp9dec.h
+              libavcodec/vp9dsp.h
+              libavcodec/vp9dsp_template.c
+              libavcodec/vp9shared.h
+              libavcodec/wmv2.h
+              libavcodec/wmv2data.h
+              libavcodec/wmv2dsp.h
+              libavcodec/xiph.h
+              libavcodec/xvididct.h
+              libavcodec/xvmc.h
+              libavcodec/xvmc_internal.h
+              libavcodec/xwd.h
+              libavcodec/aarch64/vp8dsp.h
+              libavcodec/ppc/audiodsp.c
+              libavcodec/ppc/blockdsp.c
+              libavcodec/ppc/fdctdsp.c
+              libavcodec/ppc/fft_init.c
+              libavcodec/ppc/fmtconvert_altivec.c
+              libavcodec/ppc/idctdsp.c
+              libavcodec/ppc/lossless_audiodsp_altivec.c
+              libavcodec/ppc/lossless_videodsp_altivec.c
+              libavcodec/ppc/pixblockdsp.c
+              libavcodec/ppc/vc1dsp_altivec.c
+              libavcodec/ppc/vorbisdsp_altivec.c
+              libavcodec/ppc/vp3dsp_altivec.c
+              libavcodec/ppc/vp8dsp_altivec.c
+              libavcodec/x86/constants.h
+              libavcodec/x86/fdct.h
+              libavcodec/x86/fft.h
+              libavcodec/x86/fpel.h
+              libavcodec/x86/hpeldsp.h
+              libavcodec/x86/hpeldsp_rnd_template.c
+              libavcodec/x86/idctdsp.h
+              libavcodec/x86/inline_asm.h
+              libavcodec/x86/mathops.h
+              libavcodec/x86/mpegvideoenc_qns_template.c
+              libavcodec/x86/mpegvideoenc_template.c
+              libavcodec/x86/rnd_template.c
+              libavcodec/x86/simple_idct.h
+              libavcodec/x86/vc1dsp.h
+              libavcodec/x86/vp56_arith.h
+              libavcodec/x86/vp9dsp_init.h
+              libavcodec/x86/vp9dsp_init_16bpp_template.c
+              libavdevice/alsa.h
+              libavdevice/avdevice.h
+              libavdevice/decklink_common.h
+              libavdevice/decklink_common_c.h
+              libavdevice/decklink_dec.h
+              libavdevice/decklink_enc.h
+              libavdevice/dshow_capture.h
+              libavdevice/fbdev_common.h
+              libavdevice/internal.h
+              libavdevice/opengl_enc_shaders.h
+              libavdevice/oss.h
+              libavdevice/pulse_audio_common.h
+              libavdevice/sndio.h
+              libavdevice/timefilter.h
+              libavdevice/v4l2-common.h
+              libavdevice/version.h
+              libavfilter/af_afir.h
+              libavfilter/af_anlmdndsp.h
+              libavfilter/af_volume.h
+              libavfilter/atadenoise.h
+              libavfilter/audio.h
+              libavfilter/avf_showcqt.h
+              libavfilter/avfilter.h
+              libavfilter/bbox.h
+              libavfilter/blend.h
+              libavfilter/blend_modes.c
+              libavfilter/boxblur.h
+              libavfilter/bufferqueue.h
+              libavfilter/buffersink.h
+              libavfilter/buffersrc.h
+              libavfilter/bwdif.h
+              libavfilter/colorspace.h
+              libavfilter/colorspacedsp.h
+              libavfilter/colorspacedsp_template.c
+              libavfilter/colorspacedsp_yuv2yuv_template.c
+              libavfilter/convolution.h
+              libavfilter/deshake.h
+              libavfilter/dnn/dnn_backend_common.h
+              libavfilter/dnn/dnn_backend_native.h
+              libavfilter/dnn/dnn_backend_native_layer_avgpool.h
+              libavfilter/dnn/dnn_backend_native_layer_conv2d.h
+              libavfilter/dnn/dnn_backend_native_layer_dense.h
+              libavfilter/dnn/dnn_backend_native_layer_depth2space.h
+              libavfilter/dnn/dnn_backend_native_layer_mathbinary.h
+              libavfilter/dnn/dnn_backend_native_layer_mathunary.h
+              libavfilter/dnn/dnn_backend_native_layer_maximum.h
+              libavfilter/dnn/dnn_backend_native_layer_pad.h
+              libavfilter/dnn/dnn_backend_native_layers.h
+              libavfilter/dnn/dnn_backend_openvino.h
+              libavfilter/dnn/dnn_backend_tf.h
+              libavfilter/dnn/dnn_io_proc.h
+              libavfilter/dnn/queue.h
+              libavfilter/dnn/safe_queue.h
+              libavfilter/dnn_filter_common.h
+              libavfilter/dnn_interface.h
+              libavfilter/drawutils.h
+              libavfilter/ebur128.h
+              libavfilter/filters.h
+              libavfilter/formats.h
+              libavfilter/framepool.h
+              libavfilter/framequeue.h
+              libavfilter/framerate.h
+              libavfilter/framesync.h
+              libavfilter/gblur.h
+              libavfilter/generate_wave_table.h
+              libavfilter/gradfun.h
+              libavfilter/hermite.h
+              libavfilter/hflip.h
+              libavfilter/internal.h
+              libavfilter/lavfutils.h
+              libavfilter/limiter.h
+              libavfilter/lswsutils.h
+              libavfilter/lut3d.h
+              libavfilter/maskedclamp.h
+              libavfilter/maskedmerge.h
+              libavfilter/median.h
+              libavfilter/median_template.c
+              libavfilter/motion_estimation.h
+              libavfilter/phase_template.c
+              libavfilter/preserve_color.h
+              libavfilter/psnr.h
+              libavfilter/qp_table.h
+              libavfilter/qsvvpp.h
+              libavfilter/removegrain.h
+              libavfilter/scale_eval.h
+              libavfilter/scene_sad.h
+              libavfilter/signature.h
+              libavfilter/signature_lookup.c
+              libavfilter/ssim.h
+              libavfilter/stereo3d.h
+              libavfilter/thread.h
+              libavfilter/threshold.h
+              libavfilter/tinterlace.h
+              libavfilter/transform.h
+              libavfilter/transpose.h
+              libavfilter/unsharp.h
+              libavfilter/v360.h
+              libavfilter/vaapi_vpp.h
+              libavfilter/version.h
+              libavfilter/vf_eq.h
+              libavfilter/vf_fspp.h
+              libavfilter/vf_hqdn3d.h
+              libavfilter/vf_idet.h
+              libavfilter/vf_nlmeans.h
+              libavfilter/vf_noise.h
+              libavfilter/vf_overlay.h
+              libavfilter/vf_pp7.h
+              libavfilter/vf_pullup.h
+              libavfilter/vf_scale_cuda.h
+              libavfilter/vf_spp.h
+              libavfilter/video.h
+              libavfilter/vidstabutils.h
+              libavfilter/vmaf_motion.h
+              libavfilter/vulkan.h
+              libavfilter/vulkan_filter.h
+              libavfilter/w3fdif.h
+              libavfilter/window_func.h
+              libavfilter/yadif.h
+              libavformat/aiff.h
+              libavformat/apetag.h
+              libavformat/argo_asf.h
+              libavformat/asf.h
+              libavformat/asfcrypt.h
+              libavformat/ast.h
+              libavformat/av1.h
+              libavformat/avc.h
+              libavformat/avformat.h
+              libavformat/avi.h
+              libavformat/avio.h
+              libavformat/avio_internal.h
+              libavformat/avlanguage.h
+              libavformat/caf.h
+              libavformat/dash.h
+              libavformat/dovi_isom.h
+              libavformat/dv.h
+              libavformat/ffmeta.h
+              libavformat/flac_picture.h
+              libavformat/flacenc.h
+              libavformat/flv.h
+              libavformat/gxf.h
+              libavformat/hevc.h
+              libavformat/hls_sample_encryption.h
+              libavformat/hlsplaylist.h
+              libavformat/http.h
+              libavformat/httpauth.h
+              libavformat/id3v1.h
+              libavformat/id3v2.h
+              libavformat/imf.h
+              libavformat/img2.h
+              libavformat/internal.h
+              libavformat/ip.h
+              libavformat/ircam.h
+              libavformat/isom.h
+              libavformat/lrc.h
+              libavformat/matroska.h
+              libavformat/metadata.h
+              libavformat/mms.h
+              libavformat/mov_chan.h
+              libavformat/movenc.h
+              libavformat/movenc_ttml.h
+              libavformat/movenccenc.h
+              libavformat/mpeg.h
+              libavformat/mpegts.h
+              libavformat/mxf.h
+              libavformat/network.h
+              libavformat/nut.h
+              libavformat/oggdec.h
+              libavformat/oma.h
+              libavformat/options_table.h
+              libavformat/os_support.h
+              libavformat/pcm.h
+              libavformat/qtpalette.h
+              libavformat/rawdec.h
+              libavformat/rawenc.h
+              libavformat/rdt.h
+              libavformat/replaygain.h
+              libavformat/riff.h
+              libavformat/rm.h
+              libavformat/rmsipr.h
+              libavformat/rso.h
+              libavformat/rtmp.h
+              libavformat/rtmpcrypt.h
+              libavformat/rtmppkt.h
+              libavformat/rtp.h
+              libavformat/rtpdec.h
+              libavformat/rtpdec_formats.h
+              libavformat/rtpenc.h
+              libavformat/rtpenc_chain.h
+              libavformat/rtpproto.h
+              libavformat/rtsp.h
+              libavformat/rtspcodes.h
+              libavformat/sauce.h
+              libavformat/smjpeg.h
+              libavformat/sox.h
+              libavformat/spdif.h
+              libavformat/srtp.h
+              libavformat/subtitles.h
+              libavformat/swf.h
+              libavformat/tee_common.h
+              libavformat/tls.h
+              libavformat/ttmlenc.h
+              libavformat/url.h
+              libavformat/urldecode.h
+              libavformat/version.h
+              libavformat/voc.h
+              libavformat/vorbiscomment.h
+              libavformat/vpcc.h
+              libavformat/w64.h
+              libavformat/wtv.h
+              libavformat/wv.h
+              libavformat/yuv4mpeg.h
+              libavutil/aarch64/cpu.h
+              libavutil/adler32.h
+              libavutil/aes.h
+              libavutil/aes_ctr.h
+              libavutil/aes_internal.h
+              libavutil/arm/intmath.h
+              libavutil/attributes.h
+              libavutil/audio_fifo.h
+              libavutil/avassert.h
+              libavutil/avstring.h
+              libavutil/avutil.h
+              libavutil/base64.h
+              libavutil/blowfish.h
+              libavutil/bprint.h
+              libavutil/bswap.h
+              libavutil/buffer.h
+              libavutil/buffer_internal.h
+              libavutil/camellia.h
+              libavutil/cast5.h
+              libavutil/channel_layout.h
+              libavutil/color_utils.h
+              libavutil/colorspace.h
+              libavutil/common.h
+              libavutil/cpu.h
+              libavutil/cpu_internal.h
+              libavutil/crc.h
+              libavutil/cuda_check.h
+              libavutil/des.h
+              libavutil/detection_bbox.h
+              libavutil/dict.h
+              libavutil/display.h
+              libavutil/dovi_meta.h
+              libavutil/downmix_info.h
+              libavutil/dynarray.h
+              libavutil/encryption_info.h
+              libavutil/error.h
+              libavutil/eval.h
+              libavutil/ffmath.h
+              libavutil/fifo.h
+              libavutil/file.h
+              libavutil/film_grain_params.h
+              libavutil/fixed_dsp.h
+              libavutil/float_dsp.h
+              libavutil/frame.h
+              libavutil/hash.h
+              libavutil/hdr_dynamic_metadata.h
+              libavutil/hmac.h
+              libavutil/hwcontext.h
+              libavutil/hwcontext_cuda.h
+              libavutil/hwcontext_cuda_internal.h
+              libavutil/hwcontext_d3d11va.h
+              libavutil/hwcontext_drm.h
+              libavutil/hwcontext_dxva2.h
+              libavutil/hwcontext_internal.h
+              libavutil/hwcontext_mediacodec.h
+              libavutil/hwcontext_opencl.h
+              libavutil/hwcontext_qsv.h
+              libavutil/hwcontext_vaapi.h
+              libavutil/hwcontext_vdpau.h
+              libavutil/hwcontext_videotoolbox.h
+              libavutil/hwcontext_vulkan.h
+              libavutil/imgutils.h
+              libavutil/imgutils_internal.h
+              libavutil/integer.h
+              libavutil/internal.h
+              libavutil/intfloat.h
+              libavutil/intmath.h
+              libavutil/intreadwrite.h
+              libavutil/lfg.h
+              libavutil/libm.h
+              libavutil/lls.h
+              libavutil/log.h
+              libavutil/lzo.h
+              libavutil/macos_kperf.h
+              libavutil/macros.h
+              libavutil/mastering_display_metadata.h
+              libavutil/mathematics.h
+              libavutil/md5.h
+              libavutil/mem.h
+              libavutil/mem_internal.h
+              libavutil/motion_vector.h
+              libavutil/murmur3.h
+              libavutil/objc.h
+              libavutil/opt.h
+              libavutil/parseutils.h
+              libavutil/pca.h
+              libavutil/pixdesc.h
+              libavutil/pixelutils.h
+              libavutil/pixfmt.h
+              libavutil/ppc/cpu.h
+              libavutil/ppc/util_altivec.h
+              libavutil/qsort.h
+              libavutil/random_seed.h
+              libavutil/rational.h
+              libavutil/rc4.h
+              libavutil/replaygain.h
+              libavutil/reverse.h
+              libavutil/ripemd.h
+              libavutil/samplefmt.h
+              libavutil/sha.h
+              libavutil/sha512.h
+              libavutil/slicethread.h
+              libavutil/softfloat.h
+              libavutil/softfloat_ieee754.h
+              libavutil/softfloat_tables.h
+              libavutil/spherical.h
+              libavutil/stereo3d.h
+              libavutil/tablegen.h
+              libavutil/tea.h
+              libavutil/thread.h
+              libavutil/threadmessage.h
+              libavutil/time.h
+              libavutil/time_internal.h
+              libavutil/timecode.h
+              libavutil/timer.h
+              libavutil/timestamp.h
+              libavutil/tree.h
+              libavutil/twofish.h
+              libavutil/tx.h
+              libavutil/tx_priv.h
+              libavutil/tx_template.c
+              libavutil/version.h
+              libavutil/video_enc_params.h
+              libavutil/vulkan.h
+              libavutil/vulkan_functions.h
+              libavutil/vulkan_loader.h
+              libavutil/wchar_filename.h
+              libavutil/aarch64/timer.h
+              libavutil/arm/timer.h
+              libavutil/bfin/timer.h
+              libavutil/ppc/timer.h
+              libavutil/x86/asm.h
+              libavutil/x86/bswap.h
+              libavutil/x86/cpu.h
+              libavutil/x86/emms.h
+              libavutil/x86/intmath.h
+              libavutil/x86/intreadwrite.h
+              libavutil/x86/pixelutils.h
+              libavutil/x86/timer.h
+              libavutil/xga_font_data.h
+              libavutil/xtea.h
+              libavutil/ppc/cpu.c
+              libavutil/ppc/float_dsp_altivec.c
+              libavutil/ppc/float_dsp_init.c
+              libavutil/ppc/float_dsp_vsx.c
+              libpostproc/postprocess.h
+              libpostproc/postprocess_internal.h
+              libpostproc/postprocess_template.c
+              libpostproc/version.h
+              libswresample/audioconvert.h
+              libswresample/dither_template.c
+              libswresample/noise_shaping_data.c
+              libswresample/rematrix_template.c
+              libswresample/resample.h
+              libswresample/resample_template.c
+              libswresample/swresample.h
+              libswresample/swresample_internal.h
+              libswresample/version.h
+              libswscale/bayer_template.c
+              libswscale/rgb2rgb.h
+              libswscale/rgb2rgb_template.c
+              libswscale/swscale.h
+              libswscale/swscale_internal.h
+              libswscale/version.h
+              libswscale/ppc/swscale_altivec.c
+              libswscale/ppc/swscale_ppc_template.c
+              libswscale/ppc/swscale_vsx.c
+              libswscale/ppc/yuv2rgb_altivec.c
+              libswscale/ppc/yuv2yuv_altivec.c
+              libswscale/x86/rgb2rgb_template.c
+              libswscale/x86/swscale_template.c
+              libswscale/x86/yuv2rgb_template.c
+              tools/decode_simple.h)
+
+preset_files=(presets/libvpx-360p.ffpreset
+              presets/libvpx-720p50_60.ffpreset
+              presets/libvpx-1080p50_60.ffpreset
+              presets/libvpx-720p.ffpreset
+              presets/libvpx-1080p.ffpreset)
+
+asm_files=(libavcodec/x86/huffyuvdsp_template.asm
+           libavcodec/x86/simple_idct10_template.asm
+           libavcodec/x86/vp9itxfm_template.asm
+           libavutil/x86/x86util.asm
+           libavutil/x86/x86inc.asm)
+
+asm_files2="$(grep "^gcc.*\.c$" "${build_log}" | awk 'NF>1{print $NF}' | sort)"
+c_files="$(grep "^nasm.*\.asm$" "${build_log}" | awk 'NF>1{print $NF}' | sort)"
+
+# shellcheck disable=2206
+keepfiles=(${other_files[@]}
+           ${doc_files[@]}
+           ${build_files[@]}
+           ${make_files[@]}
+           ${test_files[@]}
+           ${header_files[@]}
+           ${version_scripts[@]}
+           ${preset_files[@]}
+           ${asm_files[@]}
+           ${asm_files2}
+           ${c_files})
+
+pushd "${FF_PATH}" || cleanup_and_exit 1
+
+echo
+echo ">>> Cleaning up sources for new tarball ..."
+
+# Get file list from ffmpeg
+mapfile -d '' filelist < <(find ./ -type f -printf '%P\0')
+
+# Sort arrays
+readarray -t keepfiles_sorted < <(printf '%s\0' "${keepfiles[@]}" | sort -z | xargs -0n1)
+readarray -t filelist_sorted < <(printf '%s\0' "${filelist[@]}" | sort -z | xargs -0n1)
+
+# Compare arrays and remove files which are left over
+comm -2 -3 -z <(printf '%s\0' "${filelist_sorted[@]}") <(printf '%s\0' "${keepfiles_sorted[@]}") | xargs -0 rm -f
+
+readarray -t removed_files < <(comm -1 -3 -z <(printf '%s\0' "${filelist_sorted[@]}") <(printf '%s\0' "${keepfiles_sorted[@]}") | xargs -0n1)
+if [[ "${#removed_files[@]}" -ge 1 ]]; then
+    if [[ "${#removed_files[@]}" -eq 1 ]] && [[ -z "${removed_files[0]}" ]]; then
+        echo "... done"
+    else
+        echo "File not in sources anymore (please cleanup keepfiles):"
+        for f in "${removed_files[@]}"; do
+            if [[ -z "${f}" ]]; then
+                continue
+            fi
+            echo "  * ${f}"
+        done
+    fi
+fi
+echo
+
+popd || cleanup_and_exit 1 # /FF_PATH
+
+pushd "${FF_TMPDIR}" || cleanup_and_exit 1
+
+echo ">>> Create new tarball ${FF_PKGNAME}${FF_PKGNAME_SUFFIX}-${FF_VERSION}.tar.xz ..."
+tar -cJf "${FF_PKG_DIR}/${FF_PKGNAME}${FF_PKGNAME_SUFFIX}-${FF_VERSION}.tar.xz" "${FF_PKGNAME}-${FF_VERSION}"
+if [ $? -ne 0 ]; then
+    echo "ERROR: Creating tarball failed"
+    cleanup_and_exit 1
+fi
+
+popd || cleanup_and_exit 1 # /FF_TMPDIR
+
+du -sh "${FF_PKGNAME}${FF_PKGNAME_SUFFIX}-${FF_VERSION}.tar.xz"
+echo
+
+cleanup_and_exit 0

diff --git a/fix-vmaf-model-path.patch b/fix-vmaf-model-path.patch
new file mode 100644
index 0000000..8108dc1
--- /dev/null
+++ b/fix-vmaf-model-path.patch
@@ -0,0 +1,24 @@
+From d87f2ce576ddb0ce8f6ade22b3c66a8b63c90713 Mon Sep 17 00:00:00 2001
+From: Leigh Scott <leigh123linux@gmail.com>
+Date: Thu, 31 Dec 2020 13:08:06 +0000
+Subject: [PATCH] fix vmaf model path
+
+---
+ libavfilter/vf_libvmaf.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libavfilter/vf_libvmaf.c b/libavfilter/vf_libvmaf.c
+index 4d49127efc..bd6f4519e8 100644
+--- a/libavfilter/vf_libvmaf.c
++++ b/libavfilter/vf_libvmaf.c
+@@ -72,7 +72,7 @@ typedef struct LIBVMAFContext {
+ #define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM
+ 
+ static const AVOption libvmaf_options[] = {
+-    {"model_path",  "Set the model to be used for computing vmaf.",                     OFFSET(model_path), AV_OPT_TYPE_STRING, {.str="/usr/local/share/model/vmaf_v0.6.1.pkl"}, 0, 1, FLAGS},
++    {"model_path",  "Set the model to be used for computing vmaf.",                     OFFSET(model_path), AV_OPT_TYPE_STRING, {.str="/usr/share/model/vmaf_v0.6.1.json"}, 0, 1, FLAGS},
+     {"log_path",  "Set the file path to be used to store logs.",                        OFFSET(log_path), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS},
+     {"log_fmt",  "Set the format of the log (csv, json or xml).",                       OFFSET(log_fmt), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS},
+     {"enable_transform",  "Enables transform for computing vmaf.",                      OFFSET(enable_transform), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},
+-- 
+2.29.2

diff --git a/sources b/sources
new file mode 100644
index 0000000..fad8a8b
--- /dev/null
+++ b/sources
@@ -0,0 +1,2 @@
+SHA512 (ffmpeg-free-5.0.tar.xz) = 547d4dc9c90e00a6896e7ffd6c67f98e66c9d451655268570a72680655172ec97d85e761bc743906b85982b8768a155c9d2ddd67991633557bbaa32052902cfd
+SHA512 (ffmpeg-5.0.tar.xz.asc) = 9238fcdc849895147a26669ac90fec94002af86e81270128f6eb0448d74487d8ba06ee08d10686a7a6e204689716ee744bfffc2a39466940940609cfcd7dfa85

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-07-14 21:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-14 21:59 [rpms/ffmpeg] epel9-next: Initial import (fedora#2051008) Andreas Schneider

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox