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 \
#include "config.h"
#endif
-#include "gstdeinterlace2.h"
#include <gst/gst.h>
#include <gst/video/video.h>
+#include <liboil/liboil.h>
+#include "gstdeinterlace2.h"
#include "tvtime/plugins.h"
#include <string.h>
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"},
}
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;
"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,
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;
#ifndef __GST_DEINTERLACE_2_H__
#define __GST_DEINTERLACE_2_H__
+#include <gst/gst.h>
+#include <gst/base/gstbasetransform.h>
#include <liboil/liboil.h>
-#include <liboil/liboilfunction.h>
#include <liboil/liboilcpu.h>
+#include <liboil/liboilfunction.h>
-#include <gst/gst.h>
-#include <gst/base/gstbasetransform.h>
+#ifdef HAVE_GCC_ASM
+#if defined(HAVE_CPU_I386) || defined(HAVE_CPU_X86_64)
+#define BUILD_X86_ASM
+#endif
+#endif
G_BEGIN_DECLS
}
}
-#ifdef HAVE_CPU_I386
+#ifdef BUILD_X86_ASM
#include "mmx.h"
static void
deinterlace_greedy_packed422_scanline_mmx (GstDeinterlaceMethodGreedyL * self,
{
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
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) {
}
}
-#ifdef HAVE_CPU_I386
+#ifdef BUILD_X86_ASM
#define IS_MMXEXT
#define SIMD_TYPE MMXEXT
{
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
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) {
}
}
-#ifdef HAVE_CPU_I386
+#ifdef BUILD_X86_ASM
#include "mmx.h"
static void
deinterlace_line_mmx (uint8_t * dst, uint8_t * lum_m4,
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
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 {