diff options
Diffstat (limited to 'gst/deinterlace/tvtime/tomsmocomp.c')
-rw-r--r-- | gst/deinterlace/tvtime/tomsmocomp.c | 61 |
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 } |