SHA256
1
0
forked from jengelh/ffmpeg-5

- Update to release 5.1

OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/ffmpeg-5?expand=0&rev=16
This commit is contained in:
Jan Engelhardt 2022-07-23 12:06:00 +00:00 committed by Git OBS Bridge
parent 0c844c0c9a
commit d6b25f2cd1
14 changed files with 390 additions and 238 deletions

112
abi_break.txt Normal file
View File

@ -0,0 +1,112 @@
==========================================
abidiff /usr/lib64/libavcodec.so.59.18.100 b/usr/lib64/libavcodec.so.59.37.100
Functions changes summary: 0 Removed, 0 Changed, 0 Added function
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
Function symbols changes summary: 1 Removed, 0 Added function symbol not referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info
1 Removed function symbol not referenced by debug info:
[D] avpriv_h264_has_num_reorder_frames@@LIBAVCODEC_59
==========================================
abidiff /usr/lib64/libavdevice.so.59.4.100 b/usr/lib64/libavdevice.so.59.7.100
==========================================
abidiff /usr/lib64/libavfilter.so.8.24.100 b/usr/lib64/libavfilter.so.8.44.100
Functions changes summary: 0 Removed, 0 Changed, 0 Added function
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
Function symbols changes summary: 0 Removed, 1 Added function symbol not referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info
1 Added function symbol not referenced by debug info:
[A] av_buffersink_get_ch_layout@@LIBAVFILTER_8
==========================================
abidiff /usr/lib64/libavformat.so.59.16.100 b/usr/lib64/libavformat.so.59.27.100
Functions changes summary: 0 Removed, 0 Changed, 0 Added function
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
Function symbols changes summary: 0 Removed, 1 Added function symbol not referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info
1 Added function symbol not referenced by debug info:
[A] avio_vprintf@@LIBAVFORMAT_59
==========================================
abidiff /usr/lib64/libavutil.so.57.17.100 b/usr/lib64/libavutil.so.57.28.100
Functions changes summary: 0 Removed, 0 Changed, 0 Added function
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
Function symbols changes summary: 0 Removed, 47 Added function symbols not referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info
47 Added function symbols not referenced by debug info:
[A] av_channel_description@@LIBAVUTIL_57
[A] av_channel_description_bprint@@LIBAVUTIL_57
[A] av_channel_from_string@@LIBAVUTIL_57
[A] av_channel_layout_channel_from_index@@LIBAVUTIL_57
[A] av_channel_layout_channel_from_string@@LIBAVUTIL_57
[A] av_channel_layout_check@@LIBAVUTIL_57
[A] av_channel_layout_compare@@LIBAVUTIL_57
[A] av_channel_layout_copy@@LIBAVUTIL_57
[A] av_channel_layout_default@@LIBAVUTIL_57
[A] av_channel_layout_describe@@LIBAVUTIL_57
[A] av_channel_layout_describe_bprint@@LIBAVUTIL_57
[A] av_channel_layout_from_mask@@LIBAVUTIL_57
[A] av_channel_layout_from_string@@LIBAVUTIL_57
[A] av_channel_layout_index_from_channel@@LIBAVUTIL_57
[A] av_channel_layout_index_from_string@@LIBAVUTIL_57
[A] av_channel_layout_standard@@LIBAVUTIL_57
[A] av_channel_layout_subset@@LIBAVUTIL_57
[A] av_channel_layout_uninit@@LIBAVUTIL_57
[A] av_channel_name@@LIBAVUTIL_57
[A] av_channel_name_bprint@@LIBAVUTIL_57
[A] av_csp_luma_coeffs_from_avcsp@@LIBAVUTIL_57
[A] av_csp_primaries_desc_from_id@@LIBAVUTIL_57
[A] av_csp_primaries_id_from_desc@@LIBAVUTIL_57
[A] av_dynamic_hdr_vivid_alloc@@LIBAVUTIL_57
[A] av_dynamic_hdr_vivid_create_side_data@@LIBAVUTIL_57
[A] av_fifo_alloc2@@LIBAVUTIL_57
[A] av_fifo_auto_grow_limit@@LIBAVUTIL_57
[A] av_fifo_can_read@@LIBAVUTIL_57
[A] av_fifo_can_write@@LIBAVUTIL_57
[A] av_fifo_drain2@@LIBAVUTIL_57
[A] av_fifo_elem_size@@LIBAVUTIL_57
[A] av_fifo_freep2@@LIBAVUTIL_57
[A] av_fifo_grow2@@LIBAVUTIL_57
[A] av_fifo_peek@@LIBAVUTIL_57
[A] av_fifo_peek_to_cb@@LIBAVUTIL_57
[A] av_fifo_read@@LIBAVUTIL_57
[A] av_fifo_read_to_cb@@LIBAVUTIL_57
[A] av_fifo_reset2@@LIBAVUTIL_57
[A] av_fifo_write@@LIBAVUTIL_57
[A] av_fifo_write_from_cb@@LIBAVUTIL_57
[A] av_opt_get_chlayout@@LIBAVUTIL_57
[A] av_opt_set_chlayout@@LIBAVUTIL_57
[A] av_uuid_parse@@LIBAVUTIL_57
[A] av_uuid_parse_range@@LIBAVUTIL_57
[A] av_uuid_unparse@@LIBAVUTIL_57
[A] av_uuid_urn_parse@@LIBAVUTIL_57
[A] avpriv_fopen_utf8@@LIBAVUTIL_57
==========================================
abidiff /usr/lib64/libswresample.so.4.3.100 b/usr/lib64/libswresample.so.4.7.100
Functions changes summary: 0 Removed, 0 Changed, 0 Added function
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
Function symbols changes summary: 0 Removed, 2 Added function symbols not referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info
2 Added function symbols not referenced by debug info:
[A] swr_alloc_set_opts2@@LIBSWRESAMPLE_4
[A] swr_build_matrix2@@LIBSWRESAMPLE_4
==========================================
abidiff /usr/lib64/libswscale.so.6.4.100 b/usr/lib64/libswscale.so.6.7.100
==========================================
abidiff /usr/lib64/libpostproc.so.56.3.100 b/usr/lib64/libpostproc.so.56.6.100
==========================================

View File

@ -1,8 +1,8 @@
libavcodec59 libavcodec59_37
libavdevice59 libavdevice59_7
libavfilter8 libavfilter8_44
libavformat59 libavformat59_27
libavutil57 libavutil57_28
libpostproc56 libpostproc56_6
libswresample4 libswresample4_7
libswscale6 libswscale6_7

View File

