[packages/qt5-qtwebengine] - rel 3, build fixes for ffmpeg 8+

baggins baggins at pld-linux.org
Fri Oct 23 10:31:36 CEST 2026


commit 24349813dd938889d25964ff4e3058f60308f141
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Fri Oct 23 10:31:09 2026 +0200

    - rel 3, build fixes for ffmpeg 8+

 ffmpeg8.patch        | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++
 qt5-qtwebengine.spec |   4 +-
 2 files changed, 116 insertions(+), 1 deletion(-)
---
diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec
index f27f472..e82536b 100644
--- a/qt5-qtwebengine.spec
+++ b/qt5-qtwebengine.spec
@@ -18,7 +18,7 @@ Summary:	The Qt5 WebEngine library
 Summary(pl.UTF-8):	Biblioteka Qt5 WebEngine
 Name:		qt5-%{orgname}
 Version:	%{base_version}.19
-Release:	2
+Release:	3
 License:	LGPL v3 or GPL v2 or GPL v3 or commercial
 Group:		X11/Libraries
 Source0:	https://download.qt.io/archive/qt/5.15/%{version}/submodules/%{orgname}-everywhere-opensource-src-%{version}.tar.xz
@@ -35,6 +35,7 @@ Patch9:		icu75.patch
 Patch10:	includes.patch
 Patch11:	glibc2.43.patch
 Patch12:	ffmpeg7.patch
+Patch13:	ffmpeg8.patch
 URL:		https://www.qt.io/
 BuildRequires:	Qt5Core-devel >= %{qtbase_ver}
 BuildRequires:	Qt5Designer-devel >= %{qttools_ver}
@@ -308,6 +309,7 @@ Przykłady do biblioteki Qt5 WebEngine.
 %patch -P10 -p1 -d src/3rdparty
 %patch -P11 -p2
 %patch -P12 -p1
+%patch -P13 -p1
 
 %if %{without system_re2}
 # avoid finding system re2
