mlpdsp: x86: Respect cpuflags
authorLuca Barbato <lu_zero@gentoo.org>
Wed, 10 Jul 2013 01:18:14 +0000 (03:18 +0200)
committerLuca Barbato <lu_zero@gentoo.org>
Fri, 12 Jul 2013 02:34:49 +0000 (04:34 +0200)
libavcodec/x86/mlpdsp.c

index 7bd2c12..72fc637 100644 (file)
@@ -21,7 +21,9 @@
 
 #include "libavutil/attributes.h"
 #include "libavutil/internal.h"
+#include "libavutil/cpu.h"
 #include "libavutil/x86/asm.h"
+#include "libavutil/x86/cpu.h"
 #include "libavcodec/mlpdsp.h"
 #include "libavcodec/mlp.h"
 
@@ -178,6 +180,8 @@ static void mlp_filter_channel_x86(int32_t *state, const int32_t *coeff,
 av_cold void ff_mlpdsp_init_x86(MLPDSPContext *c)
 {
 #if HAVE_7REGS && HAVE_INLINE_ASM
-    c->mlp_filter_channel = mlp_filter_channel_x86;
+    int cpu_flags = av_get_cpu_flags();
+    if (INLINE_MMX(cpu_flags))
+        c->mlp_filter_channel = mlp_filter_channel_x86;
 #endif
 }