comparison mpegaudiodec.c @ 3616:270790578711 libavcodec

avoid a few if(x==0) checks in the inner loops
author michael
date Thu, 24 Aug 2006 11:18:41 +0000
parents d0310d1cce13
children b2a5e44cf957
comparison
equal deleted inserted replaced
3615:7963ceb93083 3616:270790578711
2297 slen2 = slen_table[1][g->scalefac_compress]; 2297 slen2 = slen_table[1][g->scalefac_compress];
2298 dprintf("slen1=%d slen2=%d\n", slen1, slen2); 2298 dprintf("slen1=%d slen2=%d\n", slen1, slen2);
2299 if (g->block_type == 2) { 2299 if (g->block_type == 2) {
2300 n = g->switch_point ? 17 : 18; 2300 n = g->switch_point ? 17 : 18;
2301 j = 0; 2301 j = 0;
2302 for(i=0;i<n;i++) 2302 if(slen1){
2303 g->scale_factors[j++] = get_bitsz(&s->gb, slen1); 2303 for(i=0;i<n;i++)
2304 for(i=0;i<18;i++) 2304 g->scale_factors[j++] = get_bits(&s->gb, slen1);
2305 g->scale_factors[j++] = get_bitsz(&s->gb, slen2); 2305 }else{
2306 for(i=0;i<3;i++) 2306 for(i=0;i<n;i++)
2307 g->scale_factors[j++] = 0; 2307 g->scale_factors[j++] = 0;
2308 }
2309 if(slen2){
2310 for(i=0;i<18;i++)
2311 g->scale_factors[j++] = get_bits(&s->gb, slen2);
2312 for(i=0;i<3;i++)
2313 g->scale_factors[j++] = 0;
2314 }else{
2315 for(i=0;i<21;i++)
2316 g->scale_factors[j++] = 0;
2317 }
2308 } else { 2318 } else {
2309 sc = granules[ch][0].scale_factors; 2319 sc = granules[ch][0].scale_factors;
2310 j = 0; 2320 j = 0;
2311 for(k=0;k<4;k++) { 2321 for(k=0;k<4;k++) {
2312 n = (k == 0 ? 6 : 5); 2322 n = (k == 0 ? 6 : 5);
2313 if ((g->scfsi & (0x8 >> k)) == 0) { 2323 if ((g->scfsi & (0x8 >> k)) == 0) {
2314 slen = (k < 2) ? slen1 : slen2; 2324 slen = (k < 2) ? slen1 : slen2;
2315 for(i=0;i<n;i++) 2325 if(slen){
2316 g->scale_factors[j++] = get_bitsz(&s->gb, slen); 2326 for(i=0;i<n;i++)
2327 g->scale_factors[j++] = get_bits(&s->gb, slen);
2328 }else{
2329 for(i=0;i<n;i++)
2330 g->scale_factors[j++] = 0;
2331 }
2317 } else { 2332 } else {
2318 /* simply copy from last granule */ 2333 /* simply copy from last granule */
2319 for(i=0;i<n;i++) { 2334 for(i=0;i<n;i++) {
2320 g->scale_factors[j] = sc[j]; 2335 g->scale_factors[j] = sc[j];
2321 j++; 2336 j++;
2373 2388
2374 j = 0; 2389 j = 0;
2375 for(k=0;k<4;k++) { 2390 for(k=0;k<4;k++) {
2376 n = lsf_nsf_table[tindex2][tindex][k]; 2391 n = lsf_nsf_table[tindex2][tindex][k];
2377 sl = slen[k]; 2392 sl = slen[k];
2378 for(i=0;i<n;i++) 2393 if(s1){
2379 g->scale_factors[j++] = get_bitsz(&s->gb, sl); 2394 for(i=0;i<n;i++)
2395 g->scale_factors[j++] = get_bits(&s->gb, sl);
2396 }else{
2397 for(i=0;i<n;i++)
2398 g->scale_factors[j++] = 0;
2399 }
2380 } 2400 }
2381 /* XXX: should compute exact size */ 2401 /* XXX: should compute exact size */
2382 for(;j<40;j++) 2402 for(;j<40;j++)
2383 g->scale_factors[j] = 0; 2403 g->scale_factors[j] = 0;
2384 #if defined(DEBUG) 2404 #if defined(DEBUG)