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