On 7/7/2025 10:19 AM, Nicolas Gaullier wrote:
ff_adts_header_parse() gets the object_type from only 2 bits.
See also 696ea1c2236842572df88d573e24a39be3f19c98.

Introduced in 64bb91fd3b5a00a8849531c7e8dd207f2a626096.

Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris>
---
  libavcodec/aac_ac3_parser.c | 7 +++----
  1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/libavcodec/aac_ac3_parser.c b/libavcodec/aac_ac3_parser.c
index e10ce13a3b..b49ce0277c 100644
--- a/libavcodec/aac_ac3_parser.c
+++ b/libavcodec/aac_ac3_parser.c
@@ -147,15 +147,14 @@ 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;
-            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
          }

This isn't dead code. It just moves the getbitcontext creation to the wrapper function ff_adts_header_parse_buf().

Also, the buffer needs AV_INPUT_BUFFER_PADDING_SIZE of padding bytes, so maybe use a zeroed local buffer while at it and memcpy AV_AAC_ADTS_HEADER_SIZE bytes to it, then pass that.

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to