Initial import (fedora#2051008)
This commit is contained in:
parent
6a1c0f0b82
commit
53e04e97f3
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
ffmpeg-*.asc
|
||||||
|
ffmpeg-*.rpm
|
||||||
|
ffmpeg-*.tar.xz
|
16
README.md
16
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
|
||||||
|
110
enable_decoders
Normal file
110
enable_decoders
Normal 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
95
enable_encoders
Normal 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
|
24
ffmpeg-allow-fdk-aac-free.patch
Normal file
24
ffmpeg-allow-fdk-aac-free.patch
Normal 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
56
ffmpeg-codec-choice.patch
Normal 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,
|
95
ffmpeg-fix-exif-include.patch
Normal file
95
ffmpeg-fix-exif-include.patch
Normal 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
|
||||||
|
|
13
ffmpeg-fix-gnutls-priority.patch
Normal file
13
ffmpeg-fix-gnutls-priority.patch
Normal 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;
|
60
ffmpeg-new-coder-errors.patch
Normal file
60
ffmpeg-new-coder-errors.patch
Normal 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;
|
42
ffmpeg-support-chromium.patch
Normal file
42
ffmpeg-support-chromium.patch
Normal 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
BIN
ffmpeg.keyring
Normal file
Binary file not shown.
775
ffmpeg.spec
Normal file
775
ffmpeg.spec
Normal 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
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
24
fix-vmaf-model-path.patch
Normal 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
2
sources
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
SHA512 (ffmpeg-free-5.0.tar.xz) = 547d4dc9c90e00a6896e7ffd6c67f98e66c9d451655268570a72680655172ec97d85e761bc743906b85982b8768a155c9d2ddd67991633557bbaa32052902cfd
|
||||||
|
SHA512 (ffmpeg-5.0.tar.xz.asc) = 9238fcdc849895147a26669ac90fec94002af86e81270128f6eb0448d74487d8ba06ee08d10686a7a6e204689716ee744bfffc2a39466940940609cfcd7dfa85
|
Loading…
Reference in New Issue
Block a user