changeset 6807:c19ef48adf18 libavcodec

Do not copy tables to a context var, use them directly
author vitor
date Thu, 15 May 2008 18:36:12 +0000
parents e4be053e7d9b
children c5ecf570f1b1
files ra144.c
diffstat 1 files changed, 8 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/ra144.c	Thu May 15 18:34:31 2008 +0000
+++ b/ra144.c	Thu May 15 18:36:12 2008 +0000
@@ -48,9 +48,6 @@
     unsigned short int buffer_2[148];
 
     unsigned short *sptr;
-
-    signed short wavtable1[2304];
-    unsigned short wavtable2[2304];
 } Real144_internal;
 
 static int ra144_decode_init(AVCodecContext * avctx)
@@ -62,9 +59,6 @@
     glob->swapbuf1alt = glob->swapbuffers[2];
     glob->swapbuf2alt = glob->swapbuffers[3];
 
-    memcpy(glob->wavtable1, wavtable1, sizeof(wavtable1));
-    memcpy(glob->wavtable2, wavtable2, sizeof(wavtable2));
-
     return 0;
 }
 
@@ -183,11 +177,11 @@
 static void add_wav(Real144_internal *glob, int n, int f, int m1, int m2,
                     int m3, short *s1, short *s2, short *s3, short *dest)
 {
-    int a, b, c;
-    short *ptr, *ptr2;
+    int a, b, c, i;
+    const short *ptr, *ptr2;
 
-    ptr  = glob->wavtable1 + n * 9;
-    ptr2 = glob->wavtable2 + n * 9;
+    ptr  = wavtable1 + n * 9;
+    ptr2 = wavtable2 + n * 9;
 
     if (f != 0)
         a = ((*ptr) * m1) >> ((*ptr2) + 1);
@@ -200,14 +194,13 @@
     ptr++;
     ptr2++;
     c = ((*ptr) * m3) >> ((*ptr2) + 1);
-    ptr2 = (ptr = dest) + BLOCKSIZE;
 
     if (f != 0)
-        while (ptr < ptr2)
-            *(ptr++) = ((*(s1++)) * a + (*(s2++)) * b + (*(s3++)) * c) >> 12;
+        for (i=0; i < BLOCKSIZE; i++)
+            dest[i] = ((*(s1++)) * a + (*(s2++)) * b + (*(s3++)) * c) >> 12;
     else
-        while (ptr < ptr2)
-            *(ptr++) = ((*(s2++)) * b + (*(s3++)) * c) >> 12;
+        for (i=0; i < BLOCKSIZE; i++)
+            dest[i] = ((*(s2++)) * b + (*(s3++)) * c) >> 12;
 }