diff --git a/gst/deinterlace2/Makefile.am b/gst/deinterlace2/Makefile.am index 26952e2edc..fbddf189ff 100644 --- a/gst/deinterlace2/Makefile.am +++ b/gst/deinterlace2/Makefile.am @@ -4,15 +4,18 @@ libgstdeinterlace2_la_SOURCES = \ gstdeinterlace2.c \ tvtime/greedy.c \ tvtime/greedyh.c \ - tvtime/vfir.c \ - tvtime/tomsmocomp.c + tvtime/vfir.c + +# tvtime/tomsmocomp.c libgstdeinterlace2_la_CFLAGS = $(GST_CFLAGS) \ - $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(LIBOIL_CFLAGS) -DHAVE_MMX -DHAVE_SSE + $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(LIBOIL_CFLAGS) libgstdeinterlace2_la_LIBADD = $(GST_LIBS) \ $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) $(GST_BASE_LIBS) $(LIBOIL_LIBS) libgstdeinterlace2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +EXTRA_DIST = tvtime/tomsmocomp.c + noinst_HEADERS = \ gstdeinterlace2.h \ tvtime/mmx.h \ diff --git a/gst/deinterlace2/gstdeinterlace2.c b/gst/deinterlace2/gstdeinterlace2.c index 14fea794ca..54cde5ffd2 100644 --- a/gst/deinterlace2/gstdeinterlace2.c +++ b/gst/deinterlace2/gstdeinterlace2.c @@ -23,10 +23,11 @@ #include "config.h" #endif -#include "gstdeinterlace2.h" #include #include +#include +#include "gstdeinterlace2.h" #include "tvtime/plugins.h" #include @@ -95,7 +96,9 @@ gst_deinterlace2_methods_get_type (void) static GType deinterlace2_methods_type = 0; static const GEnumValue methods_types[] = { +#if 0 {GST_DEINTERLACE2_TOMSMOCOMP, "Toms Motion Compensation", "tomsmocomp"}, +#endif {GST_DEINTERLACE2_GREEDY_H, "Greedy High Motion", "greedyh"}, {GST_DEINTERLACE2_GREEDY_L, "Greedy Low Motion", "greedyl"}, {GST_DEINTERLACE2_VFIR, "Vertical Blur", "vfir"}, @@ -212,9 +215,11 @@ gst_deinterlace2_set_method (GstDeinterlace2 * self, } switch (method) { +#if 0 case GST_DEINTERLACE2_TOMSMOCOMP: self->method = g_object_new (GST_TYPE_DEINTERLACE_TOMSMOCOMP, NULL); break; +#endif case GST_DEINTERLACE2_GREEDY_H: self->method = g_object_new (GST_TYPE_DEINTERLACE_GREEDY_H, NULL); break; @@ -270,8 +275,7 @@ gst_deinterlace2_class_init (GstDeinterlace2Class * klass) "Method", "Deinterlace Method", GST_TYPE_DEINTERLACE2_METHODS, - GST_DEINTERLACE2_TOMSMOCOMP, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS) + GST_DEINTERLACE2_GREEDY_H, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS) ); g_object_class_install_property (gobject_class, ARG_FIELDS, @@ -351,7 +355,7 @@ gst_deinterlace2_init (GstDeinterlace2 * self, GstDeinterlace2Class * klass) gst_element_no_more_pads (GST_ELEMENT (self)); - gst_deinterlace2_set_method (self, GST_DEINTERLACE2_TOMSMOCOMP); + gst_deinterlace2_set_method (self, GST_DEINTERLACE2_GREEDY_H); self->field_layout = GST_DEINTERLACE2_LAYOUT_AUTO; self->fields = GST_DEINTERLACE2_ALL; diff --git a/gst/deinterlace2/gstdeinterlace2.h b/gst/deinterlace2/gstdeinterlace2.h index 091602a570..ee9a201894 100644 --- a/gst/deinterlace2/gstdeinterlace2.h +++ b/gst/deinterlace2/gstdeinterlace2.h @@ -22,12 +22,17 @@ #ifndef __GST_DEINTERLACE_2_H__ #define __GST_DEINTERLACE_2_H__ -#include -#include -#include - #include #include +#include +#include +#include + +#ifdef HAVE_GCC_ASM +#if defined(HAVE_CPU_I386) || defined(HAVE_CPU_X86_64) +#define BUILD_X86_ASM +#endif +#endif G_BEGIN_DECLS diff --git a/gst/deinterlace2/tvtime/greedy.c b/gst/deinterlace2/tvtime/greedy.c index 9e398e75c2..e432465710 100644 --- a/gst/deinterlace2/tvtime/greedy.c +++ b/gst/deinterlace2/tvtime/greedy.c @@ -121,7 +121,7 @@ deinterlace_greedy_packed422_scanline_c (GstDeinterlaceMethodGreedyL * self, } } -#ifdef HAVE_CPU_I386 +#ifdef BUILD_X86_ASM #include "mmx.h" static void deinterlace_greedy_packed422_scanline_mmx (GstDeinterlaceMethodGreedyL * self, @@ -449,7 +449,7 @@ gst_deinterlace_method_greedy_l_class_init (GstDeinterlaceMethodGreedyLClass * { GstDeinterlaceMethodClass *dim_class = (GstDeinterlaceMethodClass *) klass; GObjectClass *gobject_class = (GObjectClass *) klass; -#ifdef HAVE_CPU_I386 +#ifdef BUILD_X86_ASM guint cpu_flags = oil_cpu_get_flags (); #endif @@ -468,7 +468,7 @@ gst_deinterlace_method_greedy_l_class_init (GstDeinterlaceMethodGreedyLClass * dim_class->nick = "greedyl"; dim_class->latency = 1; -#ifdef HAVE_CPU_I386 +#ifdef BUILD_X86_ASM if (cpu_flags & OIL_IMPL_FLAG_MMXEXT) { klass->scanline = deinterlace_greedy_packed422_scanline_mmxext; } else if (cpu_flags & OIL_IMPL_FLAG_MMX) { diff --git a/gst/deinterlace2/tvtime/greedyh.c b/gst/deinterlace2/tvtime/greedyh.c index 037c4dfc8f..73b572fa08 100644 --- a/gst/deinterlace2/tvtime/greedyh.c +++ b/gst/deinterlace2/tvtime/greedyh.c @@ -205,7 +205,7 @@ greedyDScaler_C (GstDeinterlaceMethodGreedyH * self, uint8_t * L1, uint8_t * L2, } } -#ifdef HAVE_CPU_I386 +#ifdef BUILD_X86_ASM #define IS_MMXEXT #define SIMD_TYPE MMXEXT @@ -363,7 +363,7 @@ gst_deinterlace_method_greedy_h_class_init (GstDeinterlaceMethodGreedyHClass * { GstDeinterlaceMethodClass *dim_class = (GstDeinterlaceMethodClass *) klass; GObjectClass *gobject_class = (GObjectClass *) klass; -#ifdef HAVE_CPU_I386 +#ifdef BUILD_X86_ASM guint cpu_flags = oil_cpu_get_flags (); #endif @@ -396,7 +396,7 @@ gst_deinterlace_method_greedy_h_class_init (GstDeinterlaceMethodGreedyHClass * dim_class->nick = "greedyh"; dim_class->latency = 1; -#ifdef HAVE_CPU_I386 +#ifdef BUILD_X86_ASM if (cpu_flags & OIL_IMPL_FLAG_MMXEXT) { klass->scanline = greedyDScaler_MMXEXT; } else if (cpu_flags & OIL_IMPL_FLAG_3DNOW) { diff --git a/gst/deinterlace2/tvtime/vfir.c b/gst/deinterlace2/tvtime/vfir.c index 0f46e6f492..85ed155565 100644 --- a/gst/deinterlace2/tvtime/vfir.c +++ b/gst/deinterlace2/tvtime/vfir.c @@ -90,7 +90,7 @@ deinterlace_line_c (uint8_t * dst, uint8_t * lum_m4, } } -#ifdef HAVE_CPU_I386 +#ifdef BUILD_X86_ASM #include "mmx.h" static void deinterlace_line_mmx (uint8_t * dst, uint8_t * lum_m4, @@ -207,7 +207,7 @@ static void gst_deinterlace_method_vfir_class_init (GstDeinterlaceMethodVFIRClass * klass) { GstDeinterlaceMethodClass *dim_class = (GstDeinterlaceMethodClass *) klass; -#ifdef HAVE_CPU_I386 +#ifdef BUILD_X86_ASM guint cpu_flags = oil_cpu_get_flags (); #endif @@ -217,7 +217,7 @@ gst_deinterlace_method_vfir_class_init (GstDeinterlaceMethodVFIRClass * klass) dim_class->nick = "vfir"; dim_class->latency = 0; -#ifdef HAVE_CPU_I386 +#ifdef BUILD_X86_ASM if (cpu_flags & OIL_IMPL_FLAG_MMX) { klass->scanline = deinterlace_line_mmx; } else {