summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/aac_ac3_parser.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libavcodec/aac_ac3_parser.c b/libavcodec/aac_ac3_parser.c
index 8d7e20c516..ad8f04e757 100644
--- a/libavcodec/aac_ac3_parser.c
+++ b/libavcodec/aac_ac3_parser.c
@@ -33,9 +33,10 @@ int ff_aac_ac3_parse(AVCodecParserContext *s1,
int len, i;
int new_frame_start;
+get_next:
i=END_NOT_FOUND;
if(s->remaining_size <= buf_size){
- if(s->remaining_size){
+ if(s->remaining_size && !s->need_next_header){
i= s->remaining_size;
s->remaining_size = 0;
}else{ //we need a header first
@@ -50,6 +51,8 @@ int ff_aac_ac3_parse(AVCodecParserContext *s1,
}else{
i-= s->header_size -1;
s->remaining_size = len + i;
+ if(!new_frame_start)
+ goto get_next;
}
}
}