2
Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). <qt-info@nokia.com>
3
Copyright (C) 2011-2012 Collabora Ltd. <info@collabora.com>
5
This library is free software; you can redistribute it and/or modify
6
it under the terms of the GNU Lesser General Public License version 2.1
7
as published by the Free Software Foundation.
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
GNU Lesser General Public License for more details.
14
You should have received a copy of the GNU Lesser General Public License
15
along with this program. If not, see <http://www.gnu.org/licenses/>.
18
#ifndef GST_QT_GL_VIDEO_SINK_BASE_H
19
#define GST_QT_GL_VIDEO_SINK_BASE_H
21
#include "gstqtvideosinkbase.h"
22
#include <gst/interfaces/colorbalance.h>
24
#ifndef GST_QT_VIDEO_SINK_NO_OPENGL
26
#define GST_TYPE_QT_GL_VIDEO_SINK_BASE \
27
(GstQtGLVideoSinkBase::get_type())
28
#define GST_QT_GL_VIDEO_SINK_BASE(obj) \
29
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_QT_GL_VIDEO_SINK_BASE, GstQtGLVideoSinkBase))
31
struct GstQtGLVideoSinkBase
34
GstQtVideoSinkBase parent;
36
static GType get_type();
47
//index for s_colorbalance_labels
56
static void init_interfaces(GType type);
58
static void base_init(gpointer g_class);
59
static void class_init(gpointer g_class, gpointer class_data);
61
static void init(GTypeInstance *instance, gpointer g_class);
62
static void finalize(GObject *object);
64
static void implementsiface_init(GstImplementsInterfaceClass *klass, gpointer data);
65
static gboolean interface_supported(GstImplementsInterface *iface, GType type);
67
static void colorbalance_init(GstColorBalanceClass *klass, gpointer data);
68
static const GList *colorbalance_list_channels(GstColorBalance *balance);
69
static void colorbalance_set_value(GstColorBalance *balance,
70
GstColorBalanceChannel *channel,
72
static gint colorbalance_get_value(GstColorBalance *balance,
73
GstColorBalanceChannel *channel);
75
static void set_property(GObject *object, guint prop_id,
76
const GValue *value, GParamSpec *pspec);
77
static void get_property(GObject *object, guint prop_id,
78
GValue *value, GParamSpec *pspec);
80
static gboolean start(GstBaseSink *sink);
81
static GstCaps *get_caps(GstBaseSink *sink);
84
GList *m_channels_list;
85
static const char * const s_colorbalance_labels[];
86
static GstQtVideoSinkBaseClass *s_parent_class;
90
struct GstQtGLVideoSinkBaseClass
92
GstQtVideoSinkBaseClass parent_class;
95
#endif // GST_QT_VIDEO_SINK_NO_OPENGL
96
#endif // GST_QT_GL_VIDEO_SINK_BASE_H