Compare commits

..

7 Commits
rawhide ... f36

Author SHA1 Message Date
Neal Gompa 877408547b Actually enable librist support 2023-02-15 23:30:00 -05:00
Neal Gompa 882dab2b6a Enable support for the RIST protocol through librist 2023-02-15 23:28:35 -05:00
Yaakov Selkowitz 90bff85ed7 Drop unused opencv BuildRequires
opencv has deliberately broken their C API as of 3.4 and completely
removed it in 4.0, meaning there is no way to enable OpenCV in ffmpeg
without completely rewriting the filter in C++.

https://github.com/opencv/opencv/wiki/ChangeLog#version400
https://ffmpeg.org/pipermail/ffmpeg-devel/2018-March/226872.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=915544
2023-02-15 23:25:05 -05:00
Neal Gompa 354b83ba8a Update to 5.0.2 2022-11-22 08:56:37 -05:00
Neal Gompa af350001d8 Refresh dlopen headers and patch for OpenH264 2.3.1
Backport patches to fix building with newer SDL2 versions
2022-10-12 11:17:43 -04:00
Leigh Scott 6c78504a94 Remove internal headers, they shouldn't be used outside of ffmpeg compile
Readd description
2022-10-12 10:46:33 -04:00
Neal Gompa e48877b7d0 Disable bootstrap and rework chromaprint dependency 2022-10-12 10:46:11 -04:00
20 changed files with 528 additions and 2252 deletions

View File

@ -1,109 +0,0 @@
From a641e629591d68bd3edd99bddec623dc31295f6b Mon Sep 17 00:00:00 2001
From: Kalev Lember <klember@redhat.com>
Date: Wed, 6 Dec 2023 14:37:34 +0100
Subject: [PATCH] lavc/libopenh264: Drop openh264 runtime version checks
Years ago, openh264 releases often changed their ABI without changing
the library soname. To avoid running into ABI issues, a version check
was added to lavc libopenh264 code to error out at runtime in case the
build time and runtime openh264 versions don't match.
This should no longer be an issue with newer openh264 releases and we
can drop the runtime version check and rely on upstream doing the right
thing and bump the library soname if the ABI changes, similar to how
other libraries are consumed in ffmpeg.
Almost all major distributions now include openh264 and this means there
are more eyes on ABI changes and issues are discovered and reported
quickly. See e.g. https://github.com/cisco/openh264/issues/3564 where an
ABI issue was quickly discovered and fixed.
Relaxing the check allows downstream distributions to build ffmpeg
against e.g. openh264 2.3.1 and ship an update to ABI-compatible
openh264 2.4.0, without needing to coordinate a lock step update between
ffmpeg and openh264 (which can be difficult if openh264 is distributed
by Cisco and ffmpeg comes from the distro, such as is the case for
Fedora).
Signed-off-by: Kalev Lember <klember@redhat.com>
---
libavcodec/libopenh264.c | 15 ---------------
libavcodec/libopenh264.h | 2 --
libavcodec/libopenh264dec.c | 4 ----
libavcodec/libopenh264enc.c | 4 ----
4 files changed, 25 deletions(-)
diff --git a/libavcodec/libopenh264.c b/libavcodec/libopenh264.c
index 0f6d28ed88..c80c85ea8b 100644
--- a/libavcodec/libopenh264.c
+++ b/libavcodec/libopenh264.c
@@ -46,18 +46,3 @@ void ff_libopenh264_trace_callback(void *ctx, int level, const char *msg)
int equiv_ffmpeg_log_level = libopenh264_to_ffmpeg_log_level(level);
av_log(ctx, equiv_ffmpeg_log_level, "%s\n", msg);
}
-
-int ff_libopenh264_check_version(void *logctx)
-{
- // Mingw GCC < 4.7 on x86_32 uses an incorrect/buggy ABI for the WelsGetCodecVersion
- // function (for functions returning larger structs), thus skip the check in those
- // configurations.
-#if !defined(_WIN32) || !defined(__GNUC__) || !ARCH_X86_32 || AV_GCC_VERSION_AT_LEAST(4, 7)
- OpenH264Version libver = WelsGetCodecVersion();
- if (memcmp(&libver, &g_stCodecVersion, sizeof(libver))) {
- av_log(logctx, AV_LOG_ERROR, "Incorrect library version loaded\n");
- return AVERROR(EINVAL);
- }
-#endif
- return 0;
-}
diff --git a/libavcodec/libopenh264.h b/libavcodec/libopenh264.h
index dbb9c5d429..0b462d6fdc 100644
--- a/libavcodec/libopenh264.h
+++ b/libavcodec/libopenh264.h
@@ -34,6 +34,4 @@
void ff_libopenh264_trace_callback(void *ctx, int level, const char *msg);
-int ff_libopenh264_check_version(void *logctx);
-
#endif /* AVCODEC_LIBOPENH264_H */
diff --git a/libavcodec/libopenh264dec.c b/libavcodec/libopenh264dec.c
index 7d650ae03e..b6a9bba2dc 100644
--- a/libavcodec/libopenh264dec.c
+++ b/libavcodec/libopenh264dec.c
@@ -52,13 +52,9 @@ static av_cold int svc_decode_init(AVCodecContext *avctx)
{
SVCContext *s = avctx->priv_data;
SDecodingParam param = { 0 };
- int err;
int log_level;
WelsTraceCallback callback_function;
- if ((err = ff_libopenh264_check_version(avctx)) < 0)
- return AVERROR_DECODER_NOT_FOUND;
-
if (WelsCreateDecoder(&s->decoder)) {
av_log(avctx, AV_LOG_ERROR, "Unable to create decoder\n");
return AVERROR_UNKNOWN;
diff --git a/libavcodec/libopenh264enc.c b/libavcodec/libopenh264enc.c
index f518d0894e..6f231d22b2 100644
--- a/libavcodec/libopenh264enc.c
+++ b/libavcodec/libopenh264enc.c
@@ -110,14 +110,10 @@ static av_cold int svc_encode_init(AVCodecContext *avctx)
{
SVCContext *s = avctx->priv_data;
SEncParamExt param = { 0 };
- int err;
int log_level;
WelsTraceCallback callback_function;
AVCPBProperties *props;
- if ((err = ff_libopenh264_check_version(avctx)) < 0)
- return AVERROR_ENCODER_NOT_FOUND;
-
if (WelsCreateSVCEncoder(&s->encoder)) {
av_log(avctx, AV_LOG_ERROR, "Unable to create encoder\n");
return AVERROR_UNKNOWN;
--
2.43.0

View File

@ -0,0 +1,33 @@
From fc7fb12f22180d03428310da7eca55403a123322 Mon Sep 17 00:00:00 2001
From: dvhh <dvhh-at-yahoo.com@ffmpeg.org>
Date: Sat, 18 Jun 2022 01:46:12 +0900
Subject: [PATCH 2/2] configure: fix SDL2 version check for pkg_config fallback
pkg_config fallback for SDL2 use 2.1.0 as max (excluded) version
where the pkg_config specify 3.0.0
Correcting fallback version to be in line with the pkg_config version
Signed-off-by: dvhh <dvhh@yahoo.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
(cherry picked from commit c6fdbe26ef30fff817581e5ed6e078d96111248a)
---
configure | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure b/configure
index e731a9d3ff..596be632c4 100755
--- a/configure
+++ b/configure
@@ -6747,7 +6747,7 @@ if enabled sdl2; then
sdl2_cflags=$("${SDL2_CONFIG}" --cflags)
sdl2_extralibs=$("${SDL2_CONFIG}" --libs)
test_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x020001" $sdl2_cflags &&
- test_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x020100" $sdl2_cflags &&
+ test_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x030000" $sdl2_cflags &&
check_func_headers SDL_events.h SDL_PollEvent $sdl2_extralibs $sdl2_cflags &&
enable sdl2
fi
--
2.36.1

View File

@ -1,313 +1,73 @@
## module name # reason for enablement in ffmpeg (usually there is another package that already got legal review)
aasc
libfdk_aac # fdk-aac-free
ac3
acelp_kelvin
adpcm_4xm
adpcm_adx
adpcm_afc
adpcm_agm
adpcm_aica
adpcm_argo
adpcm_ct
adpcm_dtk
adpcm_ea
adpcm_ea_maxis_xa
adpcm_ea_r1
adpcm_ea_r2
adpcm_ea_r3
adpcm_ea_xas
adpcm_g722
adpcm_g726
adpcm_g726le
adpcm_ima_acorn
adpcm_ima_alp
adpcm_ima_amv
adpcm_ima_apc
adpcm_ima_apm
adpcm_ima_cunning
adpcm_ima_dat4
adpcm_ima_dk3
adpcm_ima_dk4
adpcm_ima_ea_eacs
adpcm_ima_ea_sead
adpcm_ima_iss
adpcm_ima_moflex
adpcm_ima_mtf
adpcm_ima_oki
adpcm_ima_qt
adpcm_ima_qt_at
adpcm_ima_rad
adpcm_ima_smjpeg
adpcm_ima_ssi
adpcm_ima_wav
adpcm_ima_ws
adpcm_ms
adpcm_mtaf
adpcm_psx
adpcm_sbpro_2
adpcm_sbpro_3
adpcm_sbpro_4
adpcm_swf
adpcm_thp
adpcm_thp_le
adpcm_vima
adpcm_xa
adpcm_xmd
adpcm_yamaha
adpcm_zork
alac
alias_pix
amrnb
amrwb
amv
anm
ansi # trivial
anull
apac
ape
apng # animated png
arbc
argo
ass # trivial
asv1
asv2
atrac1
atrac3
atrac3al
atrac3p
atrac3pal
aura
aura2
av1 # libaom
av1_qsv # libaom
ayuv # trivial
bethsoftvid # trivial
bfi # trivial
bink
binkaudio_dct
binkaudio_rdft
bintext
bitpacked # trivial
bmp # trivial
bmv_audio
bmv_video
bonk
brender_pix
c93
cbd2_dpcm
ccaption
cdgraphics
cdtoons
cdxl
cinepak
clearvideo
cljr
cook
cpia
cscd
cyuv
dca
dds
derf_dpcm
dfa
dfpwm
dirac # dirac
dnxhd
dolby_e
dpx
dsd_lsbf
dsd_msbf
dsicinaudio
dsicinvideo
dss_sp
dvaudio
dvbsub
dvdsub
dvvideo
dxa
dxtory
eacmv
eamad
eatgq
eatgv
eatqi
eightbps
eightsvx_exp
eightsvx_fib
escape124
escape130
evrc
exr # openEXR
ffv1 # ffmpeg
ffvhuff # ffmpeg
ffwavesynth # pseudo
fits
flac # libFLAC
flashsv
flashsv2
flic
flv
fmvc
fourxm
ftr # fdk-aac
g723_1
g729
gdv
gem
gif # libpng
gremlin_dpcm
gsm # libgsm
gsm_ms
gsm_ms_at
h261
h263
h263_v4l2m2m
h263i
h263p
hap
hca
hcom
hdr
hnm4_video
hq_hqa
hqx
huffyuv # trivial+zlib
hymt # huffyuv-mt
iac
idcin
idf
iff_ilbm
ilbc # ilbc
imc
indeo2
indeo3
indeo4
indeo5
interplay_acm
interplay_dpcm
interplay_video
ipu
jacosub
jpeg2000 # openjpeg2
jpegls
jv
kgv1
kmvc
lagarith
libaom # libaom
libaom_av1 # libaom
libcodec2 # codec2
libdav1d # av1
libgsm # libgsm
libgsm_ms # libgsm
libilbc # ilbc
libjxl # libjxl
libopencore_amrnb # opencore-amr
libopencore_amrwb # opencore-amr
libopenh264 # openh264_dlopen
libopenjpeg # openjpeg
libopus # opus
librsvg # librsvg
libschroedinger # schroedinger
libspeex # speex
libvorbis # libvorbis
libvpx_vp8 # libvpx
libvpx_vp9 # libvpx
libzvbi_teletext # zvbi
loco
lscr
m101
mace3
mace6
mdec
media100
metasound
microdvd
mimic
misc4
mjpeg # mjpegtools
mjpeg_qsv # mjpegtools
mjpegb
mlp
mmvideo
motionpixels
mp1 # twolame/lame
mp1float # twolame/lame
mp2 # twolame
mp2float # twolame
mp3 # lame
mp3adu
mp3adufloat
mp3float # lame
mp3on4
mp3on4float
mpc7
mpc8
mpeg1video
mpeg1_v4l2m2m
mpeg2video
mpeg2_qsv
mpeg2_v4l2m2m
mpeg4
mpeg4_v4l2m2m
mpegvideo
mpl2
msa1
mscc
msmpeg4v1
msmpeg4v2
msmpeg4v3
msnsiren
msp2
msrle
mss1
mss2
msvideo1
mszh
mts2
mv30
mvc1
mvc2
mvdv
mvha
mwsc
mxpeg
nellymoser
nuv
on2avc
opus # libopus
paf_audio
paf_video
pam # trivial
pbm # trivial
pcm_alaw # trivial
pcm_bluray
pcm_dvd
pcm_f16le # trivial
pcm_f24le # trivial
pcm_f32be # trivial
pcm_f32le # trivial
pcm_f64be # trivial
pcm_f64le # trivial
pcm_lxf # trivial
pcm_mulaw # trivial
pcm_s16be # trivial
pcm_s16be_planar # trivial
pcm_s16le # trivial
pcm_s16le_planar # trivial
pcm_s24be # trivial
pcm_s24daud # trivial
pcm_s24le # trivial
pcm_s24le_planar # trivial
pcm_s32be # trivial
pcm_s32le # trivial
pcm_s32le_planar # trivial
pcm_s64be # trivial
pcm_s64le # trivial
pcm_s8 # trivial
pcm_s8_planar # trivial
pcm_sga # trivial
pcm_u16be # trivial
pcm_u16le # trivial
pcm_u24be # trivial
@ -315,157 +75,44 @@ pcm_u24le # trivial
pcm_u32be # trivial
pcm_u32le # trivial
pcm_u8 # trivial
pcm_vidc # trivial
pcx
pfm # trivial
pgm # trivial
pgmyuv # trivial
pgssub # mkvtoolnix
pgx
phm # trivial
photocd
pictor
pjs
png # libpng
ppm # trivial
prosumer
psd
ptx
qcelp
qdm2
qdmc
qdraw
qoi
qpeg
qtrle
r10k
r210
ra_144
ra_288
rasc
rawvideo # trivial
realtext
rka
rl2
roq
roq_dpcm
rpza
rscc
rv10
rv20
s302m
sami
sanm
sbc
screenpresso
sdx2_dpcm
sgi # trivial
sgirle # trivial
shorten
simbiosis_imx
sipr
siren
smackaud
smacker
smc
smvjpeg
snow
sol_dpcm
sonic
sp5x
speedhq
speex
srgc
srt # trivial
ssa # trivial
stl
subrip
subviewer
subviewer1
sunrast # trivial
svq1
svq3
tak
targa # trivial
targa_y216
tdsc
text # trivial
theora # libtheora
thp
tiertexseqvideo
tiff # libtiff
tmv
truehd
truemotion1
truemotion2
truemotion2rt
truespeech
tscc
tscc2
tta
twinvq
txd
ulti
utvideo
v210 # trivial
v210x # trivial
v308 # trivial
v408 # trivial
v410 # trivial
vb
vble
vcr1
vmdaudio
vmdvideo
vmnc
vnull
vorbis # libvorbis
vp3 # libav
vp4 # libav
vp5 # libav
vp6 # libav
vp6a # libav
vp6f # libav
vp7 # libav
vp8 # libvpx
vp8_qsv # libvpx
vp8_v4l2m2m # libvpx
vp9 # libvpx
vp9_qsv # libvpx
vp9_v4l2m2m # libvpx
vplayer
vqa
vqc
wady_dpcm
wavarc
wavpack
wbmp
wcmv
webp # libwebp
webvtt # trivial
wmav1
wmav2
wmavoice
wmv1
wmv2
wnv1
wrapped_avframe # passthrough
ws_snd1
xan_dpcm
xan_wc3
xan_wc4
xbin
xbm # trivial
xface
xl
xpm
xsub
xwd # xwd
y41p # trivial
ylc
yop
yuv4 # trivial
zero12v
zerocodec
zlib # zlib
zmbv # dosbox

View File

@ -1,68 +1,20 @@
## module name # reason for enablement in ffmpeg (usually there is another package that already got legal review)
a64multi
a64multi5
aac
libfdk_aac # fdk-aac-free
ac3
adpcm_adx
adpcm_argo
adpcm_g722
adpcm_g726
adpcm_g726le
adpcm_ima_alp
adpcm_ima_amv
adpcm_ima_apm
adpcm_ima_qt
adpcm_ima_ssi
adpcm_ima_wav
adpcm_ima_ws
adpcm_ms
adpcm_swf
adpcm_yamaha
alac
alias_pix
amv
anull
apng # libpng
ass # trivial
asv1
asv2
av1_amf
av1_nvenc
av1_qsv
av1_vaapi
ayuv # trival
bitpacked # trivial
bmp # trivial
cinepak
cljr
dca
dfpwm
dnxhd
dpx
dvbsub
dvdsub
dvvideo
exr
ffv1
ffvhuff # trivial+zlib
flac # libFLAC
flashsv
flashsv2
flv
g723_1
gif # libpng
h261
h263
h263_v4l2m2m # hardware
h263p
h264_amf # hardware
h264_nvenc # hardware
h264_qsv # hardware
h264_v4l2m2m # hardware
h264_vaapi # hardware
hap
hdr
hevc_amf # hardware
hevc_nvenc # hardware
hevc_qsv # hardware
@ -76,11 +28,8 @@ libaom # libaom
libaom_av1 # libaom
libcodec2 # codec2
libgsm # libgsm
libgsm_ms # libgsm
libilbc # ilbc
libjxl # libjxl
libmp3lame # lame
libopencore_amrnb
libopenh264 # openh264_dlopen
libopenjpeg # openjpeg
libopus # opus
@ -90,29 +39,21 @@ libspeex # speex
libsvtav1
libtheora # libtheora
libtwolame # twolame
libvo_amrwbenc
libvorbis # libvorbis
libvpx_vp8 # libvpx
libvpx_vp9 # libvpx
libwebp # libwebp
libwebp_anim # libwebp
libxvid # xvidcore
mjpeg # mjpegtools
mjpeg_qsv # mjpegtools
mjpeg_vaapi # mjpegtools
mlp
mp2 # twolame
mp2fixed # twolame
mpeg1video
mpeg2video
mpeg2_qsv
mpeg2_vaapi
mpeg4
mpeg4_v4l2m2m # hardware
msmpeg4v2
msmpeg4v3
msvideo1
nellymoser
opus # opus
pam
pbm # trivial
@ -144,67 +85,32 @@ pcm_u8 # trivial
pcx
pgm # trivial
pgmyuv # trivial
phm # trivial
png # libpng
ppm # trivial
qoi
qtrle
r10k # trivial
r210 # trivial
ra_144
rawvideo # trivial
roq
roq_dpcm
rpza
rv10
rv20
s302m
sbc
sgi # trivial
smc
snow
sonic
sonic_ls
speedhq
srt # trivial
ssa # trivial
subrip # trivial
sunrast # trivial
svq1
targa # trivial
text # trivial
tiff # libtiff
truehd
tta
ttml
utvideo
v210 # trivial
v308 # trivial
v408 # trivial
v410 # trivial
vc1_qsv # hardware
vc1_v4l2m2m # hardware
vc2 # dirac
vnull
vorbis # libvorbis
vp8_qsv # libvpx
vp8_v4l2m2m # libvpx
vp8_vaapi # libvpx
vp9_qsv # libvpx
vp9_vaapi # libvpx
wavpack
wbmp
webvtt # trivial
wmav1
wmav2
wmv1
wmv2
wrapped_avframe # passthrough
xbm # (X11)
xface
xsub
xwd # xwd
y41p # trivial
yuv4 # trivial
zlib # zlib
zmbv # dosbox

View File

@ -1,5 +1,3 @@
From: Andreas Schneider <asn@cryptomilk.org>
fdk-aac-free-devel is GPL compatible
See https://bugzilla.redhat.com/show_bug.cgi?id=1501522#c112

View File

@ -1,67 +0,0 @@
From 42982b5a5d461530a792e69b3e8abdd9d6d67052 Mon Sep 17 00:00:00 2001
From: Frank Plowman <post@frankplowman.com>
Date: Fri, 22 Dec 2023 12:00:01 +0000
Subject: [PATCH] avformat/ffrtmpcrypt: Fix int-conversion warning
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-type: text/plain
The gcrypt definition of `bn_new` used to use the return statement
on errors, with an AVERROR return value, regardless of the signature
of the function where the macro is used - it is called in
`dh_generate_key` and `ff_dh_init` which return pointers. As a result,
compiling with gcrypt and the ffrtmpcrypt protocol resulted in an
int-conversion warning. GCC 14 may upgrade these to errors [1].
This patch fixes the problem by changing the macro to remove `AVERROR`
and instead set `bn` to null if the allocation fails. This is the
behaviour of all the other `bn_new` implementations and so the result is
already checked at all the callsites. AFAICT, this should be the only
change needed to get ffmpeg off Fedora's naughty list of projects with
warnings which may be upgraded to errors in GCC 14 [2].
[1]: https://gcc.gnu.org/pipermail/gcc/2023-May/241264.html
[2]: https://www.mail-archive.com/devel@lists.fedoraproject.org/msg196024.html
Signed-off-by: Frank Plowman <post@frankplowman.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
---
libavformat/rtmpdh.c | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/libavformat/rtmpdh.c b/libavformat/rtmpdh.c
index 5ddae537a1..6a6c2ccd87 100644
--- a/libavformat/rtmpdh.c
+++ b/libavformat/rtmpdh.c
@@ -113,15 +113,18 @@ static int bn_modexp(FFBigNum bn, FFBigNum y, FFBigNum q, FFBigNum p)
return 0;
}
#elif CONFIG_GCRYPT
-#define bn_new(bn) \
- do { \
- if (!gcry_control(GCRYCTL_INITIALIZATION_FINISHED_P)) { \
- if (!gcry_check_version("1.5.4")) \
- return AVERROR(EINVAL); \
- gcry_control(GCRYCTL_DISABLE_SECMEM, 0); \
- gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0); \
- } \
- bn = gcry_mpi_new(1); \
+#define bn_new(bn) \
+ do { \
+ if (!gcry_control(GCRYCTL_INITIALIZATION_FINISHED_P)) { \
+ if (gcry_check_version("1.5.4")) { \
+ gcry_control(GCRYCTL_DISABLE_SECMEM, 0); \
+ gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0); \
+ } \
+ } \
+ if (gcry_control(GCRYCTL_INITIALIZATION_FINISHED_P)) \
+ bn = gcry_mpi_new(1); \
+ else \
+ bn = NULL; \
} while (0)
#define bn_free(bn) gcry_mpi_release(bn)
#define bn_set_word(bn, w) gcry_mpi_set_ui(bn, w)
--
2.43.0

View File

@ -1,46 +0,0 @@
From d32aacab65a322b66d6a1b48f6cdb03e42bde0f9 Mon Sep 17 00:00:00 2001
From: Frank Liberato <liberato@chromium.org>
Date: Wed, 7 Jul 2021 19:01:22 -0700
Subject: [PATCH] Add av_stream_get_first_dts for Chromium
---
libavformat/avformat.h | 4 ++++
libavformat/utils.c | 7 +++++++
2 files changed, 11 insertions(+)
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 1916aa2dc5..e6682849fa 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1019,6 +1019,10 @@ attribute_deprecated
int64_t av_stream_get_end_pts(const AVStream *st);
#endif
+// Chromium: We use the internal field first_dts vvv
+int64_t av_stream_get_first_dts(const AVStream *st);
+// Chromium: We use the internal field first_dts ^^^
+
#define AV_PROGRAM_RUNNING 1
/**
diff --git a/libavformat/utils.c b/libavformat/utils.c
index cf4d68bff9..7d750abf88 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -55,6 +55,13 @@ int ff_unlock_avformat(void)
return ff_mutex_unlock(&avformat_mutex) ? -1 : 0;
}
+// Chromium: We use the internal field first_dts vvv
+int64_t av_stream_get_first_dts(const AVStream *st)
+{
+ return cffstream(st)->first_dts;
+}
+// Chromium: We use the internal field first_dts ^^^
+
/* an arbitrarily chosen "sane" max packet size -- 50M */
#define SANE_CHUNK_SIZE (50000000)
--
2.41.0

View File

@ -2,56 +2,55 @@ From: Jan Engelhardt <jengelh@inai.de>
Edit the default codec selection such that
ffmpeg -i youtube.blah.webm foobar.mkv
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 | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
libavformat/matroskaenc.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
Index: ffmpeg-6.0/libavformat/matroskaenc.c
Index: ffmpeg-5.0/libavformat/matroskaenc.c
===================================================================
--- ffmpeg-6.0.orig/libavformat/matroskaenc.c
+++ ffmpeg-6.0/libavformat/matroskaenc.c
@@ -3321,16 +3321,25 @@ static int mkv_query_codec(enum AVCodecI
--- 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 FFOutputFormat ff_matroska_muxer = {
.p.name = "matroska",
.p.long_name = NULL_IF_CONFIG_SMALL("Matroska"),
.p.mime_type = "video/x-matroska",
.p.extensions = "mkv",
+ 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),
- .p.audio_codec = CONFIG_LIBVORBIS_ENCODER ?
- .audio_codec = CONFIG_LIBVORBIS_ENCODER ?
- AV_CODEC_ID_VORBIS : AV_CODEC_ID_AC3,
- .p.video_codec = CONFIG_LIBX264_ENCODER ?
- .video_codec = CONFIG_LIBX264_ENCODER ?
- AV_CODEC_ID_H264 : AV_CODEC_ID_MPEG4,
+ .p.audio_codec = PREFAUDIO,
+ .p.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,
+ .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,
@@ -3388,8 +3397,7 @@ const FFOutputFormat ff_matroska_audio_m
.p.mime_type = "audio/x-matroska",
.p.extensions = "mka",
@@ -2954,8 +2962,7 @@ const AVOutputFormat ff_matroska_audio_m
.mime_type = "audio/x-matroska",
.extensions = "mka",
.priv_data_size = sizeof(MatroskaMuxContext),
- .p.audio_codec = CONFIG_LIBVORBIS_ENCODER ?
- .audio_codec = CONFIG_LIBVORBIS_ENCODER ?
- AV_CODEC_ID_VORBIS : AV_CODEC_ID_AC3,
+ .p.audio_codec = PREFAUDIO,
.p.video_codec = AV_CODEC_ID_NONE,
+ .audio_codec = PREFAUDIO,
.video_codec = AV_CODEC_ID_NONE,
.init = mkv_init,
.deinit = mkv_deinit,

View File

@ -1,7 +1,7 @@
From 3daa49cae0bfc3de434dd28c3a23ae877f0639db Mon Sep 17 00:00:00 2001
From b8886826f44b4562aa2fbae3715ca6aa9e1b15e1 Mon Sep 17 00:00:00 2001
From: Neal Gompa <ngompa@fedoraproject.org>
Date: Thu, 4 Jan 2024 10:21:17 -0500
Subject: [PATCH] lavc/openh264: Add the ability to dlopen() OpenH264
Date: Wed, 12 Oct 2022 10:26:35 -0400
Subject: [PATCH] avcodec/openh264: Add the ability to dlopen() OpenH264
We can't directly depend on OpenH264, but we can weakly link to it
and gracefully expose the capability.
@ -14,20 +14,20 @@ Signed-off-by: Neal Gompa <ngompa@fedoraproject.org>
---
configure | 3 +
libavcodec/Makefile | 1 +
libavcodec/libopenh264.c | 5 ++
libavcodec/libopenh264.c | 18 +++-
libavcodec/libopenh264_dlopen.c | 147 ++++++++++++++++++++++++++++++++
libavcodec/libopenh264_dlopen.h | 58 +++++++++++++
libavcodec/libopenh264dec.c | 10 +++
libavcodec/libopenh264enc.c | 10 +++
7 files changed, 234 insertions(+)
7 files changed, 245 insertions(+), 2 deletions(-)
create mode 100644 libavcodec/libopenh264_dlopen.c
create mode 100644 libavcodec/libopenh264_dlopen.h
diff --git a/configure b/configure
index 1f0b9497cb..97fa4a5d6a 100755
index 7a62f0c248..2369ea0240 100755
--- a/configure
+++ b/configure
@@ -249,6 +249,7 @@ External library support:
@@ -250,6 +250,7 @@ External library support:
--enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no]
--enable-libopencv enable video filtering via libopencv [no]
--enable-libopenh264 enable H.264 encoding via OpenH264 [no]
@ -35,7 +35,7 @@ index 1f0b9497cb..97fa4a5d6a 100755
--enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no]
--enable-libopenmpt enable decoding tracked files via libopenmpt [no]
--enable-libopenvino enable OpenVINO as a DNN module backend
@@ -1871,6 +1872,7 @@ EXTERNAL_LIBRARY_LIST="
@@ -1839,6 +1840,7 @@ EXTERNAL_LIBRARY_LIST="
libmysofa
libopencv
libopenh264
@ -43,7 +43,7 @@ index 1f0b9497cb..97fa4a5d6a 100755
libopenjpeg
libopenmpt
libopenvino
@@ -6765,6 +6767,7 @@ enabled libopencv && { check_headers opencv2/core/core_c.h &&
@@ -6582,6 +6584,7 @@ enabled libopencv && { check_headers opencv2/core/core_c.h &&
require libopencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } ||
require_pkg_config libopencv opencv opencv/cxcore.h cvCreateImageHeader; }
enabled libopenh264 && require_pkg_config libopenh264 openh264 wels/codec_api.h WelsGetCodecVersion
@ -52,19 +52,19 @@ index 1f0b9497cb..97fa4a5d6a 100755
{ require_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } }
enabled libopenmpt && require_pkg_config libopenmpt "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create -lstdc++ && append libopenmpt_extralibs "-lstdc++"
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 580a8d6b54..c27d229f6d 100644
index 3adf1536d8..9dc8389ce2 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -1115,6 +1115,7 @@ OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o
@@ -1058,6 +1058,7 @@ OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_DECODER) += libopencore-amr.o
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_ENCODER) += libopencore-amr.o
OBJS-$(CONFIG_LIBOPENCORE_AMRWB_DECODER) += libopencore-amr.o
+OBJS-$(CONFIG_LIBOPENH264_DLOPEN) += libopenh264_dlopen.o
OBJS-$(CONFIG_LIBOPENH264_DECODER) += libopenh264dec.o libopenh264.o
OBJS-$(CONFIG_LIBOPENH264_ENCODER) += libopenh264enc.o libopenh264.o
OBJS-$(CONFIG_LIBOPENJPEG_ENCODER) += libopenjpegenc.o
OBJS-$(CONFIG_LIBOPENJPEG_DECODER) += libopenjpegdec.o
diff --git a/libavcodec/libopenh264.c b/libavcodec/libopenh264.c
index c80c85ea8b..128c3d9846 100644
index 59c61a3a4c..14d83e27df 100644
--- a/libavcodec/libopenh264.c
+++ b/libavcodec/libopenh264.c
@@ -20,8 +20,13 @@
@ -79,8 +79,28 @@ index c80c85ea8b..128c3d9846 100644
#include <wels/codec_ver.h>
+#endif
#include "libavutil/error.h"
#include "libavutil/log.h"
@@ -51,8 +56,17 @@ int ff_libopenh264_check_version(void *logctx)
// Mingw GCC < 4.7 on x86_32 uses an incorrect/buggy ABI for the WelsGetCodecVersion
// function (for functions returning larger structs), thus skip the check in those
// configurations.
-#if !defined(_WIN32) || !defined(__GNUC__) || !ARCH_X86_32 || AV_GCC_VERSION_AT_LEAST(4, 7)
- OpenH264Version libver = WelsGetCodecVersion();
+ // Also, for dlopened OpenH264, we should not do the version check. It's too punitive.
+#if !defined(_WIN32) || !defined(__GNUC__) || !ARCH_X86_32 || AV_GCC_VERSION_AT_LEAST(4, 7) || !defined(CONFIG_LIBOPENH264_DLOPEN)
+ OpenH264Version libver;
+
+#ifdef CONFIG_LIBOPENH264_DLOPEN
+ if (loadLibOpenH264(logctx)) {
+ return AVERROR_EXTERNAL;
+ }
+#endif
+
+ libver = WelsGetCodecVersion();
if (memcmp(&libver, &g_stCodecVersion, sizeof(libver))) {
av_log(logctx, AV_LOG_ERROR, "Incorrect library version loaded\n");
return AVERROR(EINVAL);
diff --git a/libavcodec/libopenh264_dlopen.c b/libavcodec/libopenh264_dlopen.c
new file mode 100644
index 0000000000..49ea8ff44f
@ -299,7 +319,7 @@ index 0000000000..d7d8bb7cad
+
+#endif /* HAVE_LIBOPENH264_DLOPEN_H */
diff --git a/libavcodec/libopenh264dec.c b/libavcodec/libopenh264dec.c
index b6a9bba2dc..e042189161 100644
index 97d3630df6..feb0a0927e 100644
--- a/libavcodec/libopenh264dec.c
+++ b/libavcodec/libopenh264dec.c
@@ -19,8 +19,12 @@
@ -325,11 +345,11 @@ index b6a9bba2dc..e042189161 100644
+ }
+#endif
+
if (WelsCreateDecoder(&s->decoder)) {
av_log(avctx, AV_LOG_ERROR, "Unable to create decoder\n");
return AVERROR_UNKNOWN;
if ((err = ff_libopenh264_check_version(avctx)) < 0)
return AVERROR_DECODER_NOT_FOUND;
diff --git a/libavcodec/libopenh264enc.c b/libavcodec/libopenh264enc.c
index 6f231d22b2..3f0e990d80 100644
index 2001dc22b4..c8b1348df2 100644
--- a/libavcodec/libopenh264enc.c
+++ b/libavcodec/libopenh264enc.c
@@ -19,8 +19,12 @@
@ -345,7 +365,7 @@ index 6f231d22b2..3f0e990d80 100644
#include "libavutil/attributes.h"
#include "libavutil/common.h"
@@ -114,6 +118,12 @@ static av_cold int svc_encode_init(AVCodecContext *avctx)
@@ -136,6 +140,12 @@ static av_cold int svc_encode_init(AVCodecContext *avctx)
WelsTraceCallback callback_function;
AVCPBProperties *props;
@ -355,9 +375,9 @@ index 6f231d22b2..3f0e990d80 100644
+ }
+#endif
+
if (WelsCreateSVCEncoder(&s->encoder)) {
av_log(avctx, AV_LOG_ERROR, "Unable to create encoder\n");
return AVERROR_UNKNOWN;
if ((err = ff_libopenh264_check_version(avctx)) < 0)
return AVERROR_ENCODER_NOT_FOUND;
--
2.43.0
2.36.1

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

@ -1,131 +0,0 @@
From 68ef9a29478fad450ec29ec14120afad3938e75b Mon Sep 17 00:00:00 2001
From: Sandro Mani <manisandro@gmail.com>
Date: Tue, 30 Jan 2024 09:16:13 +0100
Subject: [PATCH] Fix -Wint-conversion and -Wincompatible-pointer-types errors
---
libavcodec/pcm-bluray.c | 4 ++--
libavcodec/pcm-dvd.c | 2 +-
libavcodec/vulkan_av1.c | 2 +-
libavcodec/vulkan_decode.c | 6 +++---
libavcodec/vulkan_video.c | 2 +-
libavfilter/vsrc_testsrc_vulkan.c | 4 ++--
libavutil/hwcontext_vaapi.c | 2 +-
7 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/libavcodec/pcm-bluray.c b/libavcodec/pcm-bluray.c
index f656095..56fa373 100644
--- a/libavcodec/pcm-bluray.c
+++ b/libavcodec/pcm-bluray.c
@@ -167,7 +167,7 @@ static int pcm_bluray_decode_frame(AVCodecContext *avctx, AVFrame *frame,
samples *= num_source_channels;
if (AV_SAMPLE_FMT_S16 == avctx->sample_fmt) {
#if HAVE_BIGENDIAN
- bytestream2_get_buffer(&gb, dst16, buf_size);
+ bytestream2_get_buffer(&gb, (uint8_t*)dst16, buf_size);
#else
do {
*dst16++ = bytestream2_get_be16u(&gb);
@@ -187,7 +187,7 @@ static int pcm_bluray_decode_frame(AVCodecContext *avctx, AVFrame *frame,
if (AV_SAMPLE_FMT_S16 == avctx->sample_fmt) {
do {
#if HAVE_BIGENDIAN
- bytestream2_get_buffer(&gb, dst16, avctx->ch_layout.nb_channels * 2);
+ bytestream2_get_buffer(&gb, (uint8_t*)dst16, avctx->ch_layout.nb_channels * 2);
dst16 += avctx->ch_layout.nb_channels;
#else
channel = avctx->ch_layout.nb_channels;
diff --git a/libavcodec/pcm-dvd.c b/libavcodec/pcm-dvd.c
index 419b2a1..319746c 100644
--- a/libavcodec/pcm-dvd.c
+++ b/libavcodec/pcm-dvd.c
@@ -157,7 +157,7 @@ static void *pcm_dvd_decode_samples(AVCodecContext *avctx, const uint8_t *src,
switch (avctx->bits_per_coded_sample) {
case 16: {
#if HAVE_BIGENDIAN
- bytestream2_get_buffer(&gb, dst16, blocks * s->block_size);
+ bytestream2_get_buffer(&gb, (uint8_t*)dst16, blocks * s->block_size);
dst16 += blocks * s->block_size / 2;
#else
int samples = blocks * avctx->ch_layout.nb_channels;
diff --git a/libavcodec/vulkan_av1.c b/libavcodec/vulkan_av1.c
index 4998bf7..9730e4b 100644
--- a/libavcodec/vulkan_av1.c
+++ b/libavcodec/vulkan_av1.c
@@ -180,7 +180,7 @@ static int vk_av1_create_params(AVCodecContext *avctx, AVBufferRef **buf)
.sType = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR,
.pNext = &av1_params,
.videoSession = ctx->common.session,
- .videoSessionParametersTemplate = NULL,
+ .videoSessionParametersTemplate = VK_NULL_HANDLE,
};
err = ff_vk_decode_create_params(buf, avctx, ctx, &session_params_create);
diff --git a/libavcodec/vulkan_decode.c b/libavcodec/vulkan_decode.c
index a89d84f..fdbcbb4 100644
--- a/libavcodec/vulkan_decode.c
+++ b/libavcodec/vulkan_decode.c
@@ -188,9 +188,9 @@ int ff_vk_decode_prepare_frame(FFVulkanDecodeContext *dec, AVFrame *pic,
return 0;
vkpic->dpb_frame = NULL;
- vkpic->img_view_ref = NULL;
- vkpic->img_view_out = NULL;
- vkpic->img_view_dest = NULL;
+ vkpic->img_view_ref = VK_NULL_HANDLE;
+ vkpic->img_view_out = VK_NULL_HANDLE;
+ vkpic->img_view_dest = VK_NULL_HANDLE;
vkpic->destroy_image_view = vk->DestroyImageView;
vkpic->wait_semaphores = vk->WaitSemaphores;
diff --git a/libavcodec/vulkan_video.c b/libavcodec/vulkan_video.c
index 236aa12..c5144bd 100644
--- a/libavcodec/vulkan_video.c
+++ b/libavcodec/vulkan_video.c
@@ -287,7 +287,7 @@ av_cold void ff_vk_video_common_uninit(FFVulkanContext *s,
if (common->session) {
vk->DestroyVideoSessionKHR(s->hwctx->act_dev, common->session,
s->hwctx->alloc);
- common->session = NULL;
+ common->session = VK_NULL_HANDLE;
}
if (common->nb_mem && common->mem)
diff --git a/libavfilter/vsrc_testsrc_vulkan.c b/libavfilter/vsrc_testsrc_vulkan.c
index 8761c21..1720bfa 100644
--- a/libavfilter/vsrc_testsrc_vulkan.c
+++ b/libavfilter/vsrc_testsrc_vulkan.c
@@ -231,7 +231,7 @@ static int testsrc_vulkan_activate(AVFilterContext *ctx)
return AVERROR(ENOMEM);
err = ff_vk_filter_process_simple(&s->vkctx, &s->e, &s->pl, s->picref, NULL,
- NULL, &s->opts, sizeof(s->opts));
+ VK_NULL_HANDLE, &s->opts, sizeof(s->opts));
if (err < 0)
return err;
}
@@ -250,7 +250,7 @@ static int testsrc_vulkan_activate(AVFilterContext *ctx)
frame->sample_aspect_ratio = s->sar;
if (!s->draw_once) {
err = ff_vk_filter_process_simple(&s->vkctx, &s->e, &s->pl, frame, NULL,
- NULL, &s->opts, sizeof(s->opts));
+ VK_NULL_HANDLE, &s->opts, sizeof(s->opts));
if (err < 0) {
av_frame_free(&frame);
return err;
diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c
index 12bc951..d326ad6 100644
--- a/libavutil/hwcontext_vaapi.c
+++ b/libavutil/hwcontext_vaapi.c
@@ -1203,7 +1203,7 @@ static int vaapi_map_from_drm(AVHWFramesContext *src_fc, AVFrame *dst,
if (!use_prime2 || vas != VA_STATUS_SUCCESS) {
int k;
- unsigned long buffer_handle;
+ size_t buffer_handle;
VASurfaceAttribExternalBuffers buffer_desc;
VASurfaceAttrib buffer_attrs[2] = {
{
--
2.43.0

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,38 @@
From b3b0ff6ef4b5bb3e2bf9649f1d7130f123f90099 Mon Sep 17 00:00:00 2001
From: Andreas Schneider <asn@cryptomilk.org>
Date: Fri, 18 Feb 2022 13:42:17 +0100
Subject: [PATCH] avcodec/openh264: Return (DE|EN)CODER_NOT_FOUND if version
check fails
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
---
libavcodec/libopenh264dec.c | 2 +-
libavcodec/libopenh264enc.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavcodec/libopenh264dec.c b/libavcodec/libopenh264dec.c
index 7f5e85402a26..97d3630df6cf 100644
--- a/libavcodec/libopenh264dec.c
+++ b/libavcodec/libopenh264dec.c
@@ -56,7 +56,7 @@ static av_cold int svc_decode_init(AVCodecContext *avctx)
WelsTraceCallback callback_function;
if ((err = ff_libopenh264_check_version(avctx)) < 0)
- return err;
+ return AVERROR_DECODER_NOT_FOUND;
if (WelsCreateDecoder(&s->decoder)) {
av_log(avctx, AV_LOG_ERROR, "Unable to create decoder\n");
diff --git a/libavcodec/libopenh264enc.c b/libavcodec/libopenh264enc.c
index de4b85c411e0..2001dc22b4c3 100644
--- a/libavcodec/libopenh264enc.c
+++ b/libavcodec/libopenh264enc.c
@@ -137,7 +137,7 @@ static av_cold int svc_encode_init(AVCodecContext *avctx)
AVCPBProperties *props;
if ((err = ff_libopenh264_check_version(avctx)) < 0)
- return err;
+ return AVERROR_ENCODER_NOT_FOUND;
if (WelsCreateSVCEncoder(&s->encoder)) {
av_log(avctx, AV_LOG_ERROR, "Unable to create encoder\n");

View File

@ -17,11 +17,19 @@
%bcond_without lto
%endif
%ifarch %{ix86}
%bcond_with vulkan
%else
%bcond_without vulkan
%endif
%ifarch x86_64
%bcond_without vpl
%bcond_without svtav1
%bcond_without mfx
%bcond_without vmaf
%else
%bcond_with vpl
%bcond_with svtav1
%bcond_with mfx
%bcond_with vmaf
%endif
@ -31,27 +39,7 @@
%bcond_without dc1394
%endif
%if 0%{?rhel}
# Disable dependencies not offered in RHEL/EPEL
%bcond_with omxil
%else
# Disable some features because RHEL 9 packages are too old
%if 0%{?rhel} && 0%{?rhel} <= 9
%bcond_with flite
%bcond_with lcms2
%bcond_with placebo
%else
%bcond_without flite
%bcond_without lcms2
%bcond_without placebo
%endif
%bcond_without omxil
%endif
# Break chromaprint dependency cycle (Fedora-only):
# Break chromaprint dependency cycle:
# ffmpeg (libavcodec-free) → chromaprint → ffmpeg
%if %{with bootstrap}
%bcond_with chromaprint
@ -59,15 +47,21 @@
%bcond_without chromaprint
%endif
%if 0%{?rhel}
# Disable dependencies not offered in RHEL
%bcond_with chromaprint
%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
%if %{without lto}
@ -79,22 +73,22 @@
%endif
%global openh264_soversion 7
%global av_codec_soversion 60
%global av_device_soversion 60
%global av_filter_soversion 9
%global av_format_soversion 60
%global av_util_soversion 58
%global postproc_soversion 57
%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 7
%global swscale_soversion 6
Name: ffmpeg
%global pkg_name %{name}%{?pkg_suffix}
Version: 6.1.1
Release: 11%{?dist}
Version: 5.0.2
Release: 2%{?dist}
Summary: A complete solution to record, convert and stream audio and video
License: GPL-3.0-or-later
License: GPLv3+
URL: https://ffmpeg.org/
Source0: ffmpeg%{?pkg_suffix}-%{version}.tar.xz
Source1: ffmpeg-dlopen-headers.tar.xz
@ -109,29 +103,29 @@ Source21: enable_encoders
Source90: ffmpeg_update_free_sources.sh
Source91: ffmpeg_gen_free_tarball.sh
Source92: ffmpeg_get_dlopen_headers.sh
Source93: ffmpeg_find_free_source_headers.sh
# 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
Patch1: ffmpeg-codec-choice.patch
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
Patch2: ffmpeg-allow-fdk-aac-free.patch
# Drop openh264 runtime version checks
# https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=10211
Patch4: 0001-lavc-libopenh264-Drop-openh264-runtime-version-check.patch
Patch5: ffmpeg-c99.patch
# Fix build with gcc14 (-Wint-conversion, -Wincompatible-pointer-types)
Patch6: ffmpeg-gcc14.patch
Patch5: ffmpeg-allow-fdk-aac-free.patch
# http://ffmpeg.org/pipermail/ffmpeg-devel/2022-February/292853.html
Patch6: ffmpeg-fix-gnutls-priority.patch
# http://ffmpeg.org/pipermail/ffmpeg-devel/2022-February/293194.html
Patch7: ffmpeg-openh264-averr-on-bad-version.patch
# Backport fixes to recognize sdl2 with new versioning scheme
Patch9: 0002-configure-fix-SDL2-version-check-for-pkg_config-fall.patch
# Set up dlopen for openh264
Patch1001: ffmpeg-dlopen-openh264.patch
# Add first_dts getter to libavformat for Chromium
# See: https://bugzilla.redhat.com/show_bug.cgi?id=2240127
# Reference: https://crbug.com/1306560
Patch1002: ffmpeg-chromium.patch
Requires: libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release}
Requires: libavdevice%{?pkg_suffix}%{_isa} = %{version}-%{release}
Requires: libavfilter%{?pkg_suffix}%{_isa} = %{version}-%{release}
@ -143,21 +137,18 @@ Requires: libswscale%{?pkg_suffix}%{_isa} = %{version}-%{release}
BuildRequires: AMF-devel
BuildRequires: fdk-aac-free-devel
%if %{with flite}
BuildRequires: flite-devel >= 2.2
%endif
BuildRequires: flite-devel
BuildRequires: game-music-emu-devel
BuildRequires: gcc
BuildRequires: git-core
BuildRequires: gnupg2
BuildRequires: gsm-devel
BuildRequires: ladspa-devel
BuildRequires: lame-devel
%ifnarch s390 s390x
BuildRequires: libcrystalhd-devel
%endif
BuildRequires: libgcrypt-devel
BuildRequires: libmysofa-devel
BuildRequires: libX11-devel
BuildRequires: libXext-devel
BuildRequires: libXv-devel
BuildRequires: make
BuildRequires: nasm
BuildRequires: perl(Pod::Man)
@ -175,12 +166,8 @@ BuildRequires: pkgconfig(frei0r)
BuildRequires: pkgconfig(fribidi)
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(gnutls)
BuildRequires: pkgconfig(harfbuzz)
BuildRequires: pkgconfig(libilbc)
BuildRequires: pkgconfig(jack)
%if %{with lcms2}
BuildRequires: pkgconfig(lcms2) >= 2.13
%endif
BuildRequires: pkgconfig(libass)
BuildRequires: pkgconfig(libbluray)
BuildRequires: pkgconfig(libbs2b)
@ -190,18 +177,11 @@ BuildRequires: pkgconfig(libcdio_paranoia)
BuildRequires: pkgconfig(libchromaprint)
%endif
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libjxl) >= 0.7.0
BuildRequires: pkgconfig(libmodplug)
%if %{with omxil}
BuildRequires: pkgconfig(libomxil-bellagio)
%endif
BuildRequires: pkgconfig(libopenjp2)
BuildRequires: pkgconfig(libopenmpt)
%if %{with placebo}
BuildRequires: pkgconfig(libplacebo) >= 4.192.0
%endif
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(librabbitmq)
BuildRequires: pkgconfig(librist)
BuildRequires: pkgconfig(librsvg-2.0)
BuildRequires: pkgconfig(libssh)
@ -213,24 +193,20 @@ BuildRequires: pkgconfig(libwebp)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(libzmq)
BuildRequires: pkgconfig(lilv-0)
BuildRequires: pkgconfig(lv2)
BuildRequires: pkgconfig(netcdf)
BuildRequires: pkgconfig(ogg)
BuildRequires: pkgconfig(openal)
BuildRequires: pkgconfig(opencore-amrnb)
BuildRequires: pkgconfig(OpenCL)
BuildRequires: pkgconfig(opus)
BuildRequires: pkgconfig(rav1e)
BuildRequires: pkgconfig(rubberband)
BuildRequires: pkgconfig(schroedinger-1.0)
BuildRequires: pkgconfig(sdl2)
BuildRequires: pkgconfig(shaderc) >= 2019.1
BuildRequires: pkgconfig(smbclient)
BuildRequires: pkgconfig(snappy)
BuildRequires: pkgconfig(soxr)
BuildRequires: pkgconfig(speex)
BuildRequires: pkgconfig(srt)
BuildRequires: pkgconfig(SvtAv1Enc) >= 0.9.0
BuildRequires: pkgconfig(tesseract)
BuildRequires: pkgconfig(theora)
BuildRequires: pkgconfig(twolame)
@ -238,9 +214,7 @@ BuildRequires: pkgconfig(vapoursynth)
BuildRequires: pkgconfig(vdpau)
BuildRequires: pkgconfig(vidstab)
BuildRequires: pkgconfig(vorbis)
BuildRequires: pkgconfig(vo-amrwbenc)
BuildRequires: pkgconfig(vpx)
BuildRequires: pkgconfig(vulkan) >= 1.3.255
BuildRequires: pkgconfig(wavpack)
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xcb-render)
@ -251,8 +225,11 @@ BuildRequires: pkgconfig(zimg)
BuildRequires: pkgconfig(zlib)
BuildRequires: pkgconfig(zvbi-0.2)
BuildRequires: texinfo
BuildRequires: xvidcore-devel
%if %{with amr}
BuildRequires: pkgconfig(opencore-amrnb)
BuildRequires: pkgconfig(vo-amrwbenc)
%endif
%if %{with dc1394}
BuildRequires: pkgconfig(libavc1394)
BuildRequires: pkgconfig(libdc1394-2)
@ -261,8 +238,15 @@ BuildRequires: pkgconfig(libiec61883)
%if %{with rtmp}
BuildRequires: librtmp-devel
%endif
%if %{with vpl}
BuildRequires: pkgconfig(vpl) >= 2.6
%if %{with mfx}
BuildRequires: pkgconfig(libmfx) < 2.0
%endif
%if %{with svtav1}
BuildRequires: pkgconfig(SvtAv1Enc) >= 0.8.4
%endif
%if %{with vulkan}
BuildRequires: vulkan-loader-devel
BuildRequires: pkgconfig(shaderc) >= 2019.1
%endif
%if %{with x264}
BuildRequires: pkgconfig(x264)
@ -273,6 +257,9 @@ BuildRequires: pkgconfig(x265)
%if %{with vmaf}
BuildRequires: pkgconfig(libvmaf)
%endif
%if %{with xvid}
BuildRequires: xvidcore-devel
%endif
%description
@ -340,7 +327,6 @@ Requires: libswresample%{?pkg_suffix}%{_isa} = %{version}-%{release}
## Note, we can do this because openh264 is provided in a default-enabled
## third party repository provided by Cisco.
Recommends: libopenh264.so.%{openh264_soversion}%{?lib64_suffix}
Suggests: openh264%{_isa}
%description -n libavcodec%{?pkg_suffix}
The libavcodec library provides a generic encoding/decoding framework
@ -547,10 +533,10 @@ This subpackage contains the headers for FFmpeg libswscale.
%prep
%if %{with upstream_tarball}
%{gpgverify} --keyring='%{SOURCE3}' --signature='%{SOURCE2}' --data='%{SOURCE0}'
gpgv2 --quiet --keyring %{SOURCE3} %{SOURCE2} %{SOURCE0}
%endif
%autosetup -a1 -S git_am
%autosetup -a1 -p1
install -m 0644 %{SOURCE20} enable_decoders
install -m 0644 %{SOURCE21} enable_encoders
# fix -O3 -g in host_cflags
@ -592,17 +578,15 @@ cp -a doc/examples/{*.c,Makefile,README} _doc/examples/
--enable-gcrypt \
--enable-gnutls \
--enable-ladspa \
%if %{with lcms2}
--enable-lcms2 \
%endif
%if %{with vulkan}
--enable-libshaderc \
--enable-vulkan \
%endif
--disable-cuda-sdk \
--enable-libaom \
--enable-libass \
--enable-libbluray \
--enable-libbs2b \
--enable-libcaca \
--enable-libcdio \
--enable-libcodec2 \
--enable-libdav1d \
@ -611,21 +595,12 @@ cp -a doc/examples/{*.c,Makefile,README} _doc/examples/
%endif
--enable-libdrm \
--enable-libfdk-aac \
%if %{with flite}
--enable-libflite \
%endif
--enable-libfontconfig \
--enable-libfreetype \
--enable-libfribidi \
--enable-libharfbuzz \
--enable-libgme \
--enable-libgsm \
%if %{with dc1394}
--enable-libiec61883 \
%endif
--enable-libilbc \
--enable-libjack \
--enable-libjxl \
--enable-libmodplug \
--enable-libmp3lame \
--enable-libmysofa \
@ -633,17 +608,15 @@ cp -a doc/examples/{*.c,Makefile,README} _doc/examples/
--enable-libopenjpeg \
--enable-libopenmpt \
--enable-libopus \
%if %{with placebo}
--enable-libplacebo \
%endif
--enable-libpulse \
--enable-librabbitmq \
--enable-librav1e \
--enable-librist \
--enable-librsvg \
--enable-librubberband \
--enable-libsnappy \
%if %{with svtav1}
--enable-libsvtav1 \
%endif
--enable-libsoxr \
--enable-libspeex \
--enable-libssh \
@ -666,15 +639,16 @@ cp -a doc/examples/{*.c,Makefile,README} _doc/examples/
%if %{with lto}
--enable-lto \
%endif
%if %{with vpl}
--enable-libvpl \
%if %{with mfx}
--enable-libmfx \
%endif
--enable-lv2 \
--enable-vaapi \
--enable-vdpau \
%if %{with amr}
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-libvo-amrwbenc \
%endif
%if %{with x264}
--enable-libx264 \
%endif
@ -684,7 +658,9 @@ cp -a doc/examples/{*.c,Makefile,README} _doc/examples/
%if %{with librtmp}
--enable-librtmp \
%endif
%if %{with xvid}
--enable-libxvid \
%endif
--enable-openal \
--enable-opencl \
--enable-opengl \
@ -696,7 +672,7 @@ cp -a doc/examples/{*.c,Makefile,README} _doc/examples/
--enable-hwaccels \
--disable-encoders \
--disable-decoders \
--disable-decoder="h264,hevc,vc1" \
--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
@ -732,22 +708,21 @@ cp -a doc/examples/{*.c,Makefile,README} _doc/examples/
|| cat ffbuild/config.log
cat config.h
cat config_components.h
# Paranoia check
%if %{without all_codecs}
# DECODER
for i in H264 HEVC HEVC_RKMPP VC1; do
grep -q "#define CONFIG_${i}_DECODER 0" config_components.h
for i in MPEG4 H263 H264 HEVC HEVC_RKMPP VC1; do
grep -q "#define CONFIG_${i}_DECODER 0" config.h
done
# ENCODER
for i in LIBX264 LIBX264RGB LIBX265; do
grep -q "#define CONFIG_${i}_ENCODER 0" config_components.h
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 MF VIDEOTOOLBOX; do
grep -q "#define CONFIG_${i}_${j}_ENCODER 0" config_components.h
grep -q "#define CONFIG_${i}_${j}_ENCODER 0" config.h
done
done
%endif
@ -865,163 +840,15 @@ rm -rf %{buildroot}%{_datadir}/%{name}/examples
%{_mandir}/man3/libswscale.3*
%changelog
* Wed Mar 13 2024 Sérgio Basto <sergio@serjux.com> - 6.1.1-11
- Rebuild for jpegxl (libjxl) 0.10.2
* Tue Mar 12 2024 Dominik Mierzejewski <dominik@greysector.net> - 6.1.1-10
- Enable drawtext filter (requires libharfbuzz)
* Wed Feb 14 2024 Sérgio Basto <sergio@serjux.com> - 6.1.1-9
- Rebuild for jpegxl (libjxl) 0.9.2 with soname bump
* Wed Feb 07 2024 Pete Walter <pwalter@fedoraproject.org> - 6.1.1-8
- Rebuild for libvpx 1.14.x
* Sun Jan 28 2024 Sandro Mani <manisandro@gmail.com> - 6.1.1-7
- Rebuild (tesseract)
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Jan 15 2024 Neal Gompa <ngompa@fedoraproject.org> - 6.1.1-4
- Add missing files for some of the libraries to fix riscv64 builds
* Fri Jan 12 2024 Fabio Valentini <decathorpe@gmail.com> - 6.1.1-3
- Rebuild for dav1d 1.3.0
* Fri Jan 05 2024 Florian Weimer <fweimer@redhat.com> - 6.1.1-2
- Backport upstream patch to fix C compatibility issues
* Thu Jan 04 2024 Neal Gompa <ngompa@fedoraproject.org> - 6.1.1-1
- Update to 6.1.1
* Thu Jan 04 2024 Neal Gompa <ngompa@fedoraproject.org> - 6.1-1
- Rebase to 6.1
* Wed Dec 06 2023 Kalev Lember <klember@redhat.com> - 6.0.1-2
- Prefer openh264 over noopenh264
- Backport upstream patch to drop openh264 runtime version checks
* Sat Nov 11 2023 Neal Gompa <ngompa@fedoraproject.org> - 6.0.1-1
- Update to 6.0.1
- Add ffmpeg chromium support patch (#2240127)
- Use git to apply patches
* Fri Nov 10 2023 Neal Gompa <ngompa@fedoraproject.org> - 6.0-16
- Add patches to support enhanced RTMP and AV1 encoding through VA-API
- Force AAC decoding through fdk-aac-free
* Sun Oct 08 2023 Dominik Mierzejewski <dominik@greysector.net> - 6.0-15
- Backport upstream patch to fix segfault when passing non-existent filter
option (rfbz#6773)
* Sat Oct 07 2023 Sandro Mani <manisandro@gmail.com> - 6.0-14
- Rebuild (tesseract)
* Fri Sep 29 2023 Nicolas Chauvet <nchauvet@linagora.com> - 6.0-13
- Rebuilt for libplacebo
* Fri Aug 25 2023 Dominik Mierzejewski <dominik@greysector.net> - 6.0-12
- Backport upstream patch to fix assembly with binutils 2.41.
* Sat Aug 05 2023 Richard Shaw <hobbes1069@gmail.com> - 6.0-11
- Rebuild for codec2.
* Fri Jul 28 2023 Dominik Mierzejewski <dominik@greysector.net> - 6.0-10
- Rebuild for libplacebo
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 6.0-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Jul 14 2023 Sandro Mani <manisandro@gmail.com> - 6.0-8
- Rebuild (tesseract)
* Sun Jun 18 2023 Sérgio Basto <sergio@serjux.com> - 6.0-7
- Mass rebuild for jpegxl-0.8.1
* Mon Jun 12 2023 Dominik Mierzejewski <dominik@greysector.net> - 6.0-6
- Rebuild for libdc1394
* Thu Apr 06 2023 Adam Williamson <awilliam@redhat.com> - 6.0-5
- Rebuild (tesseract) again
* Mon Apr 03 2023 Neal Gompa <ngompa@fedoraproject.org> - 6.0-4
- Include RISC-V support sources in the tarball
* Mon Apr 03 2023 Sandro Mani <manisandro@gmail.com> - 6.0-3
- Rebuild (tesseract)
* Wed Mar 22 2023 Nicolas Chauvet <kwizart@gmail.com> - 6.0-2
- Backport upstream patches for libplacebo support
* Sun Mar 12 2023 Neal Gompa <ngompa@fedoraproject.org> - 6.0-1
- Rebase to version 6.0
- Enable SVT-AV1 on all architectures
- Use oneVPL for QSV
- Switch to SPDX license identifiers
* Wed Feb 15 2023 Neal Gompa <ngompa@fedoraproject.org> - 5.1.2-12
* Thu Feb 16 2023 Neal Gompa <ngompa@fedoraproject.org> - 5.0.2-2
- Enable support for the RIST protocol through librist
* Wed Feb 15 2023 Tom Callaway <spot@fedoraproject.org> - 5.1.2-11
- bootstrap off
* Tue Nov 22 2022 Neal Gompa <ngompa@fedoraproject.org> - 5.0.2-1
- Update to 5.0.2
* Wed Feb 15 2023 Tom Callaway <spot@fedoraproject.org> - 5.1.2-10
- rebuild for libvpx (bootstrap)
* Mon Feb 13 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 5.1.2-9
- Enable lcms2, lv2, placebo, rabbitmq, xv
* Mon Feb 13 2023 Neal Gompa <ngompa@fedoraproject.org> - 5.1.2-8
- Disable flite for RHEL 9 as flite is too old
* Fri Feb 03 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 5.1.2-7
- Properly enable caca, flite, gme, iec61883
* Mon Jan 30 2023 Neal Gompa <ngompa@fedoraproject.org> - 5.1.2-6
- Enable more approved codecs
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.1.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sun Jan 15 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 5.1.2-4
- Properly enable libzvbi_teletext decoder
* Fri Dec 23 2022 Sandro Mani <manisandro@gmail.com> - 5.1.2-3
- Rebuild (tesseract)
* Wed Nov 09 2022 Neal Gompa <ngompa@fedoraproject.org> - 5.1.2-2
- Unconditionally enable Vulkan
* Wed Oct 12 2022 Neal Gompa <ngompa@fedoraproject.org> - 5.1.2-1
- Update to version 5.1.2
* Wed Oct 12 2022 Neal Gompa <ngompa@fedoraproject.org> - 5.0.1-12
- Refresh dlopen headers and patch for OpenH264 2.3.1
* Sun Sep 04 2022 Neal Gompa <ngompa@fedoraproject.org> - 5.1.1-1
- Update to version 5.1.1
- Refresh dlopen headers for OpenH264 2.3.0
- Disable omxil and crystalhd for RHEL
* Wed Aug 24 2022 Neal Gompa <ngompa@fedoraproject.org> - 5.1-1
- Rebase to version 5.1
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.1-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sat Jul 09 2022 Richard Shaw <hobbes1069@gmail.com> - 5.0.1-15
- Rebuild for codec2 1.0.4.
* Fri Jul 08 2022 Sandro Mani <manisandro@gmail.com> - 5.0.1-14
- Rebuild (tesseract)
* Wed Jun 22 2022 Robert-André Mauchin <zebob.m@gmail.com> - 5.0.1-13
- Rebuilt for new aom, dav1d, rav1e and svt-av1
* Fri Jun 17 2022 Mamoru TASAKA <mtasaka@tbz.t-com.ne.jp> - 5.0.1-12
- Rebuild for new srt
- Backport patches to fix building with newer SDL2 versions
* Thu Jun 09 2022 Neal Gompa <ngompa@fedoraproject.org> - 5.0.1-11
- Ensure libavdevice-devel is pulled in with devel metapackage

View File

@ -1,72 +0,0 @@
#!/bin/bash
# Script to identify trivial new headers for new sources added
# Requires: bash, coreutils, tar, xz
# Author: Neal Gompa <ngompa@fedoraproject.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
FFMPEG_VERSION=$1
FF_SRC_DIFF=$2
if [ -z $1 -o -z $2 ]; then
echo "No arguments provided, quitting!"
exit 1
fi
echo "Setting up..."
# Get local directory
LOCALDIR=$(realpath $(dirname $0))
# Create working area
TMPDIR=$(mktemp -d /tmp/ffsrchdrsXXXXXX)
mkdir -pv $TMPDIR
# Extract ffmpeg sources
if [ ! -f "ffmpeg-${FFMPEG_VERSION}.tar.xz" ]; then
echo "No ffmpeg tarball, exiting!"
exit 2
fi
if [ ! -f "$FF_SRC_DIFF" ]; then
echo "No ffmpeg sources diff, exiting!"
exit 2
fi
echo "Extracting upstream ffmpeg sources..."
tar -C ${TMPDIR} -xf ffmpeg-${FFMPEG_VERSION}.tar.xz
echo "Generating header list from diff..."
# Read in ffmpeg_free_sources diff
while IFS= read -r line
do
if [[ $line = \+* ]]; then
ffmpeg_src_file="${line:1}"
if [ -f "${TMPDIR}/ffmpeg-${FFMPEG_VERSION}/${ffmpeg_src_file}" ]; then
ffmpeg_hdr_file="${ffmpeg_src_file%.c}.h"
[ -f "${TMPDIR}/ffmpeg-${FFMPEG_VERSION}/${ffmpeg_hdr_file}" ] && echo "${ffmpeg_hdr_file}" >> ${LOCALDIR}/ffmpeg_free_sources
ffmpeg_hdr_file="${ffmpeg_src_file%.c}_cb.h"
[ -f "${TMPDIR}/ffmpeg-${FFMPEG_VERSION}/${ffmpeg_hdr_file}" ] && echo "${ffmpeg_hdr_file}" >> ${LOCALDIR}/ffmpeg_free_sources
ffmpeg_hdr_file="${ffmpeg_src_file%.c}data.h"
[ -f "${TMPDIR}/ffmpeg-${FFMPEG_VERSION}/${ffmpeg_hdr_file}" ] && echo "${ffmpeg_hdr_file}" >> ${LOCALDIR}/ffmpeg_free_sources
ffmpeg_hdr_file="${ffmpeg_src_file%.c}_data.h"
[ -f "${TMPDIR}/ffmpeg-${FFMPEG_VERSION}/${ffmpeg_hdr_file}" ] && echo "${ffmpeg_hdr_file}" >> ${LOCALDIR}/ffmpeg_free_sources
ffmpeg_hdr_file="${ffmpeg_src_file%.c}_tablegen.h"
[ -f "${TMPDIR}/ffmpeg-${FFMPEG_VERSION}/${ffmpeg_hdr_file}" ] && echo "${ffmpeg_hdr_file}" >> ${LOCALDIR}/ffmpeg_free_sources
fi
fi
done < <(cat $FF_SRC_DIFF)
# Clean up
echo "Clean up workspace..."
rm -rf ${TMPDIR}

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
#!/bin/bash
# Script to grab headers from existing packages to support dlopen() codec libraries
# Requires: bash, coreutils, curl, bsdtar, dnf, dnf-plugins-core, tar, xz
# Requires: bash, coreutils, curl, bsdtar, dnf, dnf-plugins-core, tar
# Author: Neal Gompa <ngompa@fedoraproject.org>
#
# This program is free software: you can redistribute it and/or modify

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

View File

@ -1,4 +1,4 @@
SHA512 (ffmpeg-free-6.1.1.tar.xz) = f7ca7901b7affa45fd6016b7ac2d7f843f89ad7f813c6f37228d184842aa55167429585e172d3da61ca1ef64818d563199faa7d06295eea1fd829696d28fa044
SHA512 (ffmpeg-6.1.1.tar.xz.asc) = 0e10c1f560bab0812d759d286656593dea5940f02bb52d88d9ba7f10b12b9cc3d7aa2a41c5f7a45b319069e04dce22dc1286b3c1ba685b35cd6d04cd81c5a0f5
SHA512 (ffmpeg-free-5.0.2.tar.xz) = fd207aaf450799d334b1b8fa293f257dc5286ebc10e822bd6559b66bdf197167182227b359bb18bcfb7a52b915bb8c4e67c341dcdfe43b9960503bade64e7bc6
SHA512 (ffmpeg-5.0.2.tar.xz.asc) = 2cbe55fc15ff20a90b7b3beba22364e013338db53f68b9f228f3c773d955ed149221730ac403dc781c74bbb8c5909573bfd27377b96654496428f709fa79225c
SHA512 (ffmpeg-dlopen-headers.tar.xz) = 97e6986fc2bb9dfa4516135a76b04d27ceb52ff96f0af21a6169919aeefefb4d2e2e24a771959689cdbec385f5d71614ba661223c67c0e94089a6dd823a30099
SHA512 (ffmpeg.keyring) = 9b36506835db36f776b7ddb53ad6fa9e915e6ca2f9c7cfebe8eb45513e1036a985283590a840ca313a111bf35dc3731f68885aaafb1fb7011ec433cc119e5165