diff options
author | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2003-10-10 12:47:42 +0000 |
---|---|---|
committer | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2003-10-10 12:47:42 +0000 |
commit | aa94247770732a40e46ab3d539dd9987062abef4 (patch) | |
tree | 1509ca08f33718ccb6cb63f1c1ad1f5b4752801b /gst-libs/gst/tuner | |
parent | 39b91cdb495b9f9b326e79a10f64753a097c203c (diff) | |
download | gst-plugins-bad-aa94247770732a40e46ab3d539dd9987062abef4.tar.gz gst-plugins-bad-aa94247770732a40e46ab3d539dd9987062abef4.tar.bz2 gst-plugins-bad-aa94247770732a40e46ab3d539dd9987062abef4.zip |
Some interface implementations for video4linux/video4linux2 plugins: a Tuner interface, with which one can select inp...
Original commit message from CVS:
Some interface implementations for video4linux/video4linux2 plugins:
* a Tuner interface, with which one can select inputs and stations. Audio
work is underway here, but unfinished.
* A Xoverlay interface with which one can do simple overlay. Similar to
the API of the v4l/Xv XFree86 extension. Widget implementation for
GTK-2.0 coming up in the sandbox.
* Colorbalance - for adapting colors (brightness, contrast, etc.) - pretty
basic and maybe somewhat overdesigned. But it'll do for now.
Apart from these interfaces, there's also a loadable library 'xwindowlistener'
that listenes to X for the movement of a window and the overlap of other
windows. This is partly copied from xawtv (and thus partly GPL :(), but it's
needed for the xoverlay interface implementation in the v4l/v4l2 elements.
Lastly, some small changes to remove redundant properties from the v4l/v4l2
elements since these can be done much simpler. Comments appreciated!
Diffstat (limited to 'gst-libs/gst/tuner')
-rw-r--r-- | gst-libs/gst/tuner/Makefile.am | 17 | ||||
-rw-r--r-- | gst-libs/gst/tuner/tuner.c | 190 | ||||
-rw-r--r-- | gst-libs/gst/tuner/tuner.h | 96 | ||||
-rw-r--r-- | gst-libs/gst/tuner/tunerchannel.c | 114 | ||||
-rw-r--r-- | gst-libs/gst/tuner/tunerchannel.h | 77 | ||||
-rw-r--r-- | gst-libs/gst/tuner/tunernorm.c | 95 | ||||
-rw-r--r-- | gst-libs/gst/tuner/tunernorm.h | 55 |
7 files changed, 644 insertions, 0 deletions
diff --git a/gst-libs/gst/tuner/Makefile.am b/gst-libs/gst/tuner/Makefile.am new file mode 100644 index 00000000..e349eb32 --- /dev/null +++ b/gst-libs/gst/tuner/Makefile.am @@ -0,0 +1,17 @@ +libgstinterfacesincludedir = \ + $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/tuner + +libgstinterfacesinclude_HEADERS = \ + tuner.h \ + tunernorm.h \ + tunerchannel.h + +lib_LTLIBRARIES = libgsttuner.la + +libgsttuner_la_SOURCES = \ + tuner.c \ + tunernorm.c \ + tunerchannel.c +libgsttuner_la_LIBADD = +libgsttuner_la_CFLAGS = $(GST_CFLAGS) $(GST_OPT_CFLAGS) +libgsttuner_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) diff --git a/gst-libs/gst/tuner/tuner.c b/gst-libs/gst/tuner/tuner.c new file mode 100644 index 00000000..43dda8d0 --- /dev/null +++ b/gst-libs/gst/tuner/tuner.c @@ -0,0 +1,190 @@ +/* GStreamer Tuner + * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net> + * + * tuner.c: tuner design virtual class function wrappers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "tuner.h" + +static void gst_tuner_class_init (GstTunerClass *klass); + +GType +gst_tuner_get_type (void) +{ + static GType gst_tuner_type = 0; + + if (!gst_tuner_type) { + static const GTypeInfo gst_tuner_info = { + sizeof (GstTunerClass), + (GBaseInitFunc) gst_tuner_class_init, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + NULL, + }; + + gst_tuner_type = g_type_register_static (G_TYPE_INTERFACE, + "GstTuner", + &gst_tuner_info, 0); + g_type_interface_add_prerequisite (gst_tuner_type, + GST_TYPE_INTERFACE); + } + + return gst_tuner_type; +} + +static void +gst_tuner_class_init (GstTunerClass *klass) +{ + /* default virtual functions */ + klass->list_channels = NULL; + klass->set_channel = NULL; + klass->get_channel = NULL; + + klass->list_norms = NULL; + klass->set_norm = NULL; + klass->get_norm = NULL; + + klass->set_frequency = NULL; + klass->get_frequency = NULL; + klass->signal_strength = NULL; +} + +const GList * +gst_tuner_list_channels (GstTuner *tuner) +{ + GstTunerClass *klass = GST_TUNER_GET_CLASS (tuner); + + if (klass->list_channels) { + return klass->list_channels (tuner); + } + + return NULL; +} + +void +gst_tuner_set_channel (GstTuner *tuner, + GstTunerChannel *channel) +{ + GstTunerClass *klass = GST_TUNER_GET_CLASS (tuner); + + if (klass->set_channel) { + klass->set_channel (tuner, channel); + } +} + +const GstTunerChannel * +gst_tuner_get_channel (GstTuner *tuner) +{ + GstTunerClass *klass = GST_TUNER_GET_CLASS (tuner); + + if (klass->get_channel) { + return klass->get_channel (tuner); + } + + return NULL; +} + +const GList * +gst_tuner_list_norms (GstTuner *tuner) +{ + GstTunerClass *klass = GST_TUNER_GET_CLASS (tuner); + + if (klass->list_norms) { + return klass->list_norms (tuner); + } + + return NULL; +} + +void +gst_tuner_set_norm (GstTuner *tuner, + GstTunerNorm *norm) +{ + GstTunerClass *klass = GST_TUNER_GET_CLASS (tuner); + + if (klass->set_norm) { + klass->set_norm (tuner, norm); + } +} + +const GstTunerNorm * +gst_tuner_get_norm (GstTuner *tuner) +{ + GstTunerClass *klass = GST_TUNER_GET_CLASS (tuner); + + if (klass->get_norm) { + return klass->get_norm (tuner); + } + + return NULL; +} + +void +gst_tuner_set_frequency (GstTuner *tuner, + GstTunerChannel *channel, + gulong frequency) +{ + GstTunerClass *klass = GST_TUNER_GET_CLASS (tuner); + + g_return_if_fail (GST_TUNER_CHANNEL_HAS_FLAG (channel, + GST_TUNER_CHANNEL_FREQUENCY)); + + if (klass->set_frequency) { + klass->set_frequency (tuner, channel, frequency); + } +} + +gulong +gst_tuner_get_frequency (GstTuner *tuner, + GstTunerChannel *channel) +{ + GstTunerClass *klass = GST_TUNER_GET_CLASS (tuner); + + g_return_val_if_fail (GST_TUNER_CHANNEL_HAS_FLAG (channel, + GST_TUNER_CHANNEL_FREQUENCY), 0); + + if (klass->get_frequency) { + return klass->get_frequency (tuner, channel); + } + + return 0; +} + +gint +gst_tuner_signal_strength (GstTuner *tuner, + GstTunerChannel *channel) +{ + GstTunerClass *klass = GST_TUNER_GET_CLASS (tuner); + + g_return_val_if_fail (GST_TUNER_CHANNEL_HAS_FLAG (channel, + GST_TUNER_CHANNEL_FREQUENCY), 0); + + if (klass->signal_strength) { + return klass->signal_strength (tuner, channel); + } + + return 0; +} diff --git a/gst-libs/gst/tuner/tuner.h b/gst-libs/gst/tuner/tuner.h new file mode 100644 index 00000000..1cd51e11 --- /dev/null +++ b/gst-libs/gst/tuner/tuner.h @@ -0,0 +1,96 @@ +/* GStreamer Tuner + * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net> + * + * tuner.h: tuner interface design + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_TUNER_H__ +#define __GST_TUNER_H__ + +#include <gst/gst.h> +#include <gst/tuner/tunernorm.h> +#include <gst/tuner/tunerchannel.h> + +G_BEGIN_DECLS + +#define GST_TYPE_TUNER \ + (gst_tuner_get_type ()) +#define GST_TUNER(obj) \ + (GST_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TUNER, GstTuner)) +#define GST_TUNER_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TUNER, GstTunerClass)) +#define GST_IS_TUNER(obj) \ + (GST_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TUNER)) +#define GST_IS_TUNER_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TUNER)) +#define GST_TUNER_GET_CLASS(inst) \ + (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_TUNER, GstTunerClass)) + +typedef struct _GstTuner GstTuner; + +typedef struct _GstTunerClass { + GTypeInterface klass; + + /* virtual functions */ + const GList * (* list_channels) (GstTuner *tuner); + void (* set_channel) (GstTuner *tuner, + GstTunerChannel *channel); + const GstTunerChannel * + (* get_channel) (GstTuner *tuner); + + const GList * (* list_norms) (GstTuner *tuner); + void (* set_norm) (GstTuner *tuner, + GstTunerNorm *norm); + const GstTunerNorm * + (* get_norm) (GstTuner *tuner); + + void (* set_frequency) (GstTuner *tuner, + GstTunerChannel *channel, + gulong frequency); + gulong (* get_frequency) (GstTuner *tuner, + GstTunerChannel *channel); + gint (* signal_strength) (GstTuner *tuner, + GstTunerChannel *channel); +} GstTunerClass; + +GType gst_tuner_get_type (void); + +/* virtual class function wrappers */ +const GList * gst_tuner_list_channels (GstTuner *tuner); +void gst_tuner_set_channel (GstTuner *tuner, + GstTunerChannel *channel); +const GstTunerChannel * + gst_tuner_get_channel (GstTuner *tuner); + +const GList * gst_tuner_list_norms (GstTuner *tuner); +void gst_tuner_set_norm (GstTuner *tuner, + GstTunerNorm *channel); +const GstTunerNorm * + gst_tuner_get_norm (GstTuner *tuner); + +void gst_tuner_set_frequency (GstTuner *tuner, + GstTunerChannel *channel, + gulong frequency); +gulong gst_tuner_get_frequency (GstTuner *tuner, + GstTunerChannel *channel); +gint gst_tuner_signal_strength (GstTuner *tuner, + GstTunerChannel *channel); + +G_END_DECLS + +#endif /* __GST_TUNER_H__ */ diff --git a/gst-libs/gst/tuner/tunerchannel.c b/gst-libs/gst/tuner/tunerchannel.c new file mode 100644 index 00000000..aa98978e --- /dev/null +++ b/gst-libs/gst/tuner/tunerchannel.c @@ -0,0 +1,114 @@ +/* GStreamer Tuner + * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net> + * + * tunerchannel.c: tuner channel object design + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "tunerchannel.h" + +enum { + /* FILL ME */ + SIGNAL_FREQUENCY_CHANGED, + SIGNAL_SIGNAL_CHANGED, + LAST_SIGNAL +}; + +static void gst_tuner_channel_class_init (GstTunerChannelClass *klass); +static void gst_tuner_channel_init (GstTunerChannel *channel); +static void gst_tuner_channel_dispose (GObject *object); + +static GObjectClass *parent_class = NULL; +static guint signals[LAST_SIGNAL] = { 0 }; + +GType +gst_tuner_channel_get_type (void) +{ + static GType gst_tuner_channel_type = 0; + + if (!gst_tuner_channel_type) { + static const GTypeInfo tuner_channel_info = { + sizeof (GstTunerChannelClass), + NULL, + NULL, + (GClassInitFunc) gst_tuner_channel_class_init, + NULL, + NULL, + sizeof (GstTunerChannel), + 0, + (GInstanceInitFunc) gst_tuner_channel_init, + NULL + }; + + gst_tuner_channel_type = + g_type_register_static (G_TYPE_OBJECT, + "GstTunerChannel", + &tuner_channel_info, 0); + } + + return gst_tuner_channel_type; +} + +static void +gst_tuner_channel_class_init (GstTunerChannelClass *klass) +{ + GObjectClass *object_klass = (GObjectClass *) klass; + + parent_class = g_type_class_ref (G_TYPE_OBJECT); + + signals[SIGNAL_FREQUENCY_CHANGED] = + g_signal_new ("frequency_changed", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GstTunerChannelClass, + frequency_changed), + NULL, NULL, g_cclosure_marshal_VOID__ULONG, + G_TYPE_NONE, 1, G_TYPE_ULONG); + signals[SIGNAL_SIGNAL_CHANGED] = + g_signal_new ("signal_changed", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GstTunerChannelClass, + signal_changed), + NULL, NULL, g_cclosure_marshal_VOID__INT, + G_TYPE_NONE, 1, G_TYPE_INT); + + object_klass->dispose = gst_tuner_channel_dispose; +} + +static void +gst_tuner_channel_init (GstTunerChannel *channel) +{ + channel->label = NULL; + channel->flags = 0; + channel->min_frequency = channel->max_frequency = 0; + channel->min_signal = channel->max_signal = 0; +} + +static void +gst_tuner_channel_dispose (GObject *object) +{ + GstTunerChannel *channel = GST_TUNER_CHANNEL (object); + + if (channel->label) + g_free (channel->label); + + if (parent_class->dispose) + parent_class->dispose (object); +} diff --git a/gst-libs/gst/tuner/tunerchannel.h b/gst-libs/gst/tuner/tunerchannel.h new file mode 100644 index 00000000..b8031455 --- /dev/null +++ b/gst-libs/gst/tuner/tunerchannel.h @@ -0,0 +1,77 @@ +/* GStreamer Tuner + * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net> + * + * tunerchannel.h: tuner channel object design + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_TUNER_CHANNEL_H__ +#define __GST_TUNER_CHANNEL_H__ + +#include <gst/gst.h> + +G_BEGIN_DECLS + +#define GST_TYPE_TUNER_CHANNEL \ + (gst_tuner_channel_get_type ()) +#define GST_TUNER_CHANNEL(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TUNER_CHANNEL, \ + GstTunerChannel)) +#define GST_TUNER_CHANNEL_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TUNER_CHANNEL, \ + GstTunerChannelClass)) +#define GST_IS_TUNER_CHANNEL(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TUNER_CHANNEL)) +#define GST_IS_TUNER_CHANNEL_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TUNER_CHANNEL)) + +typedef enum { + GST_TUNER_CHANNEL_INPUT = (1<<0), + GST_TUNER_CHANNEL_OUTPUT = (1<<1), + GST_TUNER_CHANNEL_FREQUENCY = (1<<2), + GST_TUNER_CHANNEL_AUDIO = (1<<3), +} GstTunerChannelFlags; + +#define GST_TUNER_CHANNEL_HAS_FLAG(channel, flag) \ + ((channel)->flags & flag) + +typedef struct _GstTunerChannel { + GObject parent; + + gchar *label; + GstTunerChannelFlags flags; + gulong min_frequency, + max_frequency; + gint min_signal, + max_signal; +} GstTunerChannel; + +typedef struct _GstTunerChannelClass { + GObjectClass parent; + + /* signals */ + void (*frequency_changed) (GstTunerChannel *tuner, + gulong frequency); + void (*signal_changed) (GstTunerChannel *tuner, + gint signal); +} GstTunerChannelClass; + +GType gst_tuner_channel_get_type (void); + +G_END_DECLS + +#endif /* __GST_TUNER_CHANNEL_H__ */ diff --git a/gst-libs/gst/tuner/tunernorm.c b/gst-libs/gst/tuner/tunernorm.c new file mode 100644 index 00000000..48d75de2 --- /dev/null +++ b/gst-libs/gst/tuner/tunernorm.c @@ -0,0 +1,95 @@ +/* GStreamer Tuner + * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net> + * + * tunernorm.c: tuner norm object design + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "tunernorm.h" + +enum { + /* FILL ME */ + LAST_SIGNAL +}; + +static void gst_tuner_norm_class_init (GstTunerNormClass *klass); +static void gst_tuner_norm_init (GstTunerNorm *norm); +static void gst_tuner_norm_dispose (GObject *object); + +static GObjectClass *parent_class = NULL; +/*static guint signals[LAST_SIGNAL] = { 0 };*/ + +GType +gst_tuner_norm_get_type (void) +{ + static GType gst_tuner_norm_type = 0; + + if (!gst_tuner_norm_type) { + static const GTypeInfo tuner_norm_info = { + sizeof (GstTunerNormClass), + NULL, + NULL, + (GClassInitFunc) gst_tuner_norm_class_init, + NULL, + NULL, + sizeof (GstTunerNorm), + 0, + (GInstanceInitFunc) gst_tuner_norm_init, + NULL + }; + + gst_tuner_norm_type = + g_type_register_static (G_TYPE_OBJECT, + "GstTunerNorm", + &tuner_norm_info, 0); + } + + return gst_tuner_norm_type; +} + +static void +gst_tuner_norm_class_init (GstTunerNormClass *klass) +{ + GObjectClass *object_klass = (GObjectClass *) klass; + + parent_class = g_type_class_ref (G_TYPE_OBJECT); + + object_klass->dispose = gst_tuner_norm_dispose; +} + +static void +gst_tuner_norm_init (GstTunerNorm *norm) +{ + norm->label = NULL; + norm->fps = 0.; +} + +static void +gst_tuner_norm_dispose (GObject *object) +{ + GstTunerNorm *norm = GST_TUNER_NORM (object); + + if (norm->label) + g_free (norm->label); + + if (parent_class->dispose) + parent_class->dispose (object); +} diff --git a/gst-libs/gst/tuner/tunernorm.h b/gst-libs/gst/tuner/tunernorm.h new file mode 100644 index 00000000..3e6e801d --- /dev/null +++ b/gst-libs/gst/tuner/tunernorm.h @@ -0,0 +1,55 @@ +/* GStreamer Tuner + * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net> + * + * tunernorm.h: tuner norm object design + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_TUNER_NORM_H__ +#define __GST_TUNER_NORM_H__ + +#include <gst/gst.h> + +G_BEGIN_DECLS + +#define GST_TYPE_TUNER_NORM \ + (gst_tuner_norm_get_type ()) +#define GST_TUNER_NORM(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TUNER_NORM, GstTunerNorm)) +#define GST_TUNER_NORM_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TUNER_NORM, GstTunerNormClass)) +#define GST_IS_TUNER_NORM(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TUNER_NORM)) +#define GST_IS_TUNER_NORM_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TUNER_NORM)) + +typedef struct _GstTunerNorm { + GObject parent; + + gchar *label; + gfloat fps; +} GstTunerNorm; + +typedef struct _GstTunerNormClass { + GObjectClass parent; +} GstTunerNormClass; + +GType gst_tuner_norm_get_type (void); + +G_END_DECLS + +#endif /* __GST_TUNER_NORM_H__ */ |