public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Andreas Schneider <asn@cryptomilk.org>
To: git-commits@fedoraproject.org
Subject: [rpms/ffmpeg] epel9-next: Initial import (fedora#2051008)
Date: Tue, 14 Jul 2026 21:59:17 GMT [thread overview]
Message-ID: <178406635767.1.14772064289874439533.rpms-ffmpeg-53e04e97f3c8@fedoraproject.org> (raw)
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
reply other threads:[~2026-07-14 21:59 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178406635767.1.14772064289874439533.rpms-ffmpeg-53e04e97f3c8@fedoraproject.org \
--to=asn@cryptomilk.org \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox