Mercurial > libavcodec.hg
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) |