diff --git a/ffmpeg8.patch b/ffmpeg8.patch
new file mode 100644
index 0000000..5b7073f
--- /dev/null
+++ b/ffmpeg8.patch
@@ -0,0 +1,113 @@
+diff -up qtwebengine-everywhere-src-5.15.18/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc.ffmpeg8 qtwebengine-everywhere-src-5.15.18/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc
+--- qtwebengine-everywhere-src-5.15.18/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc.ffmpeg8	2025-11-02 21:41:06.931797956 +0000
++++ qtwebengine-everywhere-src-5.15.18/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc	2025-11-02 23:06:28.874349338 +0000
+@@ -237,22 +237,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 &= ~FF_PROFILE_H264_CONSTRAINED;
+-  profile &= ~FF_PROFILE_H264_INTRA;
++  profile &= ~AV_PROFILE_H264_CONSTRAINED;
++  profile &= ~AV_PROFILE_H264_INTRA;
+   switch (profile) {
+-    case FF_PROFILE_H264_BASELINE:
++    case AV_PROFILE_H264_BASELINE:
+       return H264PROFILE_BASELINE;
+-    case FF_PROFILE_H264_MAIN:
++    case AV_PROFILE_H264_MAIN:
+       return H264PROFILE_MAIN;
+-    case FF_PROFILE_H264_EXTENDED:
++    case AV_PROFILE_H264_EXTENDED:
+       return H264PROFILE_EXTENDED;
+-    case FF_PROFILE_H264_HIGH:
++    case AV_PROFILE_H264_HIGH:
+       return H264PROFILE_HIGH;
+-    case FF_PROFILE_H264_HIGH_10:
++    case AV_PROFILE_H264_HIGH_10:
+       return H264PROFILE_HIGH10PROFILE;
+-    case FF_PROFILE_H264_HIGH_422:
++    case AV_PROFILE_H264_HIGH_422:
+       return H264PROFILE_HIGH422PROFILE;
+-    case FF_PROFILE_H264_HIGH_444_PREDICTIVE:
++    case AV_PROFILE_H264_HIGH_444_PREDICTIVE:
+       return H264PROFILE_HIGH444PREDICTIVEPROFILE;
+     default:
+       DVLOG(1) << "Unknown profile id: " << profile;
+@@ -263,23 +263,23 @@ static VideoCodecProfile ProfileIDToVide
+ static int VideoCodecProfileToProfileID(VideoCodecProfile profile) {
+   switch (profile) {
+     case H264PROFILE_BASELINE:
+-      return FF_PROFILE_H264_BASELINE;
++      return AV_PROFILE_H264_BASELINE;
+     case H264PROFILE_MAIN:
+-      return FF_PROFILE_H264_MAIN;
++      return AV_PROFILE_H264_MAIN;
+     case H264PROFILE_EXTENDED:
+-      return FF_PROFILE_H264_EXTENDED;
++      return AV_PROFILE_H264_EXTENDED;
+     case H264PROFILE_HIGH:
+-      return FF_PROFILE_H264_HIGH;
++      return AV_PROFILE_H264_HIGH;
+     case H264PROFILE_HIGH10PROFILE:
+-      return FF_PROFILE_H264_HIGH_10;
++      return AV_PROFILE_H264_HIGH_10;
+     case H264PROFILE_HIGH422PROFILE:
+-      return FF_PROFILE_H264_HIGH_422;
++      return AV_PROFILE_H264_HIGH_422;
+     case H264PROFILE_HIGH444PREDICTIVEPROFILE:
+-      return FF_PROFILE_H264_HIGH_444_PREDICTIVE;
++      return AV_PROFILE_H264_HIGH_444_PREDICTIVE;
+     default:
+       DVLOG(1) << "Unknown VideoCodecProfile: " << profile;
+   }
+-  return FF_PROFILE_UNKNOWN;
++  return AV_PROFILE_UNKNOWN;
+ }
+ 
+ SampleFormat AVSampleFormatToSampleFormat(AVSampleFormat sample_format,
+@@ -415,7 +415,7 @@ bool AVCodecContextToAudioDecoderConfig(
+   // TODO(dalecurtis): Just use the profile from the codec context if ffmpeg
+   // ever starts supporting xHE-AAC.
+   constexpr uint8_t kXHEAAc = 41;
+-  if (codec == kCodecAAC && codec_context->profile == FF_PROFILE_UNKNOWN ||
++  if (codec == kCodecAAC && codec_context->profile == AV_PROFILE_UNKNOWN ||
+       codec_context->profile == kXHEAAc) {
+     // Errors aren't fatal here, so just drop any MediaLog messages.
+     NullMediaLog media_log;
+@@ -537,16 +537,16 @@ bool AVStreamToVideoDecoderConfig(const
+       break;
+     case kCodecVP9:
+       switch (codec_context->profile) {
+-        case FF_PROFILE_VP9_0:
++        case AV_PROFILE_VP9_0:
+           profile = VP9PROFILE_PROFILE0;
+           break;
+-        case FF_PROFILE_VP9_1:
++        case AV_PROFILE_VP9_1:
+           profile = VP9PROFILE_PROFILE1;
+           break;
+-        case FF_PROFILE_VP9_2:
++        case AV_PROFILE_VP9_2:
+           profile = VP9PROFILE_PROFILE2;
+           break;
+-        case FF_PROFILE_VP9_3:
++        case AV_PROFILE_VP9_3:
+           profile = VP9PROFILE_PROFILE3;
+           break;
+         default:
+@@ -645,9 +645,15 @@ bool AVStreamToVideoDecoderConfig(const
+                      coded_size, visible_rect, natural_size, extra_data,
+                      GetEncryptionScheme(stream));
+ 
++#if (LIBAVFORMAT_VERSION_MAJOR < 62)
+   if (stream->nb_side_data) {
+     for (int i = 0; i < stream->nb_side_data; ++i) {
+       AVPacketSideData side_data = stream->side_data[i];
++#else
++  if (stream->codecpar->nb_coded_side_data) {
++    for (int i = 0; i < stream->codecpar->nb_coded_side_data; ++i) {
++      const auto& side_data = stream->codecpar->coded_side_data[i];
++#endif
+       if (side_data.type != AV_PKT_DATA_MASTERING_DISPLAY_METADATA)
+         continue;
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/qt5-qtwebengine.git/commitdiff/24349813dd938889d25964ff4e3058f60308f141



More information about the pld-cvs-commit mailing list