]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/dct.c
rv40: NEON optimised chroma MC
[ffmpeg] / libavcodec / dct.c
index e7a8f227b7ee2c4b9c344ab0032f6dd7b1f1faf2..5c63af30a1a536347ab1f4f81711645441ce9bd9 100644 (file)
@@ -30,9 +30,7 @@
 #include <math.h>
 #include "libavutil/mathematics.h"
 #include "dct.h"
-
-#define DCT32_FLOAT
-#include "dct32.c"
+#include "dct32.h"
 
 /* sin((M_PI * x / (2*n)) */
 #define SIN(s,n,x) (s->costab[(n) - (x)])
@@ -188,29 +186,29 @@ av_cold int ff_dct_init(DCTContext *s, int nbits, enum DCTTransformType inverse)
     if (inverse == DCT_II && nbits == 5) {
         s->dct_calc = dct32_func;
     } else {
-    ff_init_ff_cos_tabs(nbits+2);
+        ff_init_ff_cos_tabs(nbits+2);
 
-    s->costab = ff_cos_tabs[nbits+2];
+        s->costab = ff_cos_tabs[nbits+2];
 
-    s->csc2 = av_malloc(n/2 * sizeof(FFTSample));
+        s->csc2 = av_malloc(n/2 * sizeof(FFTSample));
 
-    if (ff_rdft_init(&s->rdft, nbits, inverse == DCT_III) < 0) {
-        av_free(s->csc2);
-        return -1;
-    }
+        if (ff_rdft_init(&s->rdft, nbits, inverse == DCT_III) < 0) {
+            av_free(s->csc2);
+            return -1;
+        }
 
-    for (i = 0; i < n/2; i++)
-        s->csc2[i] = 0.5 / sin((M_PI / (2*n) * (2*i + 1)));
+        for (i = 0; i < n/2; i++)
+            s->csc2[i] = 0.5 / sin((M_PI / (2*n) * (2*i + 1)));
 
-    switch(inverse) {
-    case DCT_I  : s->dct_calc = ff_dct_calc_I_c; break;
-    case DCT_II : s->dct_calc = ff_dct_calc_II_c ; break;
-    case DCT_III: s->dct_calc = ff_dct_calc_III_c; break;
-    case DST_I  : s->dct_calc = ff_dst_calc_I_c; break;
-    }
+        switch(inverse) {
+        case DCT_I  : s->dct_calc = ff_dct_calc_I_c; break;
+        case DCT_II : s->dct_calc = ff_dct_calc_II_c ; break;
+        case DCT_III: s->dct_calc = ff_dct_calc_III_c; break;
+        case DST_I  : s->dct_calc = ff_dst_calc_I_c; break;
+        }
     }
 
-    s->dct32 = dct32;
+    s->dct32 = ff_dct32_float;
     if (HAVE_MMX)     ff_dct_init_mmx(s);
 
     return 0;