From c57568677a6e9bf6524360d978a13e08d02d5940 Mon Sep 17 00:00:00 2001 From: Than Ngo Date: Thu, 2 Nov 2023 08:43:26 +0100 Subject: [PATCH] - fix build error on epel9 anf fedora 37 with old ffmpeg 5.x - add workaround for broken gn on epel 8/9 --- chromium-107-ffmpeg-5.x-duration.patch | 16 ++++++++++++++++ chromium.spec | 10 ++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 chromium-107-ffmpeg-5.x-duration.patch diff --git a/chromium-107-ffmpeg-5.x-duration.patch b/chromium-107-ffmpeg-5.x-duration.patch new file mode 100644 index 00000000..ee01cd9e --- /dev/null +++ b/chromium-107-ffmpeg-5.x-duration.patch @@ -0,0 +1,16 @@ +diff -up chromium-107.0.5304.121/media/filters/audio_file_reader.cc.me chromium-107.0.5304.121/media/filters/audio_file_reader.cc +--- chromium-107.0.5304.121/media/filters/audio_file_reader.cc.me 2022-12-17 08:27:12.204753071 +0100 ++++ chromium-107.0.5304.121/media/filters/audio_file_reader.cc 2022-12-17 08:28:40.908211808 +0100 +@@ -243,10 +243,10 @@ bool AudioFileReader::OnNewFrame( + // silence from being output. In the case where we are also discarding some + // portion of the packet (as indicated by a negative pts), we further want to + // adjust the duration downward by however much exists before zero. +- if (audio_codec_ == AudioCodec::kAAC && frame->duration) { ++ if (audio_codec_ == AudioCodec::kAAC && frame->pkt_duration) { + const base::TimeDelta pkt_duration = ConvertFromTimeBase( + glue_->format_context()->streams[stream_index_]->time_base, +- frame->duration + std::min(static_cast(0), frame->pts)); ++ frame->pkt_duration + std::min(static_cast(0), frame->pts)); + const base::TimeDelta frame_duration = + base::Seconds(frames_read / static_cast(sample_rate_)); + diff --git a/chromium.spec b/chromium.spec index 980fd234..2bc88163 100644 --- a/chromium.spec +++ b/chromium.spec @@ -26,8 +26,8 @@ # enable|disble bootstrap %global bootstrap 0 -# workaround for broken gn on epel9 -%if 0%{?rhel} == 9 +# workaround for broken gn on epel 8/9 +%if 0%{?rhel} == 8 || 0%{?rhel} == 9 %global bootstrap 1 %endif @@ -353,6 +353,9 @@ Patch111: chromium-116-constexpr.patch Patch112: chromium-117-el7-default_constructor.patch # system ffmpeg +# need for old ffmpeg 5.x on epel9 and fedora 37 +Patch114: chromium-107-ffmpeg-5.x-duration.patch +# disable the check Patch115: chromium-107-proprietary-codecs.patch # drop av_stream_get_first_dts from internal ffmpeg Patch116: chromium-112-ffmpeg-first_dts.patch @@ -946,6 +949,9 @@ udev. %endif %if ! %{bundleffmpegfree} +%if 0%{?rhel} == 9 || 0%{?fedora} == 37 +%patch -P114 -p1 -b .ffmpeg-5.x-duration +%endif %patch -P115 -p1 -b .prop-codecs %patch -P116 -p1 -b .first_dts %patch -P117 -p1 -b .sigtrap_system_ffmpeg