comparison aac_ac3_parser.c @ 6643:4d04fcb5e1e4 libavcodec

Add new_frame_start and need_next_header. based on a patch by Bartlomiej
author michael
date Sat, 19 Apr 2008 01:59:55 +0000
parents 866b9ade048c
children 1d9eb7c09f98
comparison
equal deleted inserted replaced
6642:866b9ade048c 6643:4d04fcb5e1e4
29 const uint8_t *buf, int buf_size) 29 const uint8_t *buf, int buf_size)
30 { 30 {
31 AACAC3ParseContext *s = s1->priv_data; 31 AACAC3ParseContext *s = s1->priv_data;
32 ParseContext *pc = &s->pc; 32 ParseContext *pc = &s->pc;
33 int len, i; 33 int len, i;
34 int new_frame_start;
34 35
35 i=END_NOT_FOUND; 36 i=END_NOT_FOUND;
36 if(s->remaining_size <= buf_size){ 37 if(s->remaining_size <= buf_size){
37 if(s->remaining_size){ 38 if(s->remaining_size){
38 i= s->remaining_size; 39 i= s->remaining_size;
39 s->remaining_size = 0; 40 s->remaining_size = 0;
40 }else{ //we need a header first 41 }else{ //we need a header first
41 len=0; 42 len=0;
42 for(i=s->remaining_size; i<buf_size; i++){ 43 for(i=s->remaining_size; i<buf_size; i++){
43 s->state = (s->state<<8) + buf[i]; 44 s->state = (s->state<<8) + buf[i];
44 if((len=s->sync(s->state, s))) 45 if((len=s->sync(s->state, s, &s->need_next_header, &new_frame_start)))
45 break; 46 break;
46 } 47 }
47 if(len<=0){ 48 if(len<=0){
48 i=END_NOT_FOUND; 49 i=END_NOT_FOUND;
49 }else{ 50 }else{