diff options
author | Robert Krüger <krueger@lesspain.de> | 2014-01-04 16:49:38 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-01-14 17:19:14 +0400 |
commit | 4a38eeec38c5afd8216bf0a613198b3390cc0b46 (patch) | |
tree | a82053825d7ce2852298d6d5ab51d70a626a9fc8 /libavfilter/vf_yadif.c | |
parent | 0b54bc24db8b4b78b89ae0d8b4e6edac4fb6b6c7 (diff) |
Revert "Revert "vf_yadif: move x86 init code to x86/yadif.c""
This reverts commit 975110a85ef8e794fdc041455ff41b0ad30bc01e.
Signed-off-by: Robert Krüger <krueger@lesspain.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/vf_yadif.c')
-rw-r--r-- | libavfilter/vf_yadif.c | 70 |
1 files changed, 3 insertions, 67 deletions
diff --git a/libavfilter/vf_yadif.c b/libavfilter/vf_yadif.c index 40383a4d06..933534d551 100644 --- a/libavfilter/vf_yadif.c +++ b/libavfilter/vf_yadif.c @@ -23,15 +23,12 @@ #include "libavutil/opt.h" #include "libavutil/pixdesc.h" #include "libavutil/imgutils.h" -#include "libavutil/x86/asm.h" -#include "libavutil/x86/cpu.h" #include "avfilter.h" #include "formats.h" #include "internal.h" #include "video.h" #include "yadif.h" - typedef struct ThreadData { AVFrame *frame; int plane; @@ -40,35 +37,6 @@ typedef struct ThreadData { int tff; } ThreadData; -typedef struct YADIFContext { - const AVClass *class; - - enum YADIFMode mode; - enum YADIFParity parity; - enum YADIFDeint deint; - - int frame_pending; - - AVFrame *cur; - AVFrame *next; - AVFrame *prev; - AVFrame *out; - - /** - * Required alignment for filter_line - */ - void (*filter_line)(void *dst, - void *prev, void *cur, void *next, - int w, int prefs, int mrefs, int parity, int mode); - void (*filter_edges)(void *dst, void *prev, void *cur, void *next, - int w, int prefs, int mrefs, int parity, int mode); - - const AVPixFmtDescriptor *csp; - int eof; - uint8_t *temp_line; - int temp_line_size; -} YADIFContext; - #define CHECK(j)\ { int score = FFABS(cur[mrefs - 1 + j] - cur[prefs - 1 - j])\ + FFABS(cur[mrefs + j] - cur[prefs - j])\ @@ -493,9 +461,6 @@ static int config_props(AVFilterLink *link) { AVFilterContext *ctx = link->src; YADIFContext *s = link->src->priv; - int cpu_flags = av_get_cpu_flags(); - int bit_depth = (!s->csp) ? 8 - : s->csp->comp[0].depth_minus1 + 1; link->time_base.num = link->src->inputs[0]->time_base.num; link->time_base.den = link->src->inputs[0]->time_base.den * 2; @@ -519,38 +484,9 @@ static int config_props(AVFilterLink *link) s->filter_edges = filter_edges; } -#if HAVE_YASM - if (bit_depth >= 15) { - if (EXTERNAL_SSE4(cpu_flags)) - s->filter_line = ff_yadif_filter_line_16bit_sse4; - else if (EXTERNAL_SSSE3(cpu_flags)) - s->filter_line = ff_yadif_filter_line_16bit_ssse3; - else if (EXTERNAL_SSE2(cpu_flags)) - s->filter_line = ff_yadif_filter_line_16bit_sse2; -#if ARCH_X86_32 - else if (EXTERNAL_MMXEXT(cpu_flags)) - s->filter_line = ff_yadif_filter_line_16bit_mmxext; -#endif /* ARCH_X86_32 */ - } else if ( bit_depth >= 9 && bit_depth <= 14) { - if (EXTERNAL_SSSE3(cpu_flags)) - s->filter_line = ff_yadif_filter_line_10bit_ssse3; - else if (EXTERNAL_SSE2(cpu_flags)) - s->filter_line = ff_yadif_filter_line_10bit_sse2; -#if ARCH_X86_32 - else if (EXTERNAL_MMXEXT(cpu_flags)) - s->filter_line = ff_yadif_filter_line_10bit_mmxext; -#endif /* ARCH_X86_32 */ - } else { - if (EXTERNAL_SSSE3(cpu_flags)) - s->filter_line = ff_yadif_filter_line_ssse3; - else if (EXTERNAL_SSE2(cpu_flags)) - s->filter_line = ff_yadif_filter_line_sse2; -#if ARCH_X86_32 - else if (EXTERNAL_MMXEXT(cpu_flags)) - s->filter_line = ff_yadif_filter_line_mmxext; -#endif /* ARCH_X86_32 */ - } -#endif /* HAVE_YASM */ + if (ARCH_X86) + ff_yadif_init_x86(s); + return 0; } |