Mercurial > libavcodec.hg
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){ |