comparison ac3_parser.c @ 6576:5e7c69ebc019 libavcodec

undo changes in aac_ac3_parser
author bwolowiec
date Wed, 09 Apr 2008 22:11:21 +0000
parents 9b8a881e871c
children 1980eba5fd0e
comparison
equal deleted inserted replaced
6575:d869966e57e5 6576:5e7c69ebc019
121 } 121 }
122 122
123 return 0; 123 return 0;
124 } 124 }
125 125
126 static int ac3_sync(uint64_t state, AACAC3ParseContext *hdr_info, 126 static int ac3_sync(AACAC3ParseContext *hdr_info, AACAC3FrameFlag *flag)
127 int *need_next_header, int *new_frame_start)
128 { 127 {
129 int err; 128 int err;
130 uint64_t tmp = be2me_64(state);
131 AC3HeaderInfo hdr; 129 AC3HeaderInfo hdr;
132 130
133 err = ff_ac3_parse_header(((uint8_t *)&tmp)+8-AC3_HEADER_SIZE, &hdr); 131 err = ff_ac3_parse_header(hdr_info->inbuf, &hdr);
134 132
135 if(err < 0) 133 if(err < 0)
136 return 0; 134 return 0;
137 135
138 hdr_info->sample_rate = hdr.sample_rate; 136 hdr_info->sample_rate = hdr.sample_rate;
139 hdr_info->bit_rate = hdr.bit_rate; 137 hdr_info->bit_rate = hdr.bit_rate;
140 hdr_info->channels = hdr.channels; 138 hdr_info->channels = hdr.channels;
141 hdr_info->samples = AC3_FRAME_SIZE; 139 hdr_info->samples = AC3_FRAME_SIZE;
142 140
143 *need_next_header = (hdr.frame_type != EAC3_FRAME_TYPE_AC3_CONVERT); 141 switch(hdr.frame_type){
144 *new_frame_start = (hdr.frame_type != EAC3_FRAME_TYPE_DEPENDENT); 142 case EAC3_FRAME_TYPE_INDEPENDENT:
143 *flag = FRAME_START;
144 break;
145 case EAC3_FRAME_TYPE_DEPENDENT:
146 *flag = FRAME_CONTINUATION;
147 break;
148 case EAC3_FRAME_TYPE_AC3_CONVERT:
149 *flag = FRAME_COMPLETE;
150 break;
151 }
145 return hdr.frame_size; 152 return hdr.frame_size;
146 } 153 }
147 154
148 static av_cold int ac3_parse_init(AVCodecParserContext *s1) 155 static av_cold int ac3_parse_init(AVCodecParserContext *s1)
149 { 156 {
150 AACAC3ParseContext *s = s1->priv_data; 157 AACAC3ParseContext *s = s1->priv_data;
158 s->inbuf_ptr = s->inbuf;
151 s->header_size = AC3_HEADER_SIZE; 159 s->header_size = AC3_HEADER_SIZE;
152 s->sync = ac3_sync; 160 s->sync = ac3_sync;
153 return 0; 161 return 0;
154 } 162 }
155 163