summaryrefslogtreecommitdiffstats
path: root/gst/deinterlace2/tvtime/tomsmocomp.c
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2008-08-25 14:37:45 +0000
committerSebastian Dröge <slomo@circular-chaos.org>2008-08-25 14:37:45 +0000
commit3e4982542b8b085e037da35c65975d7ad1b96e90 (patch)
tree3be2924abb1854dc3beebd17ee78b4516a357616 /gst/deinterlace2/tvtime/tomsmocomp.c
parentc980279fa4ab6bdf782cb3c7c6832caea71c3ee6 (diff)
downloadgst-plugins-bad-3e4982542b8b085e037da35c65975d7ad1b96e90.tar.gz
gst-plugins-bad-3e4982542b8b085e037da35c65975d7ad1b96e90.tar.bz2
gst-plugins-bad-3e4982542b8b085e037da35c65975d7ad1b96e90.zip
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.
Diffstat (limited to 'gst/deinterlace2/tvtime/tomsmocomp.c')
-rw-r--r--gst/deinterlace2/tvtime/tomsmocomp.c25
1 files changed, 21 insertions, 4 deletions
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