Mercurial > libavcodec.hg
comparison ac3.c @ 4645:056127e5df89 libavcodec
remove redundancy in AC-3 parser by using common tables from ac3tab.h
author | jbr |
---|---|
date | Sun, 11 Mar 2007 02:13:05 +0000 |
parents | 7e140e4cd8cb |
children | 5683b496ffbc |
comparison
equal
deleted
inserted
replaced
4644:414d484f6483 | 4645:056127e5df89 |
---|---|
179 i++; | 179 i++; |
180 } | 180 } |
181 } while (end > bndtab[j++]); | 181 } while (end > bndtab[j++]); |
182 } | 182 } |
183 | 183 |
184 /** | |
185 * Initializes some tables. | |
186 * note: This function must remain thread safe because it is called by the | |
187 * AVParser init code. | |
188 */ | |
184 void ac3_common_init(void) | 189 void ac3_common_init(void) |
185 { | 190 { |
186 int i, j, k, l, v; | 191 int i, j, k, l, v; |
187 /* compute bndtab and masktab from bandsz */ | 192 /* compute bndtab and masktab from bandsz */ |
188 k = 0; | 193 k = 0; |
192 v = bndsz[i]; | 197 v = bndsz[i]; |
193 for(j=0;j<v;j++) masktab[k++]=i; | 198 for(j=0;j<v;j++) masktab[k++]=i; |
194 l += v; | 199 l += v; |
195 } | 200 } |
196 bndtab[50] = l; | 201 bndtab[50] = l; |
197 } | 202 |
203 /* generate ff_ac3_frame_sizes table */ | |
204 for(i=0; i<38; i++) { | |
205 int br = ff_ac3_bitratetab[i >> 1]; | |
206 ff_ac3_frame_sizes[i][0] = ( 2*br ); | |
207 ff_ac3_frame_sizes[i][1] = (320*br / 147) + (i & 1); | |
208 ff_ac3_frame_sizes[i][2] = ( 3*br ); | |
209 } | |
210 } |