aboutsummaryrefslogtreecommitdiff
path: root/www/qt5-webengine/files/patch-ffmpeg8
diff options
context:
space:
mode:
Diffstat (limited to 'www/qt5-webengine/files/patch-ffmpeg8')
-rw-r--r--www/qt5-webengine/files/patch-ffmpeg8215
1 files changed, 215 insertions, 0 deletions
diff --git a/www/qt5-webengine/files/patch-ffmpeg8 b/www/qt5-webengine/files/patch-ffmpeg8
new file mode 100644
index 000000000000..5e3c624b7f17
--- /dev/null
+++ b/www/qt5-webengine/files/patch-ffmpeg8
@@ -0,0 +1,215 @@
+From 129f48501a7c3fa4236234f2fa0aee490a845b59 Mon Sep 17 00:00:00 2001
+From: Thomas Guilbert <tguilbert@chromium.org>
+Date: Fri, 2 May 2025 08:58:47 -0700
+Subject: [PATCH] Roll src/third_party/ffmpeg/ 01f23648c..dcdd0fa51 (552
+ commits)
+
+This CL rolls ffmpeg for M138.
+
+This roll includes the removal of many deprecated APIs: some FF_*
+macros were consolidated as equivalent AV_* macros under
+libavcodec/def.h
+
+https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/01f23648c6b8..dcdd0fa51b65
+
+$ git log 01f23648c..dcdd0fa51 --date=short --no-merges --format='%ad %ae %s'
+2025-05-01 tguilbert Remove deprecated av_stream_get_side_data()
+2025-05-01 tguilbert README.chromium file
+2025-05-01 tguilbert GN Configuration
+2025-04-29 jamrial avcodec/cbs_apv: don't return an error when reading empty buffers
+2025-04-27 sw fate: Add test for APV 422-10 profile
+(...)
+2025-03-18 andreas.rheinhardt avcodec/Makefile: Only compile executor when VVC decoder is enabled
+2025-03-18 andreas.rheinhardt avcodec/vvc/Makefile: Move VVC decoder->h2645data dep to lavc/Makefile
+2025-03-17 ffmpeg ffbuild: use response files only if ar accepts them
+2025-03-18 timo avcodec/tableprint_vlc: fix build with --enable-hardcoded-tables
+2025-03-18 timo avcodec/Makefile: fix build of exr decoder in odd configs
+
+Created with:
+ roll-dep src/third_party/ffmpeg
+
+Bug: 415118707
+Change-Id: Iae943ce996031d5a6f7dbbd2915ad9cfabadf4d6
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6506529
+Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
+Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
+Auto-Submit: Thomas Guilbert <tguilbert@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1455010}
+---
+ media/ffmpeg/ffmpeg_common.cc | 44 +++++++++----------
+ .../filters/ffmpeg_aac_bitstream_converter.cc | 12 ++---
+ ...ffmpeg_aac_bitstream_converter_unittest.cc | 6 +--
+ 5 files changed, 33 insertions(+), 33 deletions(-)
+
+diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
+index cfd0552ee31088..610be2d37b351f 100644
+--- src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc
++++ src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc
+@@ -263,22 +263,22 @@ AVCodecID VideoCodecToCodecID(VideoCodec video_codec) {
+ 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;
+@@ -289,23 +289,23 @@ static VideoCodecProfile ProfileIDToVideoCodecProfile(int profile) {
+ 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,
+@@ -443,7 +443,7 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context,
+ // 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;
+@@ -661,16 +661,16 @@ bool AVStreamToVideoDecoderConfig(const AVStream* stream,
+ break;
+ case VideoCodec::kVP9:
+ 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:
+diff --git a/media/filters/ffmpeg_aac_bitstream_converter.cc b/media/filters/ffmpeg_aac_bitstream_converter.cc
+index 7fd37e90b7e475..c00ac262dabb19 100644
+--- src/3rdparty/chromium/media/filters/ffmpeg_aac_bitstream_converter.cc
++++ src/3rdparty/chromium/media/filters/ffmpeg_aac_bitstream_converter.cc
+@@ -68,17 +68,17 @@ bool GenerateAdtsHeader(int codec,
+ hdr[1] |= 1;
+
+ switch (audio_profile) {
+- case FF_PROFILE_AAC_MAIN:
++ case AV_PROFILE_AAC_MAIN:
+ break;
+- case FF_PROFILE_AAC_HE:
+- case FF_PROFILE_AAC_HE_V2:
+- case FF_PROFILE_AAC_LOW:
++ case AV_PROFILE_AAC_HE:
++ case AV_PROFILE_AAC_HE_V2:
++ case AV_PROFILE_AAC_LOW:
+ hdr[2] |= (1 << 6);
+ break;
+- case FF_PROFILE_AAC_SSR:
++ case AV_PROFILE_AAC_SSR:
+ hdr[2] |= (2 << 6);
+ break;
+- case FF_PROFILE_AAC_LTP:
++ case AV_PROFILE_AAC_LTP:
+ hdr[2] |= (3 << 6);
+ break;
+ default:
+diff --git a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
+index 0e56a6ea5b5cb4..2a6ccb8c910f6c 100644
+--- src/3rdparty/chromium/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
++++ src/3rdparty/chromium/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
+@@ -41,7 +41,7 @@ class FFmpegAACBitstreamConverterTest : public testing::Test {
+ // Set up reasonable aac parameters
+ memset(&test_parameters_, 0, sizeof(AVCodecParameters));
+ test_parameters_.codec_id = AV_CODEC_ID_AAC;
+- test_parameters_.profile = FF_PROFILE_AAC_MAIN;
++ test_parameters_.profile = AV_PROFILE_AAC_MAIN;
+ test_parameters_.ch_layout.nb_channels = 2;
+ test_parameters_.extradata = extradata_header_;
+ test_parameters_.extradata_size = sizeof(extradata_header_);
+@@ -131,7 +131,7 @@ TEST_F(FFmpegAACBitstreamConverterTest, Conversion_AudioProfileType) {
+
+ EXPECT_EQ(profile, kAacMainProfile);
+
+- test_parameters_.profile = FF_PROFILE_AAC_HE;
++ test_parameters_.profile = AV_PROFILE_AAC_HE;
+ FFmpegAACBitstreamConverter converter_he(&test_parameters_);
+
+ test_packet = ScopedAVPacket::Allocate();
+@@ -143,7 +143,7 @@ TEST_F(FFmpegAACBitstreamConverterTest, Conversion_AudioProfileType) {
+
+ EXPECT_EQ(profile, kAacLowComplexityProfile);
+
+- test_parameters_.profile = FF_PROFILE_AAC_ELD;
++ test_parameters_.profile = AV_PROFILE_AAC_ELD;
+ FFmpegAACBitstreamConverter converter_eld(&test_parameters_);
+
+ test_packet = ScopedAVPacket::Allocate();
+--- src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc.orig 2025-12-28 00:42:25.941089000 -0500
++++ src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc 2025-12-28 01:30:45.155201000 -0500
+@@ -645,9 +645,9 @@
+ coded_size, visible_rect, natural_size, extra_data,
+ GetEncryptionScheme(stream));
+
+- if (stream->nb_side_data) {
+- for (int i = 0; i < stream->nb_side_data; ++i) {
+- AVPacketSideData side_data = stream->side_data[i];
++ 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];
+ if (side_data.type != AV_PKT_DATA_MASTERING_DISPLAY_METADATA)
+ continue;
+