summaryrefslogtreecommitdiff
path: root/libavcodec/atrac3.c
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2012-10-18 17:07:04 -0400
committerJustin Ruggles <justin.ruggles@gmail.com>2012-10-22 10:10:06 -0400
commitaefdb735c3df9480c1ca9bcf4a3835bd66271bd1 (patch)
treedcd48f82b4463050fe94703acc8f072c0f409767 /libavcodec/atrac3.c
parente55d53905f34f8e8747f6d321e9a695dc02ebb2f (diff)
atrac3: simplify some loop indexing
Diffstat (limited to 'libavcodec/atrac3.c')
-rw-r--r--libavcodec/atrac3.c60
1 files changed, 30 insertions, 30 deletions
diff --git a/libavcodec/atrac3.c b/libavcodec/atrac3.c
index 4223d04521..ad707b120e 100644
--- a/libavcodec/atrac3.c
+++ b/libavcodec/atrac3.c
@@ -551,7 +551,7 @@ static void reverse_matrixing(float *su1, float *su2, int *prev_code,
for (i = 0, band = 0; band < 4 * 256; band += 256, i++) {
int s1 = prev_code[i];
int s2 = curr_code[i];
- nsample = 0;
+ nsample = band;
if (s1 != s2) {
/* Selector value changed, interpolation needed. */
@@ -561,41 +561,41 @@ static void reverse_matrixing(float *su1, float *su2, int *prev_code,
mc2_r = matrix_coeffs[s2 * 2 + 1];
/* Interpolation is done over the first eight samples. */
- for (; nsample < 8; nsample++) {
- float c1 = su1[band + nsample];
- float c2 = su2[band + nsample];
- c2 = c1 * INTERPOLATE(mc1_l, mc2_l, nsample) +
- c2 * INTERPOLATE(mc1_r, mc2_r, nsample);
- su1[band + nsample] = c2;
- su2[band + nsample] = c1 * 2.0 - c2;
+ for (; nsample < band + 8; nsample++) {
+ float c1 = su1[nsample];
+ float c2 = su2[nsample];
+ c2 = c1 * INTERPOLATE(mc1_l, mc2_l, nsample - band) +
+ c2 * INTERPOLATE(mc1_r, mc2_r, nsample - band);
+ su1[nsample] = c2;
+ su2[nsample] = c1 * 2.0 - c2;
}
}
/* Apply the matrix without interpolation. */
switch (s2) {
case 0: /* M/S decoding */
- for (; nsample < 256; nsample++) {
- float c1 = su1[band + nsample];
- float c2 = su2[band + nsample];
- su1[band + nsample] = c2 * 2.0;
- su2[band + nsample] = (c1 - c2) * 2.0;
+ for (; nsample < band + 256; nsample++) {
+ float c1 = su1[nsample];
+ float c2 = su2[nsample];
+ su1[nsample] = c2 * 2.0;
+ su2[nsample] = (c1 - c2) * 2.0;
}
break;
case 1:
- for (; nsample < 256; nsample++) {
- float c1 = su1[band + nsample];
- float c2 = su2[band + nsample];
- su1[band + nsample] = (c1 + c2) * 2.0;
- su2[band + nsample] = c2 * -2.0;
+ for (; nsample < band + 256; nsample++) {
+ float c1 = su1[nsample];
+ float c2 = su2[nsample];
+ su1[nsample] = (c1 + c2) * 2.0;
+ su2[nsample] = c2 * -2.0;
}
break;
case 2:
case 3:
- for (; nsample < 256; nsample++) {
- float c1 = su1[band + nsample];
- float c2 = su2[band + nsample];
- su1[band + nsample] = c1 + c2;
- su2[band + nsample] = c1 - c2;
+ for (; nsample < band + 256; nsample++) {
+ float c1 = su1[nsample];
+ float c2 = su2[nsample];
+ su1[nsample] = c1 + c2;
+ su2[nsample] = c1 - c2;
}
break;
default:
@@ -627,14 +627,14 @@ static void channel_weighting(float *su1, float *su2, int *p3)
get_channel_weights(p3[1], p3[0], w[0]);
get_channel_weights(p3[3], p3[2], w[1]);
- for (band = 1; band < 4; band++) {
- for (nsample = 0; nsample < 8; nsample++) {
- su1[band * 256 + nsample] *= INTERPOLATE(w[0][0], w[0][1], nsample);
- su2[band * 256 + nsample] *= INTERPOLATE(w[1][0], w[1][1], nsample);
+ for (band = 256; band < 4 * 256; band += 256) {
+ for (nsample = band; nsample < band + 8; nsample++) {
+ su1[nsample] *= INTERPOLATE(w[0][0], w[0][1], nsample - band);
+ su2[nsample] *= INTERPOLATE(w[1][0], w[1][1], nsample - band);
}
- for(; nsample < 256; nsample++) {
- su1[band * 256 + nsample] *= w[1][0];
- su2[band * 256 + nsample] *= w[1][1];
+ for(; nsample < band + 256; nsample++) {
+ su1[nsample] *= w[1][0];
+ su2[nsample] *= w[1][1];
}
}
}