diff options
author | Sebastian Dröge <slomo@circular-chaos.org> | 2008-08-25 14:37:45 +0000 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2008-08-25 14:37:45 +0000 |
commit | 3e4982542b8b085e037da35c65975d7ad1b96e90 (patch) | |
tree | 3be2924abb1854dc3beebd17ee78b4516a357616 /gst/deinterlace2/tvtime/tomsmocomp.c | |
parent | c980279fa4ab6bdf782cb3c7c6832caea71c3ee6 (diff) | |
download | gst-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.c | 25 |
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 |