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 }