[FFmpeg-cvslog] avcodec/aac_parser: set key_frame and profile

James Almer git at videolan.org
Sun Dec 1 18:47:44 EET 2024


ffmpeg | branch: release/7.1 | James Almer <jamrial at gmail.com> | Sat Nov 16 17:56:14 2024 -0300| [075c6d325ac1e6b95840a72f133bac4aa8140215] | committer: James Almer

avcodec/aac_parser: set key_frame and profile

This is in preparation for a following change.

Signed-off-by: James Almer <jamrial at gmail.com>
(cherry picked from commit 64bb91fd3b5a00a8849531c7e8dd207f2a626096)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=075c6d325ac1e6b95840a72f133bac4aa8140215
---

 libavcodec/aac_ac3_parser.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/libavcodec/aac_ac3_parser.c b/libavcodec/aac_ac3_parser.c
index f45631d09f..e2361d3534 100644
--- a/libavcodec/aac_ac3_parser.c
+++ b/libavcodec/aac_ac3_parser.c
@@ -40,6 +40,8 @@ int ff_aac_ac3_parse(AVCodecParserContext *s1,
     int new_frame_start;
     int got_frame = 0;
 
+    s1->key_frame = -1;
+
     if (s1->flags & PARSER_FLAG_COMPLETE_FRAMES) {
         i = buf_size;
         got_frame = 1;
@@ -145,10 +147,15 @@ get_next:
         } else {
 #if CONFIG_AAC_PARSER
             AACADTSHeaderInfo hdr;
+            GetBitContext gb;
+            int profile;
+            init_get_bits8(&gb, buf, buf_size);
             if (buf_size < AV_AAC_ADTS_HEADER_SIZE ||
-                ff_adts_header_parse_buf(buf, &hdr) < 0)
+                ff_adts_header_parse(&gb, &hdr) < 0)
                 return i;
 
+            avctx->profile = hdr.object_type - 1;
+            s1->key_frame = (avctx->profile == AV_PROFILE_AAC_USAC) ? get_bits1(&gb) : 1;
             bit_rate = hdr.bit_rate;
 #endif
         }



More information about the ffmpeg-cvslog mailing list