From a87b17f3283aada762820f1b797eeb7a2dff6c61 Mon Sep 17 00:00:00 2001 From: Mans Rullgard Date: Sun, 1 Jul 2012 13:08:17 +0100 Subject: vf_yadif: move x86 init code to x86/yadif.c Signed-off-by: Mans Rullgard --- libavfilter/x86/yadif.c | 13 +++++++++++++ libavfilter/x86/yadif_template.c | 6 +++--- 2 files changed, 16 insertions(+), 3 deletions(-) (limited to 'libavfilter/x86') diff --git a/libavfilter/x86/yadif.c b/libavfilter/x86/yadif.c index 7cd7e19258..fe77f3a99c 100644 --- a/libavfilter/x86/yadif.c +++ b/libavfilter/x86/yadif.c @@ -18,6 +18,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include "libavutil/attributes.h" #include "libavutil/cpu.h" #include "libavutil/x86_cpu.h" #include "libavcodec/x86/dsputil_mmx.h" @@ -47,3 +48,15 @@ DECLARE_ASM_CONST(16, const xmm_reg, pw_1) = {0x0001000100010001ULL, 0x000100010 #define RENAME(a) a ## _mmx #include "yadif_template.c" #endif + +av_cold void ff_yadif_init_x86(YADIFContext *yadif) +{ + int cpu_flags = av_get_cpu_flags(); + + if (HAVE_MMX && cpu_flags & AV_CPU_FLAG_MMX) + yadif->filter_line = yadif_filter_line_mmx; + if (HAVE_SSE && cpu_flags & AV_CPU_FLAG_SSE2) + yadif->filter_line = yadif_filter_line_sse2; + if (HAVE_SSSE3 && cpu_flags & AV_CPU_FLAG_SSSE3) + yadif->filter_line = yadif_filter_line_ssse3; +} diff --git a/libavfilter/x86/yadif_template.c b/libavfilter/x86/yadif_template.c index ffcc39eebc..1de0a58e8f 100644 --- a/libavfilter/x86/yadif_template.c +++ b/libavfilter/x86/yadif_template.c @@ -103,9 +103,9 @@ "por "MM"5, "MM"3 \n\t"\ MOVQ" "MM"3, "MM"1 \n\t" -void RENAME(ff_yadif_filter_line)(uint8_t *dst, - uint8_t *prev, uint8_t *cur, uint8_t *next, - int w, int prefs, int mrefs, int parity, int mode) +static void RENAME(yadif_filter_line)(uint8_t *dst, uint8_t *prev, uint8_t *cur, + uint8_t *next, int w, int prefs, + int mrefs, int parity, int mode) { DECLARE_ALIGNED(16, uint8_t, tmp0)[16]; DECLARE_ALIGNED(16, uint8_t, tmp1)[16]; -- cgit v1.2.3