comparison aac_ac3_parser.c @ 6644:1d9eb7c09f98 libavcodec

part 1 of EAC3 support
author michael
date Sat, 19 Apr 2008 02:28:24 +0000
parents 4d04fcb5e1e4
children 7ca428109684
comparison
equal deleted inserted replaced
6643:4d04fcb5e1e4 6644:1d9eb7c09f98
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 int new_frame_start;
35 35
36 get_next:
36 i=END_NOT_FOUND; 37 i=END_NOT_FOUND;
37 if(s->remaining_size <= buf_size){ 38 if(s->remaining_size <= buf_size){
38 if(s->remaining_size){ 39 if(s->remaining_size && !s->need_next_header){
39 i= s->remaining_size; 40 i= s->remaining_size;
40 s->remaining_size = 0; 41 s->remaining_size = 0;
41 }else{ //we need a header first 42 }else{ //we need a header first
42 len=0; 43 len=0;
43 for(i=s->remaining_size; i<buf_size; i++){ 44 for(i=s->remaining_size; i<buf_size; i++){
48 if(len<=0){ 49 if(len<=0){
49 i=END_NOT_FOUND; 50 i=END_NOT_FOUND;
50 }else{ 51 }else{
51 i-= s->header_size -1; 52 i-= s->header_size -1;
52 s->remaining_size = len + i; 53 s->remaining_size = len + i;
54 if(!new_frame_start)
55 goto get_next;
53 } 56 }
54 } 57 }
55 } 58 }
56 59
57 if(ff_combine_frame(pc, i, &buf, &buf_size)<0){ 60 if(ff_combine_frame(pc, i, &buf, &buf_size)<0){