summaryrefslogtreecommitdiff
path: root/gst/deinterlace/tvtime/tomsmocomp.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/deinterlace/tvtime/tomsmocomp.c')
-rw-r--r--gst/deinterlace/tvtime/tomsmocomp.c61
1 files changed, 29 insertions, 32 deletions
diff --git a/gst/deinterlace/tvtime/tomsmocomp.c b/gst/deinterlace/tvtime/tomsmocomp.c
index cab6fafd5..36412386d 100644
--- a/gst/deinterlace/tvtime/tomsmocomp.c
+++ b/gst/deinterlace/tvtime/tomsmocomp.c
@@ -1,6 +1,6 @@
/**
* Copyright (C) 2004 Billy Biggs <vektor@dumbterm.net>
- * Copyright (C) 2008 Sebastian Dröge <slomo@collabora.co.uk>
+ * Copyright (C) 2008,2010 Sebastian Dröge <slomo@collabora.co.uk>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -28,10 +28,9 @@
#endif
#include <stdlib.h>
-#include "_stdint.h"
#include <string.h>
-#include "gst/gst.h"
+#include <gst/gst.h>
#include "gstdeinterlace.h"
#include "plugins.h"
@@ -51,26 +50,19 @@ typedef struct
gboolean strange_bob;
} GstDeinterlaceMethodTomsMoComp;
-typedef struct
-{
- GstDeinterlaceMethodClass parent_class;
-} GstDeinterlaceMethodTomsMoCompClass;
+typedef GstDeinterlaceMethodClass GstDeinterlaceMethodTomsMoCompClass;
-static int
-Fieldcopy (void *dest, const void *src, size_t count,
- int rows, int dst_pitch, int src_pitch)
+static void
+Fieldcopy (guint8 * dest, const guint8 * src, gint count,
+ gint rows, gint dst_pitch, gint src_pitch)
{
- unsigned char *pDest = (unsigned char *) dest;
- unsigned char *pSrc = (unsigned char *) src;
-
- int i;
+ gint i;
for (i = 0; i < rows; i++) {
- oil_memcpy (pDest, pSrc, count);
- pSrc += src_pitch;
- pDest += dst_pitch;
+ oil_memcpy (dest, src, count);
+ src += src_pitch;
+ dest += dst_pitch;
}
- return 0;
}
#define USE_FOR_DSCALER
@@ -119,9 +111,9 @@ G_DEFINE_TYPE (GstDeinterlaceMethodTomsMoComp,
enum
{
- ARG_0,
- ARG_SEARCH_EFFORT,
- ARG_STRANGE_BOB
+ PROP_0,
+ PROP_SEARCH_EFFORT,
+ PROP_STRANGE_BOB
};
static void
@@ -132,10 +124,10 @@ gst_deinterlace_method_tomsmocomp_set_property (GObject * object, guint prop_id,
GST_DEINTERLACE_METHOD_TOMSMOCOMP (object);
switch (prop_id) {
- case ARG_SEARCH_EFFORT:
+ case PROP_SEARCH_EFFORT:
self->search_effort = g_value_get_uint (value);
break;
- case ARG_STRANGE_BOB:
+ case PROP_STRANGE_BOB:
self->strange_bob = g_value_get_boolean (value);
break;
default:
@@ -151,10 +143,10 @@ gst_deinterlace_method_tomsmocomp_get_property (GObject * object, guint prop_id,
GST_DEINTERLACE_METHOD_TOMSMOCOMP (object);
switch (prop_id) {
- case ARG_SEARCH_EFFORT:
+ case PROP_SEARCH_EFFORT:
g_value_set_uint (value, self->search_effort);
break;
- case ARG_STRANGE_BOB:
+ case PROP_STRANGE_BOB:
g_value_set_boolean (value, self->strange_bob);
break;
default:
@@ -175,13 +167,13 @@ static void
gobject_class->set_property = gst_deinterlace_method_tomsmocomp_set_property;
gobject_class->get_property = gst_deinterlace_method_tomsmocomp_get_property;
- g_object_class_install_property (gobject_class, ARG_SEARCH_EFFORT,
+ g_object_class_install_property (gobject_class, PROP_SEARCH_EFFORT,
g_param_spec_uint ("search-effort",
"Search Effort",
"Search Effort", 0, 27, 5, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)
);
- g_object_class_install_property (gobject_class, ARG_STRANGE_BOB,
+ g_object_class_install_property (gobject_class, PROP_STRANGE_BOB,
g_param_spec_boolean ("strange-bob",
"Strange Bob",
"Use strange bob", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)
@@ -194,16 +186,21 @@ static void
#ifdef BUILD_X86_ASM
if (cpu_flags & OIL_IMPL_FLAG_MMXEXT) {
- dim_class->deinterlace_frame = tomsmocompDScaler_MMXEXT;
+ dim_class->deinterlace_frame_yuy2 = tomsmocompDScaler_MMXEXT;
+ dim_class->deinterlace_frame_yvyu = tomsmocompDScaler_MMXEXT;
} else if (cpu_flags & OIL_IMPL_FLAG_3DNOW) {
- dim_class->deinterlace_frame = tomsmocompDScaler_3DNOW;
+ dim_class->deinterlace_frame_yuy2 = tomsmocompDScaler_3DNOW;
+ dim_class->deinterlace_frame_yvyu = tomsmocompDScaler_3DNOW;
} else if (cpu_flags & OIL_IMPL_FLAG_MMX) {
- dim_class->deinterlace_frame = tomsmocompDScaler_MMX;
+ dim_class->deinterlace_frame_yuy2 = tomsmocompDScaler_MMX;
+ dim_class->deinterlace_frame_yvyu = tomsmocompDScaler_MMX;
} else {
- dim_class->deinterlace_frame = tomsmocompDScaler_C;
+ dim_class->deinterlace_frame_yuy2 = tomsmocompDScaler_C;
+ dim_class->deinterlace_frame_yvyu = tomsmocompDScaler_C;
}
#else
- dim_class->deinterlace_frame = tomsmocompDScaler_C;
+ dim_class->deinterlace_frame_yuy2 = tomsmocompDScaler_C;
+ dim_class->deinterlace_frame_yvyu = tomsmocompDScaler_C;
#endif
}