changeset 7727:ce660aaf7bf8 libavcodec

Simplify (drop useless intermediate sum and diff arrays).
author michael
date Fri, 29 Aug 2008 14:44:47 +0000
parents 6209e2477cff
children 311f7ae6fbbc
files dca.c
diffstat 1 files changed, 3 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/dca.c	Fri Aug 29 10:14:01 2008 +0000
+++ b/dca.c	Fri Aug 29 14:44:47 2008 +0000
@@ -673,7 +673,7 @@
 
     /* Reconstructed channel sample index */
     for (subindex = 0; subindex < 8; subindex++) {
-        float t1, t2, sum[16], diff[16];
+        float t1, t2;
 
         /* Load in one sample from each subband and clear inactive subbands */
         for (i = 0; i < s->subband_activity[chans]; i++)
@@ -690,17 +690,10 @@
                 t1 += (raXin[2 * i] + raXin[2 * i + 1]) * cos_mod[j];
                 t2 += (raXin[2 * i] + raXin[2 * i - 1]) * cos_mod[j + 256];
             }
-            sum[k] = t1 + t2;
-            diff[k] = t1 - t2;
+            subband_fir_hist[   k  ] = cos_mod[k+512   ] * (t1 + t2);
+            subband_fir_hist[32-k-1] = cos_mod[k+512+16] * (t1 - t2);
         }
 
-        j = 512;
-        /* Store history */
-        for (k = 0; k < 16; k++)
-            subband_fir_hist[k] = cos_mod[j++] * sum[k];
-        for (k = 0; k < 16; k++)
-            subband_fir_hist[32-k-1] = cos_mod[j++] * diff[k];
-
         /* Multiply by filter coefficients */
         for (k = 31, i = 0; i < 32; i++, k--)
             for (j = 0; j < 512; j += 64){