[FFmpeg-devel] [PATCH 4/6 v2] avcodec/aac_ac3_parser: don't try to sync when the parser is configured to handle complete frames

James Almer jamrial at gmail.com
Tue Oct 25 01:26:57 EEST 2022


Should speed up parsing when the frames come from non raw containers.

Signed-off-by: James Almer <jamrial at gmail.com>
---
The got_frame variable can probably be removed. ff_combine_frame() should return
success only if the end of a frame was found. Will look at that later.

 libavcodec/aac_ac3_parser.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libavcodec/aac_ac3_parser.c b/libavcodec/aac_ac3_parser.c
index 6df064e28d..b2cb79801e 100644
--- a/libavcodec/aac_ac3_parser.c
+++ b/libavcodec/aac_ac3_parser.c
@@ -40,6 +40,10 @@ int ff_aac_ac3_parse(AVCodecParserContext *s1,
     int new_frame_start;
     int got_frame = 0;
 
+    if (s1->flags & PARSER_FLAG_COMPLETE_FRAMES) {
+        i = buf_size;
+        got_frame = 1;
+    } else {
 get_next:
     i=END_NOT_FOUND;
     if(s->remaining_size <= buf_size){
@@ -77,6 +81,7 @@ get_next:
         *poutbuf_size = 0;
         return buf_size;
     }
+    }
 
     *poutbuf = buf;
     *poutbuf_size = buf_size;
-- 
2.38.1



More information about the ffmpeg-devel mailing list