From cde4f15f76e6c273929c1df32260b378ba5f7972 Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Sat, 30 Sep 2023 08:09:48 -0400 Subject: [PATCH 1/3] Fix ffmpeg-allow-fdk-aac-free.patch to apply with git-am --- ffmpeg-allow-fdk-aac-free.patch | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ffmpeg-allow-fdk-aac-free.patch b/ffmpeg-allow-fdk-aac-free.patch index 0cc91f1..3b87cce 100644 --- a/ffmpeg-allow-fdk-aac-free.patch +++ b/ffmpeg-allow-fdk-aac-free.patch @@ -1,3 +1,5 @@ +From: Andreas Schneider + fdk-aac-free-devel is GPL compatible See https://bugzilla.redhat.com/show_bug.cgi?id=1501522#c112 From cb8b75595f07261f34f5c80e84cbca217f707139 Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Tue, 14 Nov 2023 15:31:20 -0500 Subject: [PATCH 2/3] Update to 5.1.4 - Add ffmpeg chromium support patch (#2240127) - Use git to apply patches --- ffmpeg-chromium.patch | 46 +++++++++++++++++++++++++++++++++++++++++++ ffmpeg.spec | 16 +++++++++++++-- sources | 4 ++-- 3 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 ffmpeg-chromium.patch diff --git a/ffmpeg-chromium.patch b/ffmpeg-chromium.patch new file mode 100644 index 0000000..6625e2d --- /dev/null +++ b/ffmpeg-chromium.patch @@ -0,0 +1,46 @@ +From 4464ecf750bb9440e2571a8d810627cdec85ae02 Mon Sep 17 00:00:00 2001 +From: Frank Liberato +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 f12fa7d904..0b9fd1f061 100644 +--- a/libavformat/avformat.h ++++ b/libavformat/avformat.h +@@ -1128,6 +1128,10 @@ struct AVCodecParserContext *av_stream_get_parser(const AVStream *s); + */ + int64_t av_stream_get_end_pts(const AVStream *st); + ++// Chromium: We use the internal field first_dts vvv ++int64_t av_stream_get_first_dts(const AVStream *st); ++// Chromium: We use the internal field first_dts ^^^ ++ + #define AV_PROGRAM_RUNNING 1 + + /** +diff --git a/libavformat/utils.c b/libavformat/utils.c +index 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 + diff --git a/ffmpeg.spec b/ffmpeg.spec index 617faf4..776e8ba 100644 --- a/ffmpeg.spec +++ b/ffmpeg.spec @@ -101,7 +101,7 @@ Name: ffmpeg %global pkg_name %{name}%{?pkg_suffix} -Version: 5.1.3 +Version: 5.1.4 Release: 1%{?dist} Summary: A complete solution to record, convert and stream audio and video License: GPLv3+ @@ -132,6 +132,12 @@ Patch3: ffmpeg-allow-fdk-aac-free.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} @@ -148,6 +154,7 @@ BuildRequires: flite-devel >= 2.2 %endif BuildRequires: game-music-emu-devel BuildRequires: gcc +BuildRequires: git-core BuildRequires: gnupg2 BuildRequires: gsm-devel BuildRequires: ladspa-devel @@ -552,7 +559,7 @@ This subpackage contains the headers for FFmpeg libswscale. gpgv2 --quiet --keyring %{SOURCE3} %{SOURCE2} %{SOURCE0} %endif -%autosetup -a1 -p1 +%autosetup -a1 -S git_am install -m 0644 %{SOURCE20} enable_decoders install -m 0644 %{SOURCE21} enable_encoders # fix -O3 -g in host_cflags @@ -868,6 +875,11 @@ rm -rf %{buildroot}%{_datadir}/%{name}/examples %{_mandir}/man3/libswscale.3* %changelog +* Tue Nov 14 2023 Neal Gompa - 5.1.4-1 +- Update to 5.1.4 +- Add ffmpeg chromium support patch (#2240127) +- Use git to apply patches + * Tue Mar 28 2023 Yaakov Selkowitz - 5.1.3-1 - Update to 5.1.3 diff --git a/sources b/sources index 2665d3d..fb4b748 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (ffmpeg-free-5.1.3.tar.xz) = d240459763793474cc7dfcf1109c3045487a82bbcbbbdefdace51ff5e3008d7bf9c241857857d77609039b9e3d5f0631b227f1b4c62ad108e9a87687f94630e2 -SHA512 (ffmpeg-5.1.3.tar.xz.asc) = a7348205ef6648e5c73c32fbe99b8130256d1157d1a7c128701b240e4096ac16778cfcc74a922fe8147e0a137119b8a5fd60f006328454b712eefe154f546318 +SHA512 (ffmpeg-free-5.1.4.tar.xz) = 73365770b6049528d08fb199de30d61c31327f050d66d87876d26388cc85feaae5c2f1cad6b06f34c7fbb28a1dff0df55d15653f7f5e216e9662cfe902bd8d5a +SHA512 (ffmpeg-5.1.4.tar.xz.asc) = f161815d47c988f8b6281a95f22301d07a22ddc41a2a84bfc126b4d7de0e9175da499c2cc15b3bdaa415af0e8ed1d2b4d52096a81b4a3d804effb00ff9e8ec5b SHA512 (ffmpeg-dlopen-headers.tar.xz) = 97e6986fc2bb9dfa4516135a76b04d27ceb52ff96f0af21a6169919aeefefb4d2e2e24a771959689cdbec385f5d71614ba661223c67c0e94089a6dd823a30099 SHA512 (ffmpeg.keyring) = 9b36506835db36f776b7ddb53ad6fa9e915e6ca2f9c7cfebe8eb45513e1036a985283590a840ca313a111bf35dc3731f68885aaafb1fb7011ec433cc119e5165 From 184d42201ab0723e059bc573c4dc1c9b539f0276 Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Thu, 16 Nov 2023 18:16:22 +0300 Subject: [PATCH 3/3] Remove unnecessary files --- README.md | 28 ---------------------------- sources | 4 ---- 2 files changed, 32 deletions(-) delete mode 100644 README.md delete mode 100644 sources diff --git a/README.md b/README.md deleted file mode 100644 index 9b921a7..0000000 --- a/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# FFMPEG - -FFmpeg is a multimedia framework, able to decode, encode, transcode, mux, -demux, stream, filter and play pretty much anything that humans and machines -have created. It supports the most obscure ancient formats up to the cutting -edge. No matter if they were designed by some standards committee, the -community or a corporation. - -## Creating the 'free' tarball - -1. Update the `Version` in the spec file. -2. Set the `Release` to 0 in the spec file. -3. Set `pkg_suffix` to `%nil` -4. Do a full build locally: `fedpkg mockbuild --with full_build` -5. Run `./ffmpeg_update_free_sources.sh results_ffmpeg/5.0/0.fc35/build.log` - This will update the `ffmpeg_free_sources` file list. - Note that header files will need to be manually added - to the `ffmpeg_free_sources` file list. -6. Run `./ffmpeg_gen_free_tarball.sh` to create the tarball. -7. Set `pkg_suffix` to `-free` again -8. Set the `Release` to 1 in the spec file. -9. Do a scratch build. - -OR - -1. Edit `ffmpeg_free_sources` and add missing files -2. Run `./ffmpeg_gen_free_tarball.sh` to create the tarball. -3. Do a scratch build. diff --git a/sources b/sources deleted file mode 100644 index fb4b748..0000000 --- a/sources +++ /dev/null @@ -1,4 +0,0 @@ -SHA512 (ffmpeg-free-5.1.4.tar.xz) = 73365770b6049528d08fb199de30d61c31327f050d66d87876d26388cc85feaae5c2f1cad6b06f34c7fbb28a1dff0df55d15653f7f5e216e9662cfe902bd8d5a -SHA512 (ffmpeg-5.1.4.tar.xz.asc) = f161815d47c988f8b6281a95f22301d07a22ddc41a2a84bfc126b4d7de0e9175da499c2cc15b3bdaa415af0e8ed1d2b4d52096a81b4a3d804effb00ff9e8ec5b -SHA512 (ffmpeg-dlopen-headers.tar.xz) = 97e6986fc2bb9dfa4516135a76b04d27ceb52ff96f0af21a6169919aeefefb4d2e2e24a771959689cdbec385f5d71614ba661223c67c0e94089a6dd823a30099 -SHA512 (ffmpeg.keyring) = 9b36506835db36f776b7ddb53ad6fa9e915e6ca2f9c7cfebe8eb45513e1036a985283590a840ca313a111bf35dc3731f68885aaafb1fb7011ec433cc119e5165