diff options
author | Mans Rullgard <mans@mansr.com> | 2012-07-01 13:08:17 +0100 |
---|---|---|
committer | Mans Rullgard <mans@mansr.com> | 2012-07-02 01:16:37 +0100 |
commit | a87b17f3283aada762820f1b797eeb7a2dff6c61 (patch) | |
tree | a44ce7d5afbaa284e93225caecc91c5b36dd2306 /libavfilter/x86 | |
parent | 2f0accf1038350a01a7b52f3cbe75a554f7438a3 (diff) | |
download | ffmpeg-a87b17f3283aada762820f1b797eeb7a2dff6c61.tar.gz |
vf_yadif: move x86 init code to x86/yadif.c
Signed-off-by: Mans Rullgard <mans@mansr.com>
Diffstat (limited to 'libavfilter/x86')
-rw-r--r-- | libavfilter/x86/yadif.c | 13 | ||||
-rw-r--r-- | libavfilter/x86/yadif_template.c | 6 |
2 files changed, 16 insertions, 3 deletions
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]; |