@ -1,3 +1,10 @@
From: Ismail Dönmez <ismail@i10z.com>
Date: 2019-06-11 11:21:23
This is ffmpeg-4.1-dlopen-faac-mp3lame-opencore-x264-x265-xvid.patch
from OpenMandriva to optionally enable runtime enabling of
fdkaac/lame/x264/x265.
--- ---
configure | 3 ++ configure | 3 ++
libavcodec/dlopen.h | 12 ++++++++++ libavcodec/dlopen.h | 12 ++++++++++
@ -5,10 +12,10 @@
libavcodec/libfdk-aacenc.c | 47 +++++++++++++++++++++++++++++++++++++++ libavcodec/libfdk-aacenc.c | 47 +++++++++++++++++++++++++++++++++++++++
4 files changed, 115 insertions(+) 4 files changed, 115 insertions(+)
Index: ffmpeg-5.0/configure Index: ffmpeg-5.1/configure
=================================================================== ===================================================================
--- ffmpeg-5.0.orig/configure --- ffmpeg-5.1.orig/configure
+++ ffmpeg-5.0/configure +++ ffmpeg-5.1/configure
@@ -231,6 +231,7 @@ External library support: @@ -231,6 +231,7 @@ External library support:
--enable-libdc1394 enable IIDC-1394 grabbing using libdc1394 --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394
and libraw1394 [no] and libraw1394 [no]
@ -17,7 +24,7 @@ Index: ffmpeg-5.0/configure
--enable-libflite enable flite (voice synthesis) support via libflite [no] --enable-libflite enable flite (voice synthesis) support via libflite [no]
--enable-libfontconfig enable libfontconfig, useful for drawtext filter [no] --enable-libfontconfig enable libfontconfig, useful for drawtext filter [no]
--enable-libfreetype enable libfreetype, needed for drawtext filter [no] --enable-libfreetype enable libfreetype, needed for drawtext filter [no]
@@ -1784,6 +1785,7 @@ EXTERNAL_LIBRARY_GPL_LIST=" @@ -1787,6 +1788,7 @@ EXTERNAL_LIBRARY_GPL_LIST="
EXTERNAL_LIBRARY_NONFREE_LIST=" EXTERNAL_LIBRARY_NONFREE_LIST="
decklink decklink
libfdk_aac libfdk_aac
@ -25,7 +32,7 @@ Index: ffmpeg-5.0/configure
libtls libtls
" "
@@ -6528,6 +6530,7 @@ enabled libdrm && require_pkg @@ -6544,6 +6546,7 @@ enabled libdrm && require_pkg
enabled libfdk_aac && { check_pkg_config libfdk_aac fdk-aac "fdk-aac/aacenc_lib.h" aacEncOpen || enabled libfdk_aac && { check_pkg_config libfdk_aac fdk-aac "fdk-aac/aacenc_lib.h" aacEncOpen ||
{ require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac && { require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac &&
warn "using libfdk without pkg-config"; } } warn "using libfdk without pkg-config"; } }
@ -33,10 +40,10 @@ Index: ffmpeg-5.0/configure
flite_extralibs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_cmu_us_kal16 -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish -lflite_cmulex -lflite" flite_extralibs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_cmu_us_kal16 -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish -lflite_cmulex -lflite"
enabled libflite && require libflite "flite/flite.h" flite_init $flite_extralibs enabled libflite && require libflite "flite/flite.h" flite_init $flite_extralibs
enabled fontconfig && enable libfontconfig enabled fontconfig && enable libfontconfig
Index: ffmpeg-5.0/libavcodec/dlopen.h Index: ffmpeg-5.1/libavcodec/dlopen.h
=================================================================== ===================================================================
--- /dev/null --- /dev/null
+++ ffmpeg-5.0/libavcodec/dlopen.h +++ ffmpeg-5.1/libavcodec/dlopen.h
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
+#ifndef LOCALINC_DLOPEN_H +#ifndef LOCALINC_DLOPEN_H
+#define LOCALINC_DLOPEN_H +#define LOCALINC_DLOPEN_H
@ -50,11 +57,11 @@ Index: ffmpeg-5.0/libavcodec/dlopen.h
+ goto error; + goto error;
+ +
+#endif +#endif
Index: ffmpeg-5.0/libavcodec/libfdk-aacdec.c Index: ffmpeg-5.1/libavcodec/libfdk-aacdec.c
=================================================================== ===================================================================
--- ffmpeg-5.0.orig/libavcodec/libfdk-aacdec.c --- ffmpeg-5.1.orig/libavcodec/libfdk-aacdec.c
+++ ffmpeg-5.0/libavcodec/libfdk-aacdec.c +++ ffmpeg-5.1/libavcodec/libfdk-aacdec.c
@@ -37,6 +37,54 @@ @@ -38,6 +38,54 @@
#define AAC_PCM_MAX_OUTPUT_CHANNELS AAC_PCM_OUTPUT_CHANNELS #define AAC_PCM_MAX_OUTPUT_CHANNELS AAC_PCM_OUTPUT_CHANNELS
#endif #endif
@ -109,7 +116,7 @@ Index: ffmpeg-5.0/libavcodec/libfdk-aacdec.c
enum ConcealMethod { enum ConcealMethod {
CONCEAL_METHOD_SPECTRAL_MUTING = 0, CONCEAL_METHOD_SPECTRAL_MUTING = 0,
CONCEAL_METHOD_NOISE_SUBSTITUTION = 1, CONCEAL_METHOD_NOISE_SUBSTITUTION = 1,
@@ -229,6 +277,11 @@ static av_cold int fdk_aac_decode_init(A @@ -244,6 +292,11 @@ static av_cold int fdk_aac_decode_init(A
FDKAACDecContext *s = avctx->priv_data; FDKAACDecContext *s = avctx->priv_data;
AAC_DECODER_ERROR err; AAC_DECODER_ERROR err;
@ -121,10 +128,10 @@ Index: ffmpeg-5.0/libavcodec/libfdk-aacdec.c
s->handle = aacDecoder_Open(avctx->extradata_size ? TT_MP4_RAW : TT_MP4_ADTS, 1); s->handle = aacDecoder_Open(avctx->extradata_size ? TT_MP4_RAW : TT_MP4_ADTS, 1);
if (!s->handle) { if (!s->handle) {
av_log(avctx, AV_LOG_ERROR, "Error opening decoder\n"); av_log(avctx, AV_LOG_ERROR, "Error opening decoder\n");
Index: ffmpeg-5.0/libavcodec/libfdk-aacenc.c Index: ffmpeg-5.1/libavcodec/libfdk-aacenc.c
=================================================================== ===================================================================
--- ffmpeg-5.0.orig/libavcodec/libfdk-aacenc.c --- ffmpeg-5.1.orig/libavcodec/libfdk-aacenc.c
+++ ffmpeg-5.0/libavcodec/libfdk-aacenc.c +++ ffmpeg-5.1/libavcodec/libfdk-aacenc.c
@@ -36,6 +36,48 @@ @@ -36,6 +36,48 @@
#define FDKENC_VER_AT_LEAST(vl0, vl1) 0 #define FDKENC_VER_AT_LEAST(vl0, vl1) 0
#endif #endif
@ -179,10 +186,10 @@ Index: ffmpeg-5.0/libavcodec/libfdk-aacenc.c
int sce = 0, cpe = 0; int sce = 0, cpe = 0;
+#ifdef CONFIG_LIBFDK_AAC_DLOPEN +#ifdef CONFIG_LIBFDK_AAC_DLOPEN
+ if (loadLibFdkAac(avctx)) + if (loadLibFdkAac(avctx))
+ return -1; + return -1;
+#endif +#endif
+ +
if ((err = aacEncOpen(&s->handle, 0, avctx->channels)) != AACENC_OK) { if ((err = aacEncOpen(&s->handle, 0, avctx->ch_layout.nb_channels)) != AACENC_OK) {
av_log(avctx, AV_LOG_ERROR, "Unable to open the encoder: %s\n", av_log(avctx, AV_LOG_ERROR, "Unable to open the encoder: %s\n",
aac_get_error(err)); aac_get_error(err));

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ef2efae259ce80a240de48ec85ecb062cecca26e4352ffb3fda562c21a93007b
size 9812524

View File

@ -1,11 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQFMBAABCAA2FiEE/PmG6hXm4pOlZE8QtDIvBNZ2WNgFAmJLTc4YHGZmbXBlZy1k
ZXZlbEBmZm1wZWcub3JnAAoJELQyLwTWdljYlgcIAIKL9GBD8/flExnqTUchsP9S
eUIhStzdEUx2m53UQHms0JvtMF/Yc/nmqTVbMzZVZqDSfbjmDlXRv2uZvZmpvw6X
RlmTDpoeOZ7CSiNdq8junvGl6CJyjuGaxsOKcDi60qwevXp0Wdd4vLYg+3KUqpS5
p6CyPTPb5eYEMFNzTnFdCDDctLt4JXJoLeDTSpbP5k84D1oxD6rx2DSoXM5gDLcs
lqui1Bp0Vf9PexwJSyhLSPhwA/jfDWjMA647Wiuj2mrmX/DBiofe8U/OaKtSYybz
1+p6cW2Nozg4xVD5oVjXzB5Vg8O5r52lia93+qBXUqAzJFVt9m5znK5lLHQjK3g=
=tNv7
-----END PGP SIGNATURE-----

3
ffmpeg-5.1.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:55eb6aab5ee235550fa54a33eaf8bf1b4ec66c01453182b12f6a993d75698b03
size 10001864

11
ffmpeg-5.1.tar.xz.asc Normal file
View File

@ -0,0 +1,11 @@
-----BEGIN PGP SIGNATURE-----
iQFMBAABCAA2FiEE/PmG6hXm4pOlZE8QtDIvBNZ2WNgFAmLa5jEYHGZmbXBlZy1k
ZXZlbEBmZm1wZWcub3JnAAoJELQyLwTWdljY4MYH/ReKAbl2QS5Zkc/tr2Nva8tn
yhjBhPYKojRQq5BPwXhoQl9WRAsU6pO/kM7TnPiPkySH5AkPkocSIIcXg9mEY/P/
Q+3JfKXEs+h2YWlsq/7eqfKvauDLvhIAXseDhgNCADccj6Y18sDOYvtPnr93eYwK
shhhdBXcZcugaqIEJmcZmMsnW3Apfn9NvNj4LPRHI6jIvO4ivN3Bny9aN0ypayMP
/AVBBQR+VI9j4esU1ITROHlczK5cbLOhb5mKSRIBPAa1oelBp4MBo7rdO98+fMzN
n6ZFsQ8TbOoSICT/qBdVnLJYq74O75r4s56GUzNVINkgrP/JYvZGXB81ae9wsrc=
=S39U
-----END PGP SIGNATURE-----

View File

@ -1,3 +1,17 @@
-------------------------------------------------------------------
Sat Jul 23 08:35:20 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Update to release 5.1
* AVIF image muxer support for the AV1-based image format
* JPEG-XL image support.
* Removed the X-Video Motion Compensation (XvMC) hardware acceleration
- IPFS/IPNS protocol support.
- PCM-Bluray encoder support.
- Drop vmaf-trim-usr-local.patch (obsolete),
ffmpeg-openh264-averr-on-bad-version.patch (merged)
- Add work-around-abi-break.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Sat Apr 9 22:36:13 UTC 2022 - Dirk Müller <dmueller@suse.com> Sat Apr 9 22:36:13 UTC 2022 - Dirk Müller <dmueller@suse.com>

View File

@ -75,7 +75,7 @@
%define _major_expected 6 %define _major_expected 6
Name: ffmpeg-5 Name: ffmpeg-5
Version: 5.0.1 Version: 5.1
Release: 0 Release: 0
Summary: Set of libraries for working with various multimedia formats Summary: Set of libraries for working with various multimedia formats
License: GPL-3.0-or-later License: GPL-3.0-or-later
@ -91,6 +91,7 @@ Source4: enable_decoders
Source5: enable_encoders Source5: enable_encoders
Source6: ffmpeg-dlopen-headers.tar.xz Source6: ffmpeg-dlopen-headers.tar.xz
Source92: ffmpeg_get_dlopen_headers.sh Source92: ffmpeg_get_dlopen_headers.sh
Source97: abi_break.txt
Source98: http://ffmpeg.org/ffmpeg-devel.asc#/ffmpeg-5.keyring Source98: http://ffmpeg.org/ffmpeg-devel.asc#/ffmpeg-5.keyring
Source99: baselibs.conf Source99: baselibs.conf
@ -98,10 +99,9 @@ Patch1: ffmpeg-arm6l.diff
Patch2: ffmpeg-new-coder-errors.diff Patch2: ffmpeg-new-coder-errors.diff
Patch3: ffmpeg-codec-choice.diff Patch3: ffmpeg-codec-choice.diff
Patch4: ffmpeg-4.2-dlopen-fdk_aac.patch Patch4: ffmpeg-4.2-dlopen-fdk_aac.patch
Patch8: vmaf-trim-usr-local.patch Patch5: work-around-abi-break.patch
Patch9: ffmpeg-4.4-CVE-2020-22046.patch Patch9: ffmpeg-4.4-CVE-2020-22046.patch
Patch10: ffmpeg-chromium.patch Patch10: ffmpeg-chromium.patch
Patch11: ffmpeg-openh264-averr-on-bad-version.patch
Patch91: ffmpeg-dlopen-openh264.patch Patch91: ffmpeg-dlopen-openh264.patch
BuildRequires: ladspa-devel BuildRequires: ladspa-devel
@ -219,14 +219,22 @@ Provides: ffmpeg-tools = %version
Obsoletes: ffmpeg-tools < %version Obsoletes: ffmpeg-tools < %version
Provides: ffmpeg = %version Provides: ffmpeg = %version
Obsoletes: ffmpeg < %version Obsoletes: ffmpeg < %version
Requires: libavcodec59 = %version-%release Requires: libavcodec59_37 = %version-%release
Requires: libavdevice59 = %version-%release Requires: libavdevice59_7 = %version-%release
Requires: libavfilter8 = %version-%release Requires: libavfilter8_44 = %version-%release
Requires: libavformat59 = %version-%release Requires: libavformat59_27 = %version-%release
Requires: libavutil57 = %version-%release Requires: libavutil57_28 = %version-%release
Requires: libpostproc56 = %version-%release Requires: libpostproc56_6 = %version-%release
Requires: libswresample4 = %version-%release Requires: libswresample4_7 = %version-%release
Requires: libswscale6 = %version-%release Requires: libswscale6_7 = %version-%release
Conflicts: libavcodec59 < %version
Conflicts: libavdevice59 < %version
Conflicts: libavfilter8 < %version
Conflicts: libavformat59 < %version
Conflicts: libavutil57 < %version
Conflicts: libpostproc56 < %version
Conflicts: libswresample4 < %version
Conflicts: libswresample6 < %version
%description %description
FFmpeg is a multimedia framework, able to decode, encode, FFmpeg is a multimedia framework, able to decode, encode,
@ -237,11 +245,11 @@ that humans and machines have created.
This build of ffmpeg is limited in the number of codecs supported. This build of ffmpeg is limited in the number of codecs supported.
%endif %endif
%package -n libavcodec59 %package -n libavcodec59_37
Summary: FFmpeg codec library Summary: FFmpeg codec library
Group: System/Libraries Group: System/Libraries
Requires: libavutil57 = %version-%release Requires: libavutil57_28 = %version-%release
Requires: libswresample4 = %version-%release Requires: libswresample4_7 = %version-%release
%if 0%{?BUILD_ORIG} %if 0%{?BUILD_ORIG}
Provides: libavcodec-full = %version-%release Provides: libavcodec-full = %version-%release
# This can be (and is) required by packages like vlc-codecs - # This can be (and is) required by packages like vlc-codecs -
@ -251,7 +259,7 @@ Provides: libavcodec59(unrestricted)
# For mozillas # For mozillas
Provides: libavcodec = %version-%release Provides: libavcodec = %version-%release
%description -n libavcodec59 %description -n libavcodec59_37
The libavcodec library provides a generic encoding/decoding framework The libavcodec library provides a generic encoding/decoding framework
and contains multiple decoders and encoders for audio, video and and contains multiple decoders and encoders for audio, video and
subtitle streams, and several bitstream filters. subtitle streams, and several bitstream filters.
@ -266,7 +274,7 @@ Group: Development/Libraries/C and C++
Provides: libavcodec-devel = %version-%release Provides: libavcodec-devel = %version-%release
Obsoletes: libavcodec-devel < %version-%release Obsoletes: libavcodec-devel < %version-%release
Requires: %name-libavutil-devel = %version-%release Requires: %name-libavutil-devel = %version-%release
Requires: libavcodec59 = %version-%release Requires: libavcodec59_37 = %version-%release
%devel_conflicts -c < -v %_major_version %devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected %devel_conflicts -c >= -v %_major_expected
@ -277,15 +285,15 @@ subtitle streams, and several bitstream filters.
This subpackage contains the headers for FFmpeg libavcodec. This subpackage contains the headers for FFmpeg libavcodec.
%package -n libavdevice59 %package -n libavdevice59_7
Summary: FFmpeg device library Summary: FFmpeg device library
Group: System/Libraries Group: System/Libraries
Requires: libavcodec59 = %version-%release Requires: libavcodec59_37 = %version-%release
Requires: libavfilter8 = %version-%release Requires: libavfilter8_44 = %version-%release
Requires: libavformat59 = %version-%release Requires: libavformat59_27 = %version-%release
Requires: libavutil57 = %version-%release Requires: libavutil57_28 = %version-%release
%description -n libavdevice59 %description -n libavdevice59_7
The libavdevice library provides a generic framework for grabbing from The libavdevice library provides a generic framework for grabbing from
and rendering to many common multimedia input/output devices, and and rendering to many common multimedia input/output devices, and
supports several input and output devices, including Video4Linux2, VfW, supports several input and output devices, including Video4Linux2, VfW,
@ -305,7 +313,7 @@ Requires: %name-libavutil-devel = %version-%release
Requires: %name-libpostproc-devel = %version-%release Requires: %name-libpostproc-devel = %version-%release
Requires: %name-libswresample-devel = %version-%release Requires: %name-libswresample-devel = %version-%release
Requires: %name-libswscale-devel = %version-%release Requires: %name-libswscale-devel = %version-%release
Requires: libavdevice59 = %version-%release Requires: libavdevice59_7 = %version-%release
%devel_conflicts -c < -v %_major_version %devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected %devel_conflicts -c >= -v %_major_expected
@ -317,17 +325,17 @@ DShow, and ALSA.
This subpackage contains the headers for FFmpeg libavcodec. This subpackage contains the headers for FFmpeg libavcodec.
%package -n libavfilter8 %package -n libavfilter8_44
Summary: FFmpeg audio and video filtering library Summary: FFmpeg audio and video filtering library
Group: System/Libraries Group: System/Libraries
Requires: libavcodec59 = %version-%release Requires: libavcodec59_37 = %version-%release
Requires: libavformat59 = %version-%release Requires: libavformat59_7 = %version-%release
Requires: libavutil57 = %version-%release Requires: libavutil57_28 = %version-%release
Requires: libpostproc56 = %version-%release Requires: libpostproc56_6 = %version-%release
Requires: libswresample4 = %version-%release Requires: libswresample4_7 = %version-%release
Requires: libswscale6 = %version-%release Requires: libswscale6_7 = %version-%release
%description -n libavfilter8 %description -n libavfilter8_44
The libavfilter library provides a generic audio/video filtering The libavfilter library provides a generic audio/video filtering
framework containing several filters, sources and sinks. framework containing several filters, sources and sinks.
@ -342,7 +350,7 @@ Requires: %name-libavutil-devel = %version-%release
Requires: %name-libpostproc-devel = %version-%release Requires: %name-libpostproc-devel = %version-%release
Requires: %name-libswresample-devel = %version-%release Requires: %name-libswresample-devel = %version-%release
Requires: %name-libswscale-devel = %version-%release Requires: %name-libswscale-devel = %version-%release
Requires: libavfilter8 = %version-%release Requires: libavfilter8_44 = %version-%release
%devel_conflicts -c < -v %_major_version %devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected %devel_conflicts -c >= -v %_major_expected
@ -352,13 +360,13 @@ framework containing several filters, sources and sinks.
This subpackage contains the headers for FFmpeg libavfilter. This subpackage contains the headers for FFmpeg libavfilter.
%package -n libavformat59 %package -n libavformat59_27
Summary: FFmpeg's stream format library Summary: FFmpeg's stream format library
Group: System/Libraries Group: System/Libraries
Requires: libavcodec59 = %version-%release Requires: libavcodec59_37 = %version-%release
Requires: libavutil57 = %version-%release Requires: libavutil57_28 = %version-%release
%description -n libavformat59 %description -n libavformat59_27
The libavformat library provides a generic framework for multiplexing The libavformat library provides a generic framework for multiplexing
and demultiplexing (muxing and demuxing) audio, video and subtitle and demultiplexing (muxing and demuxing) audio, video and subtitle
streams. It encompasses multiple muxers and demuxers for multimedia streams. It encompasses multiple muxers and demuxers for multimedia
@ -376,7 +384,7 @@ Obsoletes: libavformat-devel < %version-%release
Requires: %name-libavcodec-devel = %version-%release Requires: %name-libavcodec-devel = %version-%release
Requires: %name-libavutil-devel = %version-%release Requires: %name-libavutil-devel = %version-%release
Requires: %name-libswresample-devel = %version-%release Requires: %name-libswresample-devel = %version-%release
Requires: libavformat59 = %version-%release Requires: libavformat59_27 = %version-%release
%devel_conflicts -c < -v %_major_version %devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected %devel_conflicts -c >= -v %_major_expected
@ -388,11 +396,11 @@ container formats.
This subpackage contains the headers for FFmpeg libavformat. This subpackage contains the headers for FFmpeg libavformat.
%package -n libavutil57 %package -n libavutil57_28
Summary: FFmpeg's utility library Summary: FFmpeg's utility library
Group: System/Libraries Group: System/Libraries
%description -n libavutil57 %description -n libavutil57_28
The libavutil library is a utility library to aid portable multimedia The libavutil library is a utility library to aid portable multimedia
programming. It contains safe portable string functions, random programming. It contains safe portable string functions, random
number generators, data structures, additional mathematics functions, number generators, data structures, additional mathematics functions,
@ -404,7 +412,7 @@ Summary: Development files for FFmpeg's utility library
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Provides: libavutil-devel = %version-%release Provides: libavutil-devel = %version-%release
Obsoletes: libavutil-devel < %version-%release Obsoletes: libavutil-devel < %version-%release
Requires: libavutil57 = %version-%release Requires: libavutil57_28 = %version-%release
%devel_conflicts -c < -v %_major_version %devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected %devel_conflicts -c >= -v %_major_expected
@ -417,12 +425,12 @@ for pixel and sample formats).
This subpackage contains the headers for FFmpeg libavutil. This subpackage contains the headers for FFmpeg libavutil.
%package -n libpostproc56 %package -n libpostproc56_6
Summary: FFmpeg post-processing library Summary: FFmpeg post-processing library
Group: System/Libraries Group: System/Libraries
Requires: libavutil57 = %version-%release Requires: libavutil57_28 = %version-%release
%description -n libpostproc56 %description -n libpostproc56_6
A library with video postprocessing filters, such as deblocking and A library with video postprocessing filters, such as deblocking and
deringing filters, noise reduction, automatic contrast and brightness deringing filters, noise reduction, automatic contrast and brightness
correction, linear/cubic interpolating deinterlacing. correction, linear/cubic interpolating deinterlacing.
@ -433,7 +441,7 @@ Group: Development/Libraries/C and C++
Provides: libpostproc-devel = %version-%release Provides: libpostproc-devel = %version-%release
Obsoletes: libpostproc-devel < %version-%release Obsoletes: libpostproc-devel < %version-%release
Requires: %name-libavutil-devel = %version-%release Requires: %name-libavutil-devel = %version-%release
Requires: libpostproc56 = %version-%release Requires: libpostproc56_6 = %version-%release
%devel_conflicts -c < -v %_major_version %devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected %devel_conflicts -c >= -v %_major_expected
@ -444,12 +452,12 @@ correction, linear/cubic interpolating deinterlacing.
This subpackage contains the headers for FFmpeg libpostproc. This subpackage contains the headers for FFmpeg libpostproc.
%package -n libswresample4 %package -n libswresample4_7
Summary: FFmpeg software resampling library Summary: FFmpeg software resampling library
Group: System/Libraries Group: System/Libraries
Requires: libavutil57 = %version-%release Requires: libavutil57_28 = %version-%release
%description -n libswresample4 %description -n libswresample4_7
The libswresample library performs audio conversion between different The libswresample library performs audio conversion between different
sample rates, channel layout and channel formats. sample rates, channel layout and channel formats.
@ -459,7 +467,7 @@ Group: Development/Libraries/C and C++
Provides: libswresample-devel = %version-%release Provides: libswresample-devel = %version-%release
Obsoletes: libswresample-devel < %version-%release Obsoletes: libswresample-devel < %version-%release
Requires: %name-libavutil-devel = %version-%release Requires: %name-libavutil-devel = %version-%release
Requires: libswresample4 = %version-%release Requires: libswresample4_7 = %version-%release
%devel_conflicts -c < -v %_major_version %devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected %devel_conflicts -c >= -v %_major_expected
@ -469,12 +477,12 @@ sample rates, channel layout and channel formats.
This subpackage contains the headers for FFmpeg libswresample. This subpackage contains the headers for FFmpeg libswresample.
%package -n libswscale6 %package -n libswscale6_7
Summary: FFmpeg image scaling and colorspace/pixel conversion library Summary: FFmpeg image scaling and colorspace/pixel conversion library
Group: System/Libraries Group: System/Libraries
Requires: libavutil57 = %version-%release Requires: libavutil57_28 = %version-%release
%description -n libswscale6 %description -n libswscale6_7
The libswscale library performs image scaling and colorspace and The libswscale library performs image scaling and colorspace and
pixel format conversion operations. pixel format conversion operations.
@ -484,7 +492,7 @@ Group: Development/Libraries/C and C++
Provides: libswscale-devel = %version-%release Provides: libswscale-devel = %version-%release
Conflicts: libswscale-devel Conflicts: libswscale-devel
Requires: %name-libavutil-devel = %version-%release Requires: %name-libavutil-devel = %version-%release
Requires: libswscale6 = %version-%release Requires: libswscale6_7 = %version-%release
%devel_conflicts -c < -v %_major_version %devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected %devel_conflicts -c >= -v %_major_expected
@ -658,7 +666,7 @@ LDFLAGS="%_lto_cflags" \
--enable-decoder="$(perl -pe 's{^(\w*).*}{$1,}gs' <%_sourcedir/enable_decoders)" \ --enable-decoder="$(perl -pe 's{^(\w*).*}{$1,}gs' <%_sourcedir/enable_decoders)" \
for i in MPEG4 H263 H264 HEVC VC1; do for i in MPEG4 H263 H264 HEVC VC1; do
grep -q "#define CONFIG_${i}_DECODER 0" config.h grep -q "#define CONFIG_${i}_DECODER 0" config_components.h
done done
%endif %endif
@ -689,60 +697,68 @@ for i in libavformat/options_table.h libavformat/os_support.h \
cp -a $i "$b/%_includedir/ffmpeg/private/$i" cp -a $i "$b/%_includedir/ffmpeg/private/$i"
done done
%post -n libavcodec59 -p /sbin/ldconfig %post -n libavcodec59_37 -p /sbin/ldconfig
%postun -n libavcodec59 -p /sbin/ldconfig %postun -n libavcodec59_37 -p /sbin/ldconfig
%post -n libavdevice59 -p /sbin/ldconfig %post -n libavdevice59_7 -p /sbin/ldconfig
%postun -n libavdevice59 -p /sbin/ldconfig %postun -n libavdevice59_7 -p /sbin/ldconfig
%post -n libavfilter8 -p /sbin/ldconfig %post -n libavfilter8_44 -p /sbin/ldconfig
%postun -n libavfilter8 -p /sbin/ldconfig %postun -n libavfilter8_44 -p /sbin/ldconfig
%post -n libavformat59 -p /sbin/ldconfig %post -n libavformat59_27 -p /sbin/ldconfig
%postun -n libavformat59 -p /sbin/ldconfig %postun -n libavformat59_27 -p /sbin/ldconfig
%post -n libavutil57 -p /sbin/ldconfig %post -n libavutil57_28 -p /sbin/ldconfig
%postun -n libavutil57 -p /sbin/ldconfig %postun -n libavutil57_28 -p /sbin/ldconfig
%post -n libpostproc56 -p /sbin/ldconfig %post -n libpostproc56_6 -p /sbin/ldconfig
%postun -n libpostproc56 -p /sbin/ldconfig %postun -n libpostproc56_6 -p /sbin/ldconfig
%post -n libswresample4 -p /sbin/ldconfig %post -n libswresample4_7 -p /sbin/ldconfig
%postun -n libswresample4 -p /sbin/ldconfig %postun -n libswresample4_7 -p /sbin/ldconfig
%post -n libswscale6 -p /sbin/ldconfig %post -n libswscale6_7 -p /sbin/ldconfig
%postun -n libswscale6 -p /sbin/ldconfig %postun -n libswscale6_7 -p /sbin/ldconfig
%files %files
%doc Changelog CREDITS README.md %doc Changelog CREDITS README.md
%_bindir/* %_bindir/*
%_mandir/man1/ff*.1* %_mandir/man1/ff*.1*
%_datadir/ffmpeg/ %_datadir/ffmpeg/
%_libdir/libavcodec.so.59
%_libdir/libavdevice.so.59
%_libdir/libavfilter.so.8
%_libdir/libavformat.so.59
%_libdir/libavutil.so.57
%_libdir/libpostproc.so.56
%_libdir/libswresample.so.4
%_libdir/libswscale.so.6
%files -n libavcodec59 %files -n libavcodec59_37
%license COPYING.GPLv2 LICENSE.md %license COPYING.GPLv2 LICENSE.md
%_libdir/libavcodec.so.59* %_libdir/libavcodec.so.59.*
%files -n libavdevice59 %files -n libavdevice59_7
%license COPYING.GPLv2 LICENSE.md %license COPYING.GPLv2 LICENSE.md
%_libdir/libavdevice.so.59* %_libdir/libavdevice.so.59.*
%files -n libavfilter8 %files -n libavfilter8_44
%license COPYING.GPLv2 LICENSE.md %license COPYING.GPLv2 LICENSE.md
%_libdir/libavfilter.so.8* %_libdir/libavfilter.so.8.*
%files -n libavformat59 %files -n libavformat59_27
%license COPYING.GPLv2 LICENSE.md %license COPYING.GPLv2 LICENSE.md
%_libdir/libavformat.so.59* %_libdir/libavformat.so.59.*
%files -n libavutil57 %files -n libavutil57_28
%license COPYING.GPLv2 LICENSE.md %license COPYING.GPLv2 LICENSE.md
%_libdir/libavutil.so.57* %_libdir/libavutil.so.57.*
%files -n libpostproc56 %files -n libpostproc56_6
%license COPYING.GPLv2 LICENSE.md %license COPYING.GPLv2 LICENSE.md
%_libdir/libpostproc.so.56* %_libdir/libpostproc.so.56.*
%files -n libswresample4 %files -n libswresample4_7
%license COPYING.GPLv2 LICENSE.md %license COPYING.GPLv2 LICENSE.md
%_libdir/libswresample.so.4* %_libdir/libswresample.so.4.*
%files -n libswscale6 %files -n libswscale6_7
%license COPYING.GPLv2 LICENSE.md %license COPYING.GPLv2 LICENSE.md
%_libdir/libswscale.so.6* %_libdir/libswscale.so.6.*
%files libavcodec-devel %files libavcodec-devel
%dir %_includedir/ffmpeg/ %dir %_includedir/ffmpeg/

View File

@ -6,11 +6,16 @@ parent e073b7a22e4993e0a7cab80a42a21524e5349f95
Add av_stream_get_first_dts for Chromium Add av_stream_get_first_dts for Chromium
diff --git a/libavformat/avformat.h b/libavformat/avformat.h ---
index cd7b0d9..b4a6dce 100644 libavformat/avformat.h | 4 ++++
--- a/libavformat/avformat.h libavformat/demux_utils.c | 7 +++++++
+++ b/libavformat/avformat.h 2 files changed, 11 insertions(+)
@@ -1010,6 +1010,10 @@
Index: ffmpeg-5.1/libavformat/avformat.h
===================================================================
--- ffmpeg-5.1.orig/libavformat/avformat.h
+++ ffmpeg-5.1/libavformat/avformat.h
@@ -1128,6 +1128,10 @@ struct AVCodecParserContext *av_stream_g
*/ */
int64_t av_stream_get_end_pts(const AVStream *st); int64_t av_stream_get_end_pts(const AVStream *st);
@ -21,13 +26,13 @@ index cd7b0d9..b4a6dce 100644
#define AV_PROGRAM_RUNNING 1 #define AV_PROGRAM_RUNNING 1
/** /**
diff --git a/libavformat/utils.c b/libavformat/utils.c Index: ffmpeg-5.1/libavformat/demux_utils.c
index de7580c..0ef0fe5 100644 ===================================================================
--- a/libavformat/utils.c --- ffmpeg-5.1.orig/libavformat/demux_utils.c
+++ b/libavformat/utils.c +++ ffmpeg-5.1/libavformat/demux_utils.c
@@ -121,6 +121,13 @@ @@ -29,6 +29,13 @@
return AV_NOPTS_VALUE; #include "demux.h"
} #include "internal.h"
+// Chromium: We use the internal field first_dts vvv +// Chromium: We use the internal field first_dts vvv
+int64_t av_stream_get_first_dts(const AVStream *st) +int64_t av_stream_get_first_dts(const AVStream *st)

View File

@ -12,22 +12,22 @@ Co-authored-by: Neal Gompa <ngompa@fedoraproject.org>
Signed-off-by: Andreas Schneider <asn@cryptomilk.org> Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Signed-off-by: Neal Gompa <ngompa@fedoraproject.org> Signed-off-by: Neal Gompa <ngompa@fedoraproject.org>
--- ---
configure | 3 + configure | 3
libavcodec/Makefile | 1 + libavcodec/Makefile | 1
libavcodec/libopenh264.c | 15 +++- libavcodec/libopenh264.c | 15 +++-
libavcodec/libopenh264_dlopen.c | 147 ++++++++++++++++++++++++++++++++ libavcodec/libopenh264_dlopen.c | 147 ++++++++++++++++++++++++++++++++++++++++
libavcodec/libopenh264_dlopen.h | 58 +++++++++++++ libavcodec/libopenh264_dlopen.h | 58 +++++++++++++++
libavcodec/libopenh264dec.c | 10 +++ libavcodec/libopenh264dec.c | 10 ++
libavcodec/libopenh264enc.c | 10 +++ libavcodec/libopenh264enc.c | 10 ++
7 files changed, 243 insertions(+), 1 deletion(-) 7 files changed, 243 insertions(+), 1 deletion(-)
create mode 100644 libavcodec/libopenh264_dlopen.c create mode 100644 libavcodec/libopenh264_dlopen.c
create mode 100644 libavcodec/libopenh264_dlopen.h create mode 100644 libavcodec/libopenh264_dlopen.h
diff --git a/configure b/configure Index: ffmpeg-5.1/configure
index 6b5ef6332e..f08e566e98 100755 ===================================================================
--- a/configure --- ffmpeg-5.1.orig/configure
+++ b/configure +++ ffmpeg-5.1/configure
@@ -250,6 +250,7 @@ External library support: @@ -252,6 +252,7 @@ External library support:
--enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no] --enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no]
--enable-libopencv enable video filtering via libopencv [no] --enable-libopencv enable video filtering via libopencv [no]
--enable-libopenh264 enable H.264 encoding via OpenH264 [no] --enable-libopenh264 enable H.264 encoding via OpenH264 [no]
@ -35,7 +35,7 @@ index 6b5ef6332e..f08e566e98 100755
--enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no] --enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no]
--enable-libopenmpt enable decoding tracked files via libopenmpt [no] --enable-libopenmpt enable decoding tracked files via libopenmpt [no]
--enable-libopenvino enable OpenVINO as a DNN module backend --enable-libopenvino enable OpenVINO as a DNN module backend
@@ -1839,6 +1840,7 @@ EXTERNAL_LIBRARY_LIST=" @@ -1846,6 +1847,7 @@ EXTERNAL_LIBRARY_LIST="
libmysofa libmysofa
libopencv libopencv
libopenh264 libopenh264
@ -43,7 +43,7 @@ index 6b5ef6332e..f08e566e98 100755
libopenjpeg libopenjpeg
libopenmpt libopenmpt
libopenvino libopenvino
@@ -6575,6 +6577,7 @@ enabled libopencv && { check_headers opencv2/core/core_c.h && @@ -6599,6 +6601,7 @@ enabled libopencv && { check_hea
require libopencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } || require libopencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } ||
require_pkg_config libopencv opencv opencv/cxcore.h cvCreateImageHeader; } require_pkg_config libopencv opencv opencv/cxcore.h cvCreateImageHeader; }
enabled libopenh264 && require_pkg_config libopenh264 openh264 wels/codec_api.h WelsGetCodecVersion enabled libopenh264 && require_pkg_config libopenh264 openh264 wels/codec_api.h WelsGetCodecVersion
@ -51,11 +51,11 @@ index 6b5ef6332e..f08e566e98 100755
enabled libopenjpeg && { check_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version || enabled libopenjpeg && { check_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version ||
{ require_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } } { 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++" 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: ffmpeg-5.1/libavcodec/Makefile
index 3adf1536d8..9dc8389ce2 100644 ===================================================================
--- a/libavcodec/Makefile --- ffmpeg-5.1.orig/libavcodec/Makefile
+++ b/libavcodec/Makefile +++ ffmpeg-5.1/libavcodec/Makefile
@@ -1058,6 +1058,7 @@ OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o @@ -1075,6 +1075,7 @@ OBJS-$(CONFIG_LIBMP3LAME_ENCODER)
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_DECODER) += libopencore-amr.o OBJS-$(CONFIG_LIBOPENCORE_AMRNB_DECODER) += libopencore-amr.o
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_ENCODER) += libopencore-amr.o OBJS-$(CONFIG_LIBOPENCORE_AMRNB_ENCODER) += libopencore-amr.o
OBJS-$(CONFIG_LIBOPENCORE_AMRWB_DECODER) += libopencore-amr.o OBJS-$(CONFIG_LIBOPENCORE_AMRWB_DECODER) += libopencore-amr.o
@ -63,10 +63,10 @@ index 3adf1536d8..9dc8389ce2 100644
OBJS-$(CONFIG_LIBOPENH264_DECODER) += libopenh264dec.o libopenh264.o OBJS-$(CONFIG_LIBOPENH264_DECODER) += libopenh264dec.o libopenh264.o
OBJS-$(CONFIG_LIBOPENH264_ENCODER) += libopenh264enc.o libopenh264.o OBJS-$(CONFIG_LIBOPENH264_ENCODER) += libopenh264enc.o libopenh264.o
OBJS-$(CONFIG_LIBOPENJPEG_DECODER) += libopenjpegdec.o OBJS-$(CONFIG_LIBOPENJPEG_DECODER) += libopenjpegdec.o
diff --git a/libavcodec/libopenh264.c b/libavcodec/libopenh264.c Index: ffmpeg-5.1/libavcodec/libopenh264.c
index 59c61a3a4c..9b7dfc59be 100644 ===================================================================
--- a/libavcodec/libopenh264.c --- ffmpeg-5.1.orig/libavcodec/libopenh264.c
+++ b/libavcodec/libopenh264.c +++ ffmpeg-5.1/libavcodec/libopenh264.c
@@ -20,8 +20,13 @@ @@ -20,8 +20,13 @@
*/ */
@ -79,9 +79,9 @@ index 59c61a3a4c..9b7dfc59be 100644
#include <wels/codec_ver.h> #include <wels/codec_ver.h>
+#endif +#endif
#include "libavutil/error.h"
#include "libavutil/log.h" #include "libavutil/log.h"
@@ -53,7 +58,15 @@ int ff_libopenh264_check_version(void *l
@@ -52,7 +57,15 @@ int ff_libopenh264_check_version(void *logctx)
// function (for functions returning larger structs), thus skip the check in those // function (for functions returning larger structs), thus skip the check in those
// configurations. // configurations.
#if !defined(_WIN32) || !defined(__GNUC__) || !ARCH_X86_32 || AV_GCC_VERSION_AT_LEAST(4, 7) #if !defined(_WIN32) || !defined(__GNUC__) || !ARCH_X86_32 || AV_GCC_VERSION_AT_LEAST(4, 7)
@ -98,11 +98,10 @@ index 59c61a3a4c..9b7dfc59be 100644
if (memcmp(&libver, &g_stCodecVersion, sizeof(libver))) { if (memcmp(&libver, &g_stCodecVersion, sizeof(libver))) {
av_log(logctx, AV_LOG_ERROR, "Incorrect library version loaded\n"); av_log(logctx, AV_LOG_ERROR, "Incorrect library version loaded\n");
return AVERROR(EINVAL); return AVERROR(EINVAL);
diff --git a/libavcodec/libopenh264_dlopen.c b/libavcodec/libopenh264_dlopen.c Index: ffmpeg-5.1/libavcodec/libopenh264_dlopen.c
new file mode 100644 ===================================================================
index 0000000000..b350679f18
--- /dev/null --- /dev/null
+++ b/libavcodec/libopenh264_dlopen.c +++ ffmpeg-5.1/libavcodec/libopenh264_dlopen.c
@@ -0,0 +1,147 @@ @@ -0,0 +1,147 @@
+/* +/*
+ * OpenH264 dlopen code + * OpenH264 dlopen code
@ -251,11 +250,10 @@ index 0000000000..b350679f18
+ +
+ return 0; + return 0;
+} +}
diff --git a/libavcodec/libopenh264_dlopen.h b/libavcodec/libopenh264_dlopen.h Index: ffmpeg-5.1/libavcodec/libopenh264_dlopen.h
new file mode 100644 ===================================================================
index 0000000000..d7d8bb7cad
--- /dev/null --- /dev/null
+++ b/libavcodec/libopenh264_dlopen.h +++ ffmpeg-5.1/libavcodec/libopenh264_dlopen.h
@@ -0,0 +1,58 @@ @@ -0,0 +1,58 @@
+/* +/*
+ * OpenH264 dlopen code + * OpenH264 dlopen code
@ -315,10 +313,10 @@ index 0000000000..d7d8bb7cad
+#endif /* CONFIG_LIBOPENH264_DLOPEN */ +#endif /* CONFIG_LIBOPENH264_DLOPEN */
+ +
+#endif /* HAVE_LIBOPENH264_DLOPEN_H */ +#endif /* HAVE_LIBOPENH264_DLOPEN_H */
diff --git a/libavcodec/libopenh264dec.c b/libavcodec/libopenh264dec.c Index: ffmpeg-5.1/libavcodec/libopenh264dec.c
index 97d3630df6..feb0a0927e 100644 ===================================================================
--- a/libavcodec/libopenh264dec.c --- ffmpeg-5.1.orig/libavcodec/libopenh264dec.c
+++ b/libavcodec/libopenh264dec.c +++ ffmpeg-5.1/libavcodec/libopenh264dec.c
@@ -19,8 +19,12 @@ @@ -19,8 +19,12 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
@ -332,7 +330,7 @@ index 97d3630df6..feb0a0927e 100644
#include "libavutil/common.h" #include "libavutil/common.h"
#include "libavutil/fifo.h" #include "libavutil/fifo.h"
@@ -55,6 +59,12 @@ static av_cold int svc_decode_init(AVCodecContext *avctx) @@ -56,6 +60,12 @@ static av_cold int svc_decode_init(AVCod
int log_level; int log_level;
WelsTraceCallback callback_function; WelsTraceCallback callback_function;
@ -345,10 +343,10 @@ index 97d3630df6..feb0a0927e 100644
if ((err = ff_libopenh264_check_version(avctx)) < 0) if ((err = ff_libopenh264_check_version(avctx)) < 0)
return AVERROR_DECODER_NOT_FOUND; return AVERROR_DECODER_NOT_FOUND;
diff --git a/libavcodec/libopenh264enc.c b/libavcodec/libopenh264enc.c Index: ffmpeg-5.1/libavcodec/libopenh264enc.c
index 2001dc22b4..c8b1348df2 100644 ===================================================================
--- a/libavcodec/libopenh264enc.c --- ffmpeg-5.1.orig/libavcodec/libopenh264enc.c
+++ b/libavcodec/libopenh264enc.c +++ ffmpeg-5.1/libavcodec/libopenh264enc.c
@@ -19,8 +19,12 @@ @@ -19,8 +19,12 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
@ -362,7 +360,7 @@ index 2001dc22b4..c8b1348df2 100644
#include "libavutil/attributes.h" #include "libavutil/attributes.h"
#include "libavutil/common.h" #include "libavutil/common.h"
@@ -136,6 +140,12 @@ static av_cold int svc_encode_init(AVCodecContext *avctx) @@ -137,6 +141,12 @@ static av_cold int svc_encode_init(AVCod
WelsTraceCallback callback_function; WelsTraceCallback callback_function;
AVCPBProperties *props; AVCPBProperties *props;
@ -375,6 +373,3 @@ index 2001dc22b4..c8b1348df2 100644
if ((err = ff_libopenh264_check_version(avctx)) < 0) if ((err = ff_libopenh264_check_version(avctx)) < 0)
return AVERROR_ENCODER_NOT_FOUND; return AVERROR_ENCODER_NOT_FOUND;
--
2.34.1

View File

@ -1,38 +0,0 @@
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

@ -1,17 +0,0 @@
---
libavfilter/vf_libvmaf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: ffmpeg-4.4.1/libavfilter/vf_libvmaf.c
===================================================================
--- ffmpeg-4.4.1.orig/libavfilter/vf_libvmaf.c
+++ ffmpeg-4.4.1/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.pkl"}, 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},

View File

@ -0,0 +1,58 @@
From: Jan Engelhardt <jengelh@inai.de>
Date: 2020-07-04 23:56:54.411950316 +0200
References: http://ffmpeg.org/pipermail/ffmpeg-devel/2020-July/265694.html
User frispete wrote on 2020-6-26 22:13+0000 at
https://build.opensuse.org/package/show/multimedia:libs/ffmpeg-4#comment-1257440
: """Unfortunately, this version is binary incompatible to 4.2.3 in some
aspects. [...]"""
Further discussion on the mailing list explored this topic, and
revealed that ELF symbol versioning is lacklusterly implemented in
ffmpeg, which can cause inadvertent mixing of library versions on
openSUSE, and precompiled Linux distributions in general. It is
unclear when upstream will have implemented a solution. Until then,
we will need to tighten the requirements between packages, to which
end we stretch the SOVERSION to include MINOR.
Programs linking to libavcodec get the right DT_NEEDED field with value
libavcodec.so.58.91, and so they do not request libavcodec.so.58 (which could
potentially lead to libavcodec.so.58.54).
Programs dlopening libavcodec.so.58 will get something random, that's
what dlopening programs have to deal with.
[2022-07-23: ffmpeg is at it again! Reinstate the patch.
$ abidiff abidiff /usr/lib64/libavformat.so.59.16.100 usr/lib64/libavformat.so.59.27.100
Functions changes summary: 0 Removed, 0 Changed, 0 Added function
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
Function symbols changes summary: 0 Removed, 1 Added function symbol not referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info
1 Added function symbol not referenced by debug info:
[A] avio_vprintf@@LIBAVFORMAT_59
]
---
configure | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: ffmpeg-4.4.1/configure
===================================================================
--- ffmpeg-4.4.1.orig/configure
+++ ffmpeg-4.4.1/configure
@@ -3834,10 +3834,10 @@ SLIBPREF="lib"
SLIBSUF=".so"
SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)'
SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
-SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
+SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR).$(LIBMINOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
-SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'
+SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME) $(SLIBNAME).$(LIBMAJOR)'
VERSION_SCRIPT_POSTPROCESS_CMD="cat"
asflags_filter=echo