Initial import (fedora#2051008)

This commit is contained in:
Andreas Schneider 2022-02-11 20:18:52 +01:00
parent 6a1c0f0b82
commit 53e04e97f3
15 changed files with 2552 additions and 2 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
ffmpeg-*.asc
ffmpeg-*.rpm
ffmpeg-*.tar.xz

View File

@ -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

110
enable_decoders Normal file
View File

@ -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

95
enable_encoders Normal file
View File

@ -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

View File

@ -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

56
ffmpeg-codec-choice.patch Normal file
View File

@ -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,

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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;

BIN
ffmpeg.keyring Normal file

Binary file not shown.

775
ffmpeg.spec Normal file
View File

@ -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)

1239
ffmpeg_clean_sources.sh Executable file

File diff suppressed because it is too large Load Diff

24
fix-vmaf-model-path.patch Normal file
View File

@ -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

2
sources Normal file
View File

@ -0,0 +1,2 @@
SHA512 (ffmpeg-free-5.0.tar.xz) = 547d4dc9c90e00a6896e7ffd6c67f98e66c9d451655268570a72680655172ec97d85e761bc743906b85982b8768a155c9d2ddd67991633557bbaa32052902cfd
SHA512 (ffmpeg-5.0.tar.xz.asc) = 9238fcdc849895147a26669ac90fec94002af86e81270128f6eb0448d74487d8ba06ee08d10686a7a6e204689716ee744bfffc2a39466940940609cfcd7dfa85