Mercurial > libavcodec.hg
comparison aac_parser.c @ 6642:866b9ade048c libavcodec
Change aac and ac3 parsers to use ff_combine_frame().
author | michael |
---|---|
date | Sat, 19 Apr 2008 01:50:40 +0000 |
parents | 1980eba5fd0e |
children | 4d04fcb5e1e4 |
comparison
equal
deleted
inserted
replaced
6641:25a963680a88 | 6642:866b9ade048c |
---|---|
25 #include "bitstream.h" | 25 #include "bitstream.h" |
26 #include "mpeg4audio.h" | 26 #include "mpeg4audio.h" |
27 | 27 |
28 #define AAC_HEADER_SIZE 7 | 28 #define AAC_HEADER_SIZE 7 |
29 | 29 |
30 static int aac_sync(AACAC3ParseContext *hdr_info) | 30 static int aac_sync(uint64_t state, AACAC3ParseContext *hdr_info) |
31 { | 31 { |
32 GetBitContext bits; | 32 GetBitContext bits; |
33 int size, rdb, ch, sr; | 33 int size, rdb, ch, sr; |
34 uint64_t tmp = be2me_64(state); | |
34 | 35 |
35 init_get_bits(&bits, hdr_info->inbuf, AAC_HEADER_SIZE * 8); | 36 init_get_bits(&bits, ((uint8_t *)&tmp)+8-AAC_HEADER_SIZE, AAC_HEADER_SIZE * 8); |
36 | 37 |
37 if(get_bits(&bits, 12) != 0xfff) | 38 if(get_bits(&bits, 12) != 0xfff) |
38 return 0; | 39 return 0; |
39 | 40 |
40 skip_bits1(&bits); /* id */ | 41 skip_bits1(&bits); /* id */ |
70 } | 71 } |
71 | 72 |
72 static av_cold int aac_parse_init(AVCodecParserContext *s1) | 73 static av_cold int aac_parse_init(AVCodecParserContext *s1) |
73 { | 74 { |
74 AACAC3ParseContext *s = s1->priv_data; | 75 AACAC3ParseContext *s = s1->priv_data; |
75 s->inbuf_ptr = s->inbuf; | |
76 s->header_size = AAC_HEADER_SIZE; | 76 s->header_size = AAC_HEADER_SIZE; |
77 s->sync = aac_sync; | 77 s->sync = aac_sync; |
78 return 0; | 78 return 0; |
79 } | 79 } |
80 | 80 |