From 129f48501a7c3fa4236234f2fa0aee490a845b59 Mon Sep 17 00:00:00 2001 From: Thomas Guilbert 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 Commit-Queue: Dale Curtis Auto-Submit: Thomas Guilbert Cr-Commit-Position: refs/heads/main@{#1455010} --- DEPS | 2 +- media/ffmpeg/ffmpeg_common.cc | 44 +++++++++---------- .../filters/ffmpeg_aac_bitstream_converter.cc | 12 ++--- ...ffmpeg_aac_bitstream_converter_unittest.cc | 6 +-- third_party/ffmpeg | 2 +- 5 files changed, 33 insertions(+), 33 deletions(-) diff --git a/DEPS b/DEPS index b80ab0a6d81811..9b247c02d2a202 100644 --- a/DEPS +++ b/DEPS @@ -515,7 +515,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ffmpeg # and whatever else without interference from each other. - 'ffmpeg_revision': '01f23648c6b84de6c0f717fa4e1816f53b9ee72e', + 'ffmpeg_revision': 'dcdd0fa51b65a0b1688ff6b8f0cc81908f09ded2', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling webpagereplay # and whatever else without interference from each other. diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc index cfd0552ee31088..610be2d37b351f 100644 --- a/media/ffmpeg/ffmpeg_common.cc +++ b/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. // FFmpeg provides the (defined_profile - 1) for AVCodecContext::profile - if (codec_context->profile == FF_PROFILE_UNKNOWN || + if (codec_context->profile == AV_PROFILE_UNKNOWN || codec_context->profile == mp4::AAC::kXHeAAcType - 1) { // 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 --- a/media/filters/ffmpeg_aac_bitstream_converter.cc +++ b/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 --- a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc +++ b/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();