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 > --- > 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.