PR #21158 opened by James Almer (jamrial) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21158 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21158.patch
Backport from master branch. Fixes issue #21152. >From 047538e7e00c8f01b9ec703efb970c7cef3e7969 Mon Sep 17 00:00:00 2001 From: Nicolas Gaullier <[email protected]> Date: Tue, 12 Aug 2025 12:35:16 +0200 Subject: [PATCH 1/3] avcodec/aac_ac3_parser: remove unused USAC/ADTS code ff_adts_header_parse() parse the object_type from a 2 bits field. See also 696ea1c2236842572df88d573e24a39be3f19c98. Partially reverts 64bb91fd3b5a00a8849531c7e8dd207f2a626096. Signed-off-by: Nicolas Gaullier <[email protected]> Signed-off-by: Michael Niedermayer <[email protected]> (cherry picked from commit 9bd10fa32cce741fd0dd900ab9db28cc00e3c9b7) --- libavcodec/aac_ac3_parser.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/aac_ac3_parser.c b/libavcodec/aac_ac3_parser.c index e10ce13a3b..ced640dd28 100644 --- a/libavcodec/aac_ac3_parser.c +++ b/libavcodec/aac_ac3_parser.c @@ -155,7 +155,8 @@ get_next: return i; avctx->profile = hdr.object_type - 1; - s1->key_frame = (avctx->profile == AV_PROFILE_AAC_USAC) ? get_bits1(&gb) : 1; + /* ADTS does not support USAC */ + s1->key_frame = 1; bit_rate = hdr.bit_rate; #endif } -- 2.49.1 >From 571be3dc1603a1b6af63a5201b7ec9bf40b44b87 Mon Sep 17 00:00:00 2001 From: Nicolas Gaullier <[email protected]> Date: Tue, 12 Aug 2025 12:35:17 +0200 Subject: [PATCH 2/3] avcodec/aac_ac3_parser: simplify Use ff_adts_header_parse_buf() wrapper to simplify as GetBitContext is no longer needed (it was introduced for USAC). Partially reverts 64bb91fd3b5a00a8849531c7e8dd207f2a626096. Signed-off-by: Nicolas Gaullier <[email protected]> Signed-off-by: Michael Niedermayer <[email protected]> (cherry picked from commit 593b4269027ea6d514b8505d317f6f131693c84e) --- libavcodec/aac_ac3_parser.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libavcodec/aac_ac3_parser.c b/libavcodec/aac_ac3_parser.c index ced640dd28..b49ce0277c 100644 --- a/libavcodec/aac_ac3_parser.c +++ b/libavcodec/aac_ac3_parser.c @@ -147,11 +147,9 @@ get_next: } else { #if CONFIG_AAC_PARSER AACADTSHeaderInfo hdr; - GetBitContext gb; - init_get_bits8(&gb, buf, buf_size); if (buf_size < AV_AAC_ADTS_HEADER_SIZE || - ff_adts_header_parse(&gb, &hdr) < 0) + ff_adts_header_parse_buf(buf, &hdr) < 0) return i; avctx->profile = hdr.object_type - 1; -- 2.49.1 >From 485b823b8484a920ce2e9542e07e6c7e43fd80d6 Mon Sep 17 00:00:00 2001 From: Nicolas Gaullier <[email protected]> Date: Tue, 12 Aug 2025 12:35:18 +0200 Subject: [PATCH 3/3] avcodec/aac_ac3_parser: do not override the profile set by the decoder Parsing the ADTS header is not enough to detect HE-AAC v1/v2. Regression since 64bb91fd3b5a00a8849531c7e8dd207f2a626096. Fixes #11600 Signed-off-by: Nicolas Gaullier <[email protected]> Signed-off-by: Michael Niedermayer <[email protected]> (cherry picked from commit f24474dcfc719e29dc87e6483d6187ea233f4e0f) --- libavcodec/aac_ac3_parser.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/aac_ac3_parser.c b/libavcodec/aac_ac3_parser.c index b49ce0277c..51c801214c 100644 --- a/libavcodec/aac_ac3_parser.c +++ b/libavcodec/aac_ac3_parser.c @@ -152,7 +152,8 @@ get_next: ff_adts_header_parse_buf(buf, &hdr) < 0) return i; - avctx->profile = hdr.object_type - 1; + if (avctx->profile == AV_PROFILE_UNKNOWN) + avctx->profile = hdr.object_type - 1; /* ADTS does not support USAC */ s1->key_frame = 1; bit_rate = hdr.bit_rate; -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
