]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/x86/mpegaudiodec_mmx.c
Merge remote-tracking branch 'shariman/wmall'
[ffmpeg] / libavcodec / x86 / mpegaudiodec_mmx.c
index d7f8a0a142765a58b2f3e9263a8fc4694dc16626..980faf9cde14b831d08281d3d1baba07cfe239cb 100644 (file)
 #include "libavcodec/dsputil.h"
 #include "libavcodec/mpegaudiodsp.h"
 
+void ff_imdct36_float_sse(float *out, float *buf, float *in, float *win);
+void ff_imdct36_float_sse2(float *out, float *buf, float *in, float *win);
+void ff_imdct36_float_sse3(float *out, float *buf, float *in, float *win);
+void ff_imdct36_float_ssse3(float *out, float *buf, float *in, float *win);
+void ff_imdct36_float_avx(float *out, float *buf, float *in, float *win);
+
 #define MACS(rt, ra, rb) rt+=(ra)*(rb)
 #define MLSS(rt, ra, rb) rt-=(ra)*(rb)
 
@@ -154,4 +160,19 @@ void ff_mpadsp_init_mmx(MPADSPContext *s)
     if (mm_flags & AV_CPU_FLAG_SSE2) {
         s->apply_window_float = apply_window_mp3;
     }
+    if (HAVE_YASM && mm_flags & AV_CPU_FLAG_AVX && HAVE_AVX) {
+        s->imdct36_float = ff_imdct36_float_avx;
+    }
+    else if (HAVE_YASM && mm_flags & AV_CPU_FLAG_SSSE3 && HAVE_SSE) {
+        s->imdct36_float = ff_imdct36_float_ssse3;
+    }
+    else if (HAVE_YASM && mm_flags & AV_CPU_FLAG_SSE3 && HAVE_SSE) {
+        s->imdct36_float = ff_imdct36_float_sse3;
+    }
+    else if (HAVE_YASM && mm_flags & AV_CPU_FLAG_SSE2 && HAVE_SSE) {
+        s->imdct36_float = ff_imdct36_float_sse2;
+    }
+    else if (HAVE_YASM && mm_flags & AV_CPU_FLAG_SSE && HAVE_SSE) {
+        s->imdct36_float = ff_imdct36_float_sse;
+    }
 }