diff options
Diffstat (limited to 'www/qt5-webengine/files/patch-ffmpeg8')
| -rw-r--r-- | www/qt5-webengine/files/patch-ffmpeg8 | 215 |
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; + |
