public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Than Ngo <than@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/chromium] epel9-next: Fix FTBFS with ffmpeg 7 in epel9-next
Date: Fri, 07 Aug 2026 16:59:11 GMT	[thread overview]
Message-ID: <178612195181.1.1350280477878271016.rpms-chromium-416bc13dfa1f@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/chromium
Branch : epel9-next
Commit : 416bc13dfa1f37e7c6dbfa05195ec1db2ca507af
Author : Than Ngo <than@redhat.com>
Date   : 2026-08-07T18:57:38+02:00
Stats  : +77/-174 in 5 file(s)
URL    : https://src.fedoraproject.org/rpms/chromium/c/416bc13dfa1f37e7c6dbfa05195ec1db2ca507af?branch=epel9-next

Log:
Fix FTBFS with ffmpeg 7 in epel9-next

---
diff --git a/chromium-138-el9-ffmpeg-deprecated-apis.patch b/chromium-138-el9-ffmpeg-deprecated-apis.patch
deleted file mode 100644
index dc230c0..0000000
--- a/chromium-138-el9-ffmpeg-deprecated-apis.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-https://chromium-review.googlesource.com/c/chromium/src/+/6506529
-
-Revert CL rolls ffmpeg as it breaks the build due to old ffmpeg version on EL9
-
-diff -up chromium-138.0.7204.49/media/ffmpeg/ffmpeg_common.cc.me chromium-138.0.7204.49/media/ffmpeg/ffmpeg_common.cc
---- chromium-138.0.7204.49/media/ffmpeg/ffmpeg_common.cc.me	2025-06-23 23:34:26.000000000 +0200
-+++ chromium-138.0.7204.49/media/ffmpeg/ffmpeg_common.cc	2025-06-25 15:13:17.958054182 +0200
-@@ -263,22 +263,22 @@ AVCodecID VideoCodecToCodecID(VideoCodec
- static VideoCodecProfile ProfileIDToVideoCodecProfile(int profile) {
-   // Clear out the CONSTRAINED & INTRA flags which are strict subsets of the
-   // corresponding profiles with which they're used.
--  profile &= ~AV_PROFILE_H264_CONSTRAINED;
--  profile &= ~AV_PROFILE_H264_INTRA;
-+  profile &= ~FF_PROFILE_H264_CONSTRAINED;
-+  profile &= ~FF_PROFILE_H264_INTRA;
-   switch (profile) {
--    case AV_PROFILE_H264_BASELINE:
-+    case FF_PROFILE_H264_BASELINE:
-       return H264PROFILE_BASELINE;
--    case AV_PROFILE_H264_MAIN:
-+    case FF_PROFILE_H264_MAIN:
-       return H264PROFILE_MAIN;
--    case AV_PROFILE_H264_EXTENDED:
-+    case FF_PROFILE_H264_EXTENDED:
-       return H264PROFILE_EXTENDED;
--    case AV_PROFILE_H264_HIGH:
-+    case FF_PROFILE_H264_HIGH:
-       return H264PROFILE_HIGH;
--    case AV_PROFILE_H264_HIGH_10:
-+    case FF_PROFILE_H264_HIGH_10:
-       return H264PROFILE_HIGH10PROFILE;
--    case AV_PROFILE_H264_HIGH_422:
-+    case FF_PROFILE_H264_HIGH_422:
-       return H264PROFILE_HIGH422PROFILE;
--    case AV_PROFILE_H264_HIGH_444_PREDICTIVE:
-+    case FF_PROFILE_H264_HIGH_444_PREDICTIVE:
-       return H264PROFILE_HIGH444PREDICTIVEPROFILE;
-     default:
-       DVLOG(1) << "Unknown profile id: " << profile;
-@@ -289,23 +289,23 @@ static VideoCodecProfile ProfileIDToVide
- static int VideoCodecProfileToProfileID(VideoCodecProfile profile) {
-   switch (profile) {
-     case H264PROFILE_BASELINE:
--      return AV_PROFILE_H264_BASELINE;
-+      return FF_PROFILE_H264_BASELINE;
-     case H264PROFILE_MAIN:
--      return AV_PROFILE_H264_MAIN;
-+      return FF_PROFILE_H264_MAIN;
-     case H264PROFILE_EXTENDED:
--      return AV_PROFILE_H264_EXTENDED;
-+      return FF_PROFILE_H264_EXTENDED;
-     case H264PROFILE_HIGH:
--      return AV_PROFILE_H264_HIGH;
-+      return FF_PROFILE_H264_HIGH;
-     case H264PROFILE_HIGH10PROFILE:
--      return AV_PROFILE_H264_HIGH_10;
-+      return FF_PROFILE_H264_HIGH_10;
-     case H264PROFILE_HIGH422PROFILE:
--      return AV_PROFILE_H264_HIGH_422;
-+      return FF_PROFILE_H264_HIGH_422;
-     case H264PROFILE_HIGH444PREDICTIVEPROFILE:
--      return AV_PROFILE_H264_HIGH_444_PREDICTIVE;
-+      return FF_PROFILE_H264_HIGH_444_PREDICTIVE;
-     default:
-       DVLOG(1) << "Unknown VideoCodecProfile: " << profile;
-   }
--  return AV_PROFILE_UNKNOWN;
-+  return FF_PROFILE_UNKNOWN;
- }
- 
- SampleFormat AVSampleFormatToSampleFormat(AVSampleFormat sample_format,
-@@ -441,7 +441,7 @@ bool AVCodecContextToAudioDecoderConfig(
-     // TODO(dalecurtis): Just use the profile from the codec context if ffmpeg
-     // ever starts supporting xHE-AAC.
-     // FFmpeg provides the (defined_profile - 1) for AVCodecContext::profile
--    if (codec_context->profile == AV_PROFILE_UNKNOWN ||
-+    if (codec_context->profile == FF_PROFILE_UNKNOWN ||
-         codec_context->profile == mp4::AAC::kXHeAAcType - 1) {
-       // Errors aren't fatal here, so just drop any MediaLog messages.
-       NullMediaLog media_log;
-@@ -659,16 +659,16 @@ bool AVStreamToVideoDecoderConfig(const
-       break;
-     case VideoCodec::kVP9:
-       switch (codec_context->profile) {
--        case AV_PROFILE_VP9_0:
-+        case FF_PROFILE_VP9_0:
-           profile = VP9PROFILE_PROFILE0;
-           break;
--        case AV_PROFILE_VP9_1:
-+        case FF_PROFILE_VP9_1:
-           profile = VP9PROFILE_PROFILE1;
-           break;
--        case AV_PROFILE_VP9_2:
-+        case FF_PROFILE_VP9_2:
-           profile = VP9PROFILE_PROFILE2;
-           break;
--        case AV_PROFILE_VP9_3:
-+        case FF_PROFILE_VP9_3:
-           profile = VP9PROFILE_PROFILE3;
-           break;
-         default:
-diff -up chromium-148.0.7778.96/media/filters/ffmpeg_aac_bitstream_converter.cc.me chromium-148.0.7778.96/media/filters/ffmpeg_aac_bitstream_converter.cc
---- chromium-148.0.7778.96/media/filters/ffmpeg_aac_bitstream_converter.cc.me	2026-05-05 15:25:38.693195463 +0200
-+++ chromium-148.0.7778.96/media/filters/ffmpeg_aac_bitstream_converter.cc	2026-05-05 15:26:52.282371003 +0200
-@@ -64,17 +64,17 @@ bool GenerateAdtsHeader(int codec,
-   UNSAFE_TODO(hdr[1]) |= 1;
- 
-   switch (audio_profile) {
--    case AV_PROFILE_AAC_MAIN:
-+    case FF_PROFILE_AAC_MAIN:
-       break;
--    case AV_PROFILE_AAC_HE:
--    case AV_PROFILE_AAC_HE_V2:
--    case AV_PROFILE_AAC_LOW:
-+    case FF_PROFILE_AAC_HE:
-+    case FF_PROFILE_AAC_HE_V2:
-+    case FF_PROFILE_AAC_LOW:
-       UNSAFE_TODO(hdr[2]) |= (1 << 6);
-       break;
--    case AV_PROFILE_AAC_SSR:
-+    case FF_PROFILE_AAC_SSR:
-       UNSAFE_TODO(hdr[2]) |= (2 << 6);
-       break;
--    case AV_PROFILE_AAC_LTP:
-+    case FF_PROFILE_AAC_LTP:
-       UNSAFE_TODO(hdr[2]) |= (3 << 6);
-       break;
-     default:
-diff -up chromium-148.0.7778.96/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc.me chromium-148.0.7778.96/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
---- chromium-148.0.7778.96/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc.me	2026-05-05 15:27:26.490652155 +0200
-+++ chromium-148.0.7778.96/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc	2026-05-05 15:27:34.149195358 +0200
-@@ -40,7 +40,7 @@ class FFmpegAACBitstreamConverterTest :
-         base::byte_span_from_ref(base::allow_nonunique_obj, test_parameters_),
-         0);
-     test_parameters_.codec_id = AV_CODEC_ID_AAC;
--    test_parameters_.profile = AV_PROFILE_AAC_MAIN;
-+    test_parameters_.profile = FF_PROFILE_AAC_MAIN;
-     test_parameters_.ch_layout.nb_channels = 2;
-     test_parameters_.extradata = extradata_header_;
-     test_parameters_.extradata_size = sizeof(extradata_header_);
-@@ -126,7 +126,7 @@ TEST_F(FFmpegAACBitstreamConverterTest,
- 
-   EXPECT_EQ(profile, kAacMainProfile);
- 
--  test_parameters_.profile = AV_PROFILE_AAC_HE;
-+  test_parameters_.profile = FF_PROFILE_AAC_HE;
-   FFmpegAACBitstreamConverter converter_he(&test_parameters_);
- 
-   test_packet = ScopedAVPacket::Allocate();
-@@ -139,7 +139,7 @@ TEST_F(FFmpegAACBitstreamConverterTest,
- 
-   EXPECT_EQ(profile, kAacLowComplexityProfile);
- 
--  test_parameters_.profile = AV_PROFILE_AAC_ELD;
-+  test_parameters_.profile = FF_PROFILE_AAC_ELD;
-   FFmpegAACBitstreamConverter converter_eld(&test_parameters_);
- 
-   test_packet = ScopedAVPacket::Allocate();

diff --git a/chromium-151-el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE.patch b/chromium-151-el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE.patch
new file mode 100644
index 0000000..c974e1c
--- /dev/null
+++ b/chromium-151-el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE.patch
@@ -0,0 +1,13 @@
+diff -up chromium-151.0.7922.108/media/filters/ffmpeg_video_decoder.cc.me chromium-151.0.7922.108/media/filters/ffmpeg_video_decoder.cc
+--- chromium-151.0.7922.108/media/filters/ffmpeg_video_decoder.cc.me	2026-08-07 18:14:26.384429803 +0200
++++ chromium-151.0.7922.108/media/filters/ffmpeg_video_decoder.cc	2026-08-07 18:16:38.952427731 +0200
+@@ -507,7 +507,9 @@ bool FFmpegVideoDecoder::ConfigureDecode
+ 
+   codec_context_->opaque = this;
+   codec_context_->get_buffer2 = GetVideoBufferImpl;
++#ifdef AV_CODEC_FLAG_COPY_OPAQUE
+   codec_context_->flags |= AV_CODEC_FLAG_COPY_OPAQUE;
++#endif
+ 
+   // Timebase must be at most 1us because of web-facing APIs with
+   // microsecond-level precision such as VideoFrame.timestamp.

diff --git a/chromium-151-el9-ffmpeg-deprecated-apis.patch b/chromium-151-el9-ffmpeg-deprecated-apis.patch
new file mode 100644
index 0000000..01fdd28
--- /dev/null
+++ b/chromium-151-el9-ffmpeg-deprecated-apis.patch
@@ -0,0 +1,62 @@
+diff -up chromium-151.0.7922.108/media/ffmpeg/ffmpeg_common.cc.me chromium-151.0.7922.108/media/ffmpeg/ffmpeg_common.cc
+--- chromium-151.0.7922.108/media/ffmpeg/ffmpeg_common.cc.me	2026-08-07 18:23:24.072630765 +0200
++++ chromium-151.0.7922.108/media/ffmpeg/ffmpeg_common.cc	2026-08-07 18:36:06.609584648 +0200
+@@ -40,6 +40,23 @@
+ #endif  // BUILDFLAG(ENABLE_PLATFORM_DOLBY_VISION)
+ #endif
+ 
++#if LIBAVCODEC_VERSION_MAJOR < 59
++#define AV_PROFILE_H264_CONSTRAINED FF_PROFILE_H264_CONSTRAINED
++#define AV_PROFILE_H264_INTRA FF_PROFILE_H264_INTRA
++#define AV_PROFILE_H264_BASELINE FF_PROFILE_H264_BASELINE
++#define AV_PROFILE_H264_MAIN FF_PROFILE_H264_MAIN
++#define AV_PROFILE_H264_EXTENDED FF_PROFILE_H264_EXTENDED
++#define AV_PROFILE_H264_HIGH FF_PROFILE_H264_HIGH
++#define AV_PROFILE_H264_HIGH_10 FF_PROFILE_H264_HIGH_10
++#define AV_PROFILE_H264_HIGH_422 FF_PROFILE_H264_HIGH_422
++#define AV_PROFILE_H264_HIGH_444_PREDICTIVE FF_PROFILE_H264_HIGH_444_PREDICTIVE
++#define AV_PROFILE_UNKNOWN FF_PROFILE_UNKNOWN
++#define AV_PROFILE_VP9_0 FF_PROFILE_VP9_0
++#define AV_PROFILE_VP9_1 FF_PROFILE_VP9_1
++#define AV_PROFILE_VP9_2 FF_PROFILE_VP9_2
++#define AV_PROFILE_VP9_3 FF_PROFILE_VP9_3
++#endif
++
+ namespace media {
+ 
+ namespace {
+diff -up chromium-151.0.7922.108/media/filters/ffmpeg_aac_bitstream_converter.cc.me chromium-151.0.7922.108/media/filters/ffmpeg_aac_bitstream_converter.cc
+--- chromium-151.0.7922.108/media/filters/ffmpeg_aac_bitstream_converter.cc.me	2026-08-07 18:30:06.414701017 +0200
++++ chromium-151.0.7922.108/media/filters/ffmpeg_aac_bitstream_converter.cc	2026-08-07 18:35:46.601409478 +0200
+@@ -8,6 +8,15 @@
+ #include "base/logging.h"
+ #include "media/ffmpeg/ffmpeg_common.h"
+ 
++#if LIBAVCODEC_VERSION_MAJOR < 59
++#define AV_PROFILE_AAC_MAIN FF_PROFILE_AAC_MAIN
++#define AV_PROFILE_AAC_HE FF_PROFILE_AAC_HE
++#define AV_PROFILE_AAC_HE_V2 FF_PROFILE_AAC_HE_V2
++#define AV_PROFILE_AAC_LOW FF_PROFILE_AAC_LOW
++#define AV_PROFILE_AAC_SSR FF_PROFILE_AAC_SSR
++#define AV_PROFILE_AAC_LTP FF_PROFILE_AAC_LTP
++#endif
++
+ namespace media {
+ 
+ namespace {
+diff -up chromium-151.0.7922.108/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc.me chromium-151.0.7922.108/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
+--- chromium-151.0.7922.108/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc.me	2026-08-07 18:33:07.673416313 +0200
++++ chromium-151.0.7922.108/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc	2026-08-07 18:35:29.985376498 +0200
+@@ -15,6 +15,12 @@
+ #include "media/ffmpeg/scoped_av_packet.h"
+ #include "testing/gtest/include/gtest/gtest.h"
+ 
++#if LIBAVCODEC_VERSION_MAJOR < 59
++#define AV_PROFILE_AAC_MAIN FF_PROFILE_AAC_MAIN
++#define AV_PROFILE_AAC_HE FF_PROFILE_AAC_HE
++#define AV_PROFILE_AAC_ELD FF_PROFILE_AAC_ELD
++#endif
++
+ namespace media {
+ 
+ namespace {

diff --git a/chromium-el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE.patch b/chromium-el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE.patch
deleted file mode 100644
index 95b51c3..0000000
--- a/chromium-el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-140.0.7339.80/media/filters/ffmpeg_video_decoder.cc.me chromium-140.0.7339.80/media/filters/ffmpeg_video_decoder.cc
---- chromium-140.0.7339.80/media/filters/ffmpeg_video_decoder.cc.me	2025-09-05 02:43:56.666833745 +0200
-+++ chromium-140.0.7339.80/media/filters/ffmpeg_video_decoder.cc	2025-09-05 03:09:01.121397898 +0200
-@@ -486,7 +486,7 @@ bool FFmpegVideoDecoder::ConfigureDecode
- 
-   codec_context_->opaque = this;
-   codec_context_->get_buffer2 = GetVideoBufferImpl;
--  codec_context_->flags |= AV_CODEC_FLAG_COPY_OPAQUE;
-+  //codec_context_->flags |= AV_CODEC_FLAG_COPY_OPAQUE;
- 
-   if (decode_nalus_) {
-     codec_context_->flags2 |= AV_CODEC_FLAG2_CHUNKS;

diff --git a/chromium.spec b/chromium.spec
index 8074cc3..e7056e9 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -329,8 +329,8 @@ Patch96: chromium-142-crabbyavif-ftbfs-old-rust.patch
 
 # system ffmpeg
 # need for old ffmpeg 5.x on epel9
-Patch128: chromium-138-el9-ffmpeg-deprecated-apis.patch
-Patch129: chromium-el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE.patch
+Patch128: chromium-151-el9-ffmpeg-deprecated-apis.patch
+Patch129: chromium-151-el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE.patch
 Patch130: chromium-148-el9-ffmpeg-build-error.patch
 # disable the check
 Patch131: chromium-107-proprietary-codecs.patch
@@ -1103,12 +1103,10 @@ Qt6 UI for chromium.
 %patch -P96 -p1 -b .crabbyavif-ftbfs-old-rust
 
 %if ! %{bundleffmpegfree}
-%if 0%{?rhel} == 9
 %patch -P128 -p1 -b .el9-ffmpeg-deprecated-apis
 %patch -P129 -p1 -b .el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE
 %patch -P130 -p1 -b .el9-ffmpeg-build-error
 %patch -P133 -p1 -b .el9-ffmpeg-5.1.x
-%endif
 %patch -P134 -p1 -b .el9-ffmpeg-5.1.x
 %patch -P131 -p1 -b .prop-codecs
 %patch -P132 -p1 -b .sigtrap_system_ffmpeg

                 reply	other threads:[~2026-08-07 16:59 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178612195181.1.1350280477878271016.rpms-chromium-416bc13dfa1f@fedoraproject.org \
    --to=than@redhat.com \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox