Simplify co(), use memcpy/memmove and colmult() when useful.
authorVitor Sessak <vitor1001@gmail.com>
Thu, 24 Jul 2008 03:19:52 +0000 (03:19 +0000)
committerVitor Sessak <vitor1001@gmail.com>
Thu, 24 Jul 2008 03:19:52 +0000 (03:19 +0000)
Originally committed as revision 14355 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/ra288.c

index 44a4568..5603db4 100644 (file)
@@ -141,19 +141,15 @@ static void co(int n, int i, int j, const float *in, float *out, float *st1,
                float *st2, const float *table)
 {
     unsigned int x;
-    const float *fp;
     float buffer1[37];
     float buffer2[37];
     float work[111];
 
     /* rotate and multiply */
-    fp = st1 + i;
-    for (x=0; x < n + i + j; x++) {
-        if (x == n + j)
-            fp=in;
-        st1[x] = *(fp++);
-        work[x] = table[x] * st1[x];
-    }
+    memmove(st1        , st1 + i, (n + j)*sizeof(*st1));
+    memcpy (st1 + n + j, in     , i      *sizeof(*st1));
+
+    colmult(work, table, st1, n + i + j);
 
     prodsum(buffer1, work + n    , i, n);
     prodsum(buffer2, work + n + i, j, n);