summaryrefslogtreecommitdiffstats
path: root/gst/deinterlace2/gstdeinterlace2.h
diff options
context:
space:
mode:
Diffstat (limited to 'gst/deinterlace2/gstdeinterlace2.h')
-rw-r--r--gst/deinterlace2/gstdeinterlace2.h52
1 files changed, 30 insertions, 22 deletions
diff --git a/gst/deinterlace2/gstdeinterlace2.h b/gst/deinterlace2/gstdeinterlace2.h
index b312037c..815e04eb 100644
--- a/gst/deinterlace2/gstdeinterlace2.h
+++ b/gst/deinterlace2/gstdeinterlace2.h
@@ -1,7 +1,7 @@
/*
* GStreamer
* Copyright (C) 2005 Martin Eikermann <meiker@upb.de>
- * Copyright (C) 2008 Sebastian Dröge <slomo@circular-chaos.org>
+ * Copyright (C) 2008 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
@@ -45,29 +45,40 @@ G_BEGIN_DECLS
typedef struct _GstDeinterlace2 GstDeinterlace2;
typedef struct _GstDeinterlace2Class GstDeinterlace2Class;
-typedef struct deinterlace_setting_s deinterlace_setting_t;
-typedef struct deinterlace_method_s deinterlace_method_t;
+#define GST_TYPE_DEINTERLACE_METHOD (gst_deinterlace_method_get_type ())
+#define GST_IS_DEINTERLACE_METHOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_DEINTERLACE_METHOD))
+#define GST_IS_DEINTERLACE_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_DEINTERLACE_METHOD))
+#define GST_DEINTERLACE_METHOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_DEINTERLACE_METHOD, GstDeinterlaceMethodClass))
+#define GST_DEINTERLACE_METHOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_DEINTERLACE_METHOD, GstDeinterlaceMethod))
+#define GST_DEINTERLACE_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DEINTERLACE_METHOD, GstDeinterlaceMethodClass))
+#define GST_DEINTERLACE_METHOD_CAST(obj) ((GstDeinterlaceMethod*)(obj))
-typedef void (*deinterlace_frame_t) (GstDeinterlace2 * object);
+typedef struct _GstDeinterlaceMethod GstDeinterlaceMethod;
+typedef struct _GstDeinterlaceMethodClass GstDeinterlaceMethodClass;
/*
* This structure defines the deinterlacer plugin.
*/
-struct deinterlace_method_s
-{
- int version;
- const char *name;
- const char *short_name;
- int fields_required;
- int accelrequired;
- int doscalerbob;
- int numsettings;
- deinterlace_setting_t *settings;
- int scanlinemode;
- deinterlace_frame_t deinterlace_frame;
- const char *description[10];
+
+struct _GstDeinterlaceMethod {
+ GstObject parent;
};
+struct _GstDeinterlaceMethodClass {
+ GstObjectClass parent_class;
+ guint fields_required;
+ guint latency;
+
+ gboolean available;
+
+ void (*deinterlace_frame) (GstDeinterlaceMethod *self, GstDeinterlace2 * object);
+
+ const gchar *name;
+ const gchar *nick;
+};
+
+GType gst_deinterlace_method_get_type (void);
+
#define MAX_FIELD_HISTORY 10
#define PICTURE_PROGRESSIVE 0
@@ -75,8 +86,6 @@ struct deinterlace_method_s
#define PICTURE_INTERLACED_TOP 2
#define PICTURE_INTERLACED_MASK (PICTURE_INTERLACED_BOTTOM | PICTURE_INTERLACED_TOP)
-typedef void (MEMCPY_FUNC) (void *pOutput, const void *pInput, size_t nSize);
-
typedef struct
{
/* pointer to the start of data for this field */
@@ -87,7 +96,7 @@ typedef struct
typedef enum
{
- GST_DEINTERLACE2_TOM,
+ GST_DEINTERLACE2_TOMSMOCOMP,
GST_DEINTERLACE2_GREEDY_H,
GST_DEINTERLACE2_GREEDY_L,
GST_DEINTERLACE2_VFIR
@@ -115,7 +124,6 @@ struct _GstDeinterlace2
guint history_count;
- guint cpu_feature_flags;
GstDeinterlace2FieldLayout field_layout;
guint frame_size;
@@ -124,7 +132,7 @@ struct _GstDeinterlace2
GstDeinterlace2Fields fields;
GstDeinterlace2Methods method_id;
- deinterlace_method_t *method;
+ GstDeinterlaceMethod *method;
/* The most recent pictures
PictureHistory[0] is always the most recent.