From 3e4982542b8b085e037da35c65975d7ad1b96e90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 25 Aug 2008 14:37:45 +0000 Subject: gst/deinterlace2/: First part of the C implementation of the tomsmocomp deinterlacing algorithm. This only supports s... Original commit message from CVS: * gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace_method_class_init): * gst/deinterlace2/gstdeinterlace2.h: * gst/deinterlace2/tvtime/tomsmocomp.c: (gst_deinterlace_method_tomsmocomp_class_init): * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc: * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc: * gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc: * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc: * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc: * gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc: * gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h: First part of the C implementation of the tomsmocomp deinterlacing algorithm. This only supports search-effort=0 currently, is painfully slow and needs some cleanup later when all search-effort settings are implemented in C. --- gst/deinterlace2/tvtime/tomsmocomp.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'gst/deinterlace2/tvtime/tomsmocomp.c') diff --git a/gst/deinterlace2/tvtime/tomsmocomp.c b/gst/deinterlace2/tvtime/tomsmocomp.c index c27d4874..0565b6c7 100644 --- a/gst/deinterlace2/tvtime/tomsmocomp.c +++ b/gst/deinterlace2/tvtime/tomsmocomp.c @@ -29,9 +29,6 @@ #include "gstdeinterlace2.h" #include "plugins.h" -#include "tomsmocomp/tomsmocompmacros.h" -#include "x86-64_macros.inc" - #define GST_TYPE_DEINTERLACE_METHOD_TOMSMOCOMP (gst_deinterlace_method_tomsmocomp_get_type ()) #define GST_IS_DEINTERLACE_METHOD_TOMSMOCOMP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_DEINTERLACE_METHOD_TOMSMOCOMP)) #define GST_IS_DEINTERLACE_METHOD_TOMSMOCOMP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_DEINTERLACE_METHOD_TOMSMOCOMP)) @@ -72,6 +69,20 @@ Fieldcopy (void *dest, const void *src, size_t count, return 0; } +#define USE_FOR_DSCALER + +#define IS_C +#define SIMD_TYPE C +#define FUNCT_NAME tomsmocompDScaler_C +#include "tomsmocomp/TomsMoCompAll.inc" +#undef IS_C +#undef SIMD_TYPE +#undef FUNCT_NAME + +#ifdef BUILD_X86_ASM + +#include "tomsmocomp/tomsmocompmacros.h" +#include "x86-64_macros.inc" #define IS_MMX #define SIMD_TYPE MMX @@ -97,6 +108,8 @@ Fieldcopy (void *dest, const void *src, size_t count, #undef SIMD_TYPE #undef FUNCT_NAME +#endif + G_DEFINE_TYPE (GstDeinterlaceMethodTomsMoComp, gst_deinterlace_method_tomsmocomp, GST_TYPE_DEINTERLACE_METHOD); @@ -173,6 +186,7 @@ static void dim_class->nick = "tomsmocomp"; dim_class->latency = 1; +#ifdef BUILD_X86_ASM if (cpu_flags & OIL_IMPL_FLAG_MMXEXT) { dim_class->deinterlace_frame = tomsmocompDScaler_MMXEXT; } else if (cpu_flags & OIL_IMPL_FLAG_3DNOW) { @@ -180,8 +194,11 @@ static void } else if (cpu_flags & OIL_IMPL_FLAG_MMX) { dim_class->deinterlace_frame = tomsmocompDScaler_MMX; } else { - dim_class->available = FALSE; + dim_class->deinterlace_frame = tomsmocompDScaler_C; } +#else + dim_class->deinterlace_frame = tomsmocompDScaler_C; +#endif } static void -- cgit v1.2.1