+2004-01-08 Benjamin Otte <in7y118@public.uni-hamburg.de>
+
+ * gst/gstutils.h:
+ Add GST_BOILERPLATE(_FULL), GST_PARENT_CALL and
+ GST_PARENT_CALL_WITH_DEFAULT
+ * gst/elements/gstaggregator.c:
+ * gst/elements/gstbufferstore.c:
+ * gst/elements/gstfakesink.c:
+ * gst/elements/gstfakesrc.c:
+ * gst/elements/gstfdsink.c:
+ * gst/elements/gstfdsrc.c:
+ * gst/elements/gstfilesink.c:
+ * gst/elements/gstfilesrc.c:
+ * gst/elements/gstidentity.c:
+ * gst/elements/gstmd5sink.c:
+ * gst/elements/gstmultidisksrc.c:
+ * gst/elements/gstpipefilter.c:
+ * gst/elements/gstshaper.c:
+ * gst/elements/gststatistics.c:
+ * gst/elements/gsttee.c:
+ * gst/elements/gsttypefindelement.c:
+ use them.
+
2004-01-07 Thomas Vander Stichele <thomas at apestaart dot org>
* docs/gst/gstreamer-docs.sgml: remove props
#define AGGREGATOR_IS_LOOP_BASED(ag) ((ag)->sched != AGGREGATOR_CHAIN)
-static void gst_aggregator_base_init (gpointer g_class);
-static void gst_aggregator_class_init (GstAggregatorClass *klass);
-static void gst_aggregator_init (GstAggregator *aggregator);
-
static GstPad* gst_aggregator_request_new_pad (GstElement *element, GstPadTemplate *temp, const
gchar *unused);
static void gst_aggregator_update_functions (GstAggregator *aggregator);
static void gst_aggregator_chain (GstPad *pad, GstData *_data);
static void gst_aggregator_loop (GstElement *element);
-static GstElementClass *parent_class = NULL;
-/*static guint gst_aggregator_signals[LAST_SIGNAL] = { 0 };*/
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_aggregator_debug, "aggregator", 0, "aggregator element");
-GType
-gst_aggregator_get_type (void)
-{
- static GType aggregator_type = 0;
-
- if (!aggregator_type) {
- static const GTypeInfo aggregator_info = {
- sizeof(GstAggregatorClass),
- gst_aggregator_base_init,
- NULL,
- (GClassInitFunc)gst_aggregator_class_init,
- NULL,
- NULL,
- sizeof(GstAggregator),
- 0,
- (GInstanceInitFunc)gst_aggregator_init,
- };
- aggregator_type = g_type_register_static (GST_TYPE_ELEMENT, "GstAggregator", &aggregator_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_aggregator_debug, "aggregator", 0, "aggregator element");
- }
- return aggregator_type;
-}
+GST_BOILERPLATE_FULL (GstAggregator, gst_aggregator, GstElement, GST_TYPE_ELEMENT, _do_init);
static void
gst_aggregator_base_init (gpointer g_class)
gobject_class = (GObjectClass*) klass;
gstelement_class = (GstElementClass*) klass;
- parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_NUM_PADS,
g_param_spec_int ("num_pads", "Num pads", "The number of source pads",
# include "config.h"
#endif
#include "gstbufferstore.h"
+#include <gst/gstutils.h>
#include <string.h>
GST_DEBUG_CATEGORY_STATIC (gst_buffer_store_debug);
};
-static void gst_buffer_store_class_init (gpointer g_class,
- gpointer class_data);
-static void gst_buffer_store_init (GTypeInstance * instance,
- gpointer g_class);
static void gst_buffer_store_dispose (GObject * object);
static gboolean gst_buffer_store_add_buffer_func (GstBufferStore * store,
GstBuffer * buffer);
static void gst_buffer_store_cleared_func (GstBufferStore * store);
-static GObjectClass *parent_class = NULL;
static guint gst_buffer_store_signals[LAST_SIGNAL] = { 0 };
+GST_BOILERPLATE (GstBufferStore, gst_buffer_store, GObject, G_TYPE_OBJECT);
+
+
G_GNUC_UNUSED static void
debug_buffers (GstBufferStore *store)
{
}
g_printerr ("\n");
}
-GType
-gst_buffer_store_get_type (void)
-{
- static GType store_type = 0;
-
- if (!store_type) {
- static const GTypeInfo store_info = {
- sizeof (GstBufferStoreClass),
- NULL,
- NULL,
- gst_buffer_store_class_init,
- NULL,
- NULL,
- sizeof (GstBufferStore),
- 0,
- gst_buffer_store_init,
- NULL
- };
- store_type = g_type_register_static (G_TYPE_OBJECT,
- "GstBufferStore",
- &store_info, 0);
-
- /* FIXME: better description anyone? */
- GST_DEBUG_CATEGORY_INIT (gst_buffer_store_debug, "bufferstore", 0, "store all data");
- }
- return store_type;
-}
static gboolean
continue_accu (GSignalInvocationHint *ihint, GValue *return_accu,
const GValue *handler_return, gpointer data)
return do_continue;
}
static void
-gst_buffer_store_class_init (gpointer g_class, gpointer class_data)
+gst_buffer_store_base_init (gpointer g_class)
{
- GObjectClass *gobject_class;
- GstBufferStoreClass *store_class;
-
- gobject_class = G_OBJECT_CLASS (g_class);
- store_class = GST_BUFFER_STORE_CLASS (g_class);
-
- parent_class = g_type_class_peek_parent (g_class);
+}
+static void
+gst_buffer_store_class_init (GstBufferStoreClass *store_class)
+{
+ GObjectClass *gobject_class = G_OBJECT_CLASS (store_class);
gobject_class->dispose = gst_buffer_store_dispose;
gst_buffer_store_signals[CLEARED] = g_signal_new ("cleared",
- G_TYPE_FROM_CLASS (g_class), G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS (store_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstBufferStoreClass, cleared), NULL, NULL,
gst_marshal_VOID__VOID, G_TYPE_NONE, 0);
gst_buffer_store_signals[BUFFER_ADDED] = g_signal_new ("buffer-added",
- G_TYPE_FROM_CLASS (g_class), G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS (store_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstBufferStoreClass, buffer_added), continue_accu, NULL,
gst_marshal_BOOLEAN__POINTER, G_TYPE_BOOLEAN, 1, GST_TYPE_BUFFER);
store_class->buffer_added = gst_buffer_store_add_buffer_func;
}
static void
-gst_buffer_store_init (GTypeInstance *instance, gpointer g_class)
+gst_buffer_store_init (GstBufferStore *store)
{
- GstBufferStore *store = GST_BUFFER_STORE (instance);
-
store->buffers = NULL;
}
static void
return fakesink_state_error_type;
}
-static void gst_fakesink_base_init (gpointer g_class);
-static void gst_fakesink_class_init (GstFakeSinkClass *klass);
-static void gst_fakesink_init (GstFakeSink *fakesink);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_fakesink_debug, "fakesink", 0, "fakesink element");
+
+GST_BOILERPLATE_FULL (GstFakeSink, gst_fakesink, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_fakesink_set_clock (GstElement *element, GstClock *clock);
static GstPad* gst_fakesink_request_new_pad (GstElement *element, GstPadTemplate *templ, const
static void gst_fakesink_chain (GstPad *pad, GstData *_data);
-static GstElementClass *parent_class = NULL;
static guint gst_fakesink_signals[LAST_SIGNAL] = { 0 };
-GType
-gst_fakesink_get_type (void)
-{
- static GType fakesink_type = 0;
-
- if (!fakesink_type) {
- static const GTypeInfo fakesink_info = {
- sizeof(GstFakeSinkClass),
- gst_fakesink_base_init,
- NULL,
- (GClassInitFunc)gst_fakesink_class_init,
- NULL,
- NULL,
- sizeof(GstFakeSink),
- 0,
- (GInstanceInitFunc)gst_fakesink_init,
- };
- fakesink_type = g_type_register_static (GST_TYPE_ELEMENT, "GstFakeSink", &fakesink_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_fakesink_debug, "fakesink", 0, "fakesink element");
- }
- return fakesink_type;
-}
-
static void
gst_fakesink_base_init (gpointer g_class)
{
gobject_class = (GObjectClass*)klass;
gstelement_class = (GstElementClass*)klass;
- parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_NUM_SINKS,
g_param_spec_int ("num_sinks", "Number of sinks", "The number of sinkpads",
};
if (!fakesrc_output_type) {
fakesrc_output_type = g_enum_register_static ("GstFakeSrcOutput", fakesrc_output);
-
- GST_DEBUG_CATEGORY_INIT (gst_fakesrc_debug, "fakesrc", 0, "fakesrc element");
}
return fakesrc_output_type;
}
return fakesrc_filltype_type;
}
-static void gst_fakesrc_base_init (gpointer g_class);
-static void gst_fakesrc_class_init (GstFakeSrcClass *klass);
-static void gst_fakesrc_init (GstFakeSrc *fakesrc);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_fakesrc_debug, "fakesrc", 0, "fakesrc element");
+
+GST_BOILERPLATE_FULL (GstFakeSrc, gst_fakesrc, GstElement, GST_TYPE_ELEMENT, _do_init);
static GstPad* gst_fakesrc_request_new_pad (GstElement *element, GstPadTemplate *templ,const gchar *unused);
static void gst_fakesrc_update_functions (GstFakeSrc *src);
static GstData* gst_fakesrc_get (GstPad *pad);
static void gst_fakesrc_loop (GstElement *element);
-static GstElementClass *parent_class = NULL;
static guint gst_fakesrc_signals[LAST_SIGNAL] = { 0 };
-GType
-gst_fakesrc_get_type (void)
-{
- static GType fakesrc_type = 0;
-
- if (!fakesrc_type) {
- static const GTypeInfo fakesrc_info = {
- sizeof(GstFakeSrcClass),
- gst_fakesrc_base_init,
- NULL,
- (GClassInitFunc)gst_fakesrc_class_init,
- NULL,
- NULL,
- sizeof(GstFakeSrc),
- 0,
- (GInstanceInitFunc)gst_fakesrc_init,
- };
- fakesrc_type = g_type_register_static (GST_TYPE_ELEMENT, "GstFakeSrc", &fakesrc_info, 0);
- }
- return fakesrc_type;
-}
-
static void
gst_fakesrc_base_init (gpointer g_class)
{
gobject_class = (GObjectClass*)klass;
gstelement_class = (GstElementClass*)klass;
- parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_NUM_SOURCES,
g_param_spec_int ("num-sources", "num-sources", "Number of sources",
};
-static void gst_fdsink_base_init (gpointer g_class);
-static void gst_fdsink_class_init (GstFdSinkClass *klass);
-static void gst_fdsink_init (GstFdSink *fdsink);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_fdsink_debug, "fdsink", 0, "fdsink element");
+
+GST_BOILERPLATE_FULL (GstFdSink, gst_fdsink, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_fdsink_set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec);
static void gst_fdsink_chain (GstPad *pad,GstData *_data);
-static GstElementClass *parent_class = NULL;
-/*static guint gst_fdsink_signals[LAST_SIGNAL] = { 0 };*/
-
-GType
-gst_fdsink_get_type (void)
-{
- static GType fdsink_type = 0;
-
- if (!fdsink_type) {
- static const GTypeInfo fdsink_info = {
- sizeof(GstFdSinkClass),
- gst_fdsink_base_init,
- NULL,
- (GClassInitFunc)gst_fdsink_class_init,
- NULL,
- NULL,
- sizeof(GstFdSink),
- 0,
- (GInstanceInitFunc)gst_fdsink_init,
- };
- fdsink_type = g_type_register_static (GST_TYPE_ELEMENT, "GstFdSink", &fdsink_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_fdsink_debug, "fdsink", 0, "fdsink element");
- }
- return fdsink_type;
-}
static void
gst_fdsink_base_init (gpointer g_class)
gobject_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_FD,
g_param_spec_int ("fd", "fd", "An open file descriptor to write to",
ARG_BLOCKSIZE,
};
-static void gst_fdsrc_base_init (gpointer g_class);
-static void gst_fdsrc_class_init (GstFdSrcClass *klass);
-static void gst_fdsrc_init (GstFdSrc *fdsrc);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_fdsrc_debug, "fdsrc", 0, "fdsrc element");
+
+GST_BOILERPLATE_FULL (GstFdSrc, gst_fdsrc, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_fdsrc_set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec);
static GstData * gst_fdsrc_get (GstPad *pad);
-static GstElementClass *parent_class = NULL;
-/*static guint gst_fdsrc_signals[LAST_SIGNAL] = { 0 };*/
-
-GType
-gst_fdsrc_get_type (void)
-{
- static GType fdsrc_type = 0;
-
- if (!fdsrc_type) {
- static const GTypeInfo fdsrc_info = {
- sizeof(GstFdSrcClass),
- gst_fdsrc_base_init,
- NULL,
- (GClassInitFunc)gst_fdsrc_class_init,
- NULL,
- NULL,
- sizeof(GstFdSrc),
- 0,
- (GInstanceInitFunc)gst_fdsrc_init,
- };
- fdsrc_type = g_type_register_static (GST_TYPE_ELEMENT, "GstFdSrc", &fdsrc_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_fdsrc_debug, "fdsrc", 0, "fdsrc element");
- }
- return fdsrc_type;
-}
-
static void
gst_fdsrc_base_init (gpointer g_class)
{
gobject_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_ref(GST_TYPE_ELEMENT);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_FD,
g_param_spec_int ("fd", "fd", "An open file descriptor to read from",
)
-static void gst_filesink_base_init (gpointer g_class);
-static void gst_filesink_class_init (GstFileSinkClass *klass);
-static void gst_filesink_init (GstFileSink *filesink);
static void gst_filesink_dispose (GObject *object);
static void gst_filesink_set_property (GObject *object, guint prop_id,
static GstElementStateReturn gst_filesink_change_state (GstElement *element);
-static GstElementClass *parent_class = NULL;
static guint gst_filesink_signals[LAST_SIGNAL] = { 0 };
-GType
-gst_filesink_get_type (void)
+static void
+_do_init (GType filesink_type)
{
- static GType filesink_type = 0;
-
- if (!filesink_type) {
- static const GTypeInfo filesink_info = {
- sizeof(GstFileSinkClass),
- gst_filesink_base_init,
- NULL,
- (GClassInitFunc)gst_filesink_class_init,
- NULL,
- NULL,
- sizeof(GstFileSink),
- 0,
- (GInstanceInitFunc)gst_filesink_init,
- };
- static const GInterfaceInfo urihandler_info = {
- gst_filesink_uri_handler_init,
- NULL,
- NULL
- };
- filesink_type = g_type_register_static (GST_TYPE_ELEMENT, "GstFileSink", &filesink_info, 0);
-
- g_type_add_interface_static (filesink_type, GST_TYPE_URI_HANDLER, &urihandler_info);
-
- GST_DEBUG_CATEGORY_INIT (gst_filesink_debug, "filesink", 0, "filesink element");
- }
- return filesink_type;
+ static const GInterfaceInfo urihandler_info = {
+ gst_filesink_uri_handler_init,
+ NULL,
+ NULL
+ };
+ g_type_add_interface_static (filesink_type, GST_TYPE_URI_HANDLER, &urihandler_info);
+ GST_DEBUG_CATEGORY_INIT (gst_filesink_debug, "filesink", 0, "filesink element");
}
+GST_BOILERPLATE_FULL (GstFileSink, gst_filesink, GstElement, GST_TYPE_ELEMENT, _do_init);
+
+
static void
gst_filesink_base_init (gpointer g_class)
{
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_LOCATION,
g_param_spec_string ("location", "File Location", "Location of the file to write",
GST_FORMAT_BYTES
)
-static void gst_filesrc_base_init (gpointer g_class);
-static void gst_filesrc_class_init (GstFileSrcClass *klass);
-static void gst_filesrc_init (GstFileSrc *filesrc);
static void gst_filesrc_dispose (GObject *object);
static void gst_filesrc_set_property (GObject *object, guint prop_id,
static void gst_filesrc_uri_handler_init (gpointer g_iface, gpointer iface_data);
-
-static GstElementClass *parent_class = NULL;
-/*static guint gst_filesrc_signals[LAST_SIGNAL] = { 0 };*/
-
-GType
-gst_filesrc_get_type(void)
+static void
+_do_init (GType filesrc_type)
{
- static GType filesrc_type = 0;
-
- if (!filesrc_type) {
- static const GTypeInfo filesrc_info = {
- sizeof(GstFileSrcClass),
- gst_filesrc_base_init,
- NULL,
- (GClassInitFunc)gst_filesrc_class_init,
- NULL,
- NULL,
- sizeof(GstFileSrc),
- 0,
- (GInstanceInitFunc)gst_filesrc_init,
- };
- static const GInterfaceInfo urihandler_info = {
- gst_filesrc_uri_handler_init,
- NULL,
- NULL
- };
- filesrc_type = g_type_register_static (GST_TYPE_ELEMENT, "GstFileSrc", &filesrc_info, 0);
-
- g_type_add_interface_static (filesrc_type, GST_TYPE_URI_HANDLER, &urihandler_info);
-
- GST_DEBUG_CATEGORY_INIT (gst_filesrc_debug, "filesrc", 0, "filesrc element");
- }
- return filesrc_type;
+ static const GInterfaceInfo urihandler_info = {
+ gst_filesrc_uri_handler_init,
+ NULL,
+ NULL
+ };
+ g_type_add_interface_static (filesrc_type, GST_TYPE_URI_HANDLER, &urihandler_info);
+ GST_DEBUG_CATEGORY_INIT (gst_filesrc_debug, "filesrc", 0, "filesrc element");
}
+GST_BOILERPLATE_FULL (GstFileSrc, gst_filesrc, GstElement, GST_TYPE_ELEMENT, _do_init);
+
static void
gst_filesrc_base_init (gpointer g_class)
{
gobject_class = (GObjectClass*)klass;
- parent_class = g_type_class_peek_parent (klass);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_FD,
g_param_spec_int ("fd", "File-descriptor", "File-descriptor for the file being mmap()d",
};
-static void gst_identity_base_init (gpointer g_class);
-static void gst_identity_class_init (GstIdentityClass *klass);
-static void gst_identity_init (GstIdentity *identity);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_identity_debug, "identity", 0, "identity element");
+
+GST_BOILERPLATE_FULL (GstIdentity, gst_identity, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_identity_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
static void gst_identity_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
static void gst_identity_chain (GstPad *pad, GstData *_data);
-static GstElementClass *parent_class = NULL;
static guint gst_identity_signals[LAST_SIGNAL] = { 0 };
-GType
-gst_identity_get_type (void)
-{
- static GType identity_type = 0;
-
- if (!identity_type) {
- static const GTypeInfo identity_info = {
- sizeof(GstIdentityClass),
- gst_identity_base_init,
- NULL,
- (GClassInitFunc)gst_identity_class_init,
- NULL,
- NULL,
- sizeof(GstIdentity),
- 0,
- (GInstanceInitFunc)gst_identity_init,
- };
- identity_type = g_type_register_static (GST_TYPE_ELEMENT, "GstIdentity", &identity_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_identity_debug, "identity", 0, "identity element");
- }
- return identity_type;
-}
-
static void
gst_identity_base_init (gpointer g_class)
{
gobject_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_LOOP_BASED,
g_param_spec_boolean ("loop-based", "Loop-based",
GST_STATIC_CAPS_ANY
);
-/* GObject stuff */
-static void gst_md5sink_base_init (gpointer g_class);
-static void gst_md5sink_class_init (GstMD5SinkClass *klass);
-static void gst_md5sink_init (GstMD5Sink *md5sink);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_md5sink_debug, "md5sink", 0, "md5sink element");
+
+GST_BOILERPLATE_FULL (GstMD5Sink, gst_md5sink, GstElement, GST_TYPE_ELEMENT, _do_init);
+/* GObject stuff */
/*static void gst_md5sink_set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec);*/
static void gst_md5sink_get_property (GObject *object, guint prop_id,
static void gst_md5sink_chain (GstPad *pad, GstData *_data);
static GstElementStateReturn gst_md5sink_change_state (GstElement *element);
-/* variables */
-static GstElementClass *parent_class = NULL;
-/* no signals
-static guint gst_md5sink_signals[LAST_SIGNAL] = { 0 }; */
-
/* MD5 stuff */
static void md5_init_ctx (GstMD5Sink *ctx);
ctx->D = D;
}
-GType
-gst_md5sink_get_type (void)
-{
- static GType md5sink_type = 0;
-
- if (!md5sink_type) {
- static const GTypeInfo md5sink_info = {
- sizeof(GstMD5SinkClass),
- gst_md5sink_base_init,
- NULL,
- (GClassInitFunc) gst_md5sink_class_init,
- NULL,
- NULL,
- sizeof (GstMD5Sink),
- 0,
- (GInstanceInitFunc) gst_md5sink_init,
- };
- md5sink_type = g_type_register_static (GST_TYPE_ELEMENT, "GstMD5Sink",
- &md5sink_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_md5sink_debug, "md5sink", 0, "md5sink element");
- }
- return md5sink_type;
-}
-
static void
gst_md5sink_base_init (gpointer g_class)
{
gobject_class = (GObjectClass *) klass;
gstelement_class = (GstElementClass *) klass;
- parent_class = g_type_class_peek_parent (klass);
gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_md5sink_get_property);
ARG_LOCATIONS,
};
-static void gst_multidiscsrc_base_init (gpointer g_class);
-static void gst_multidisksrc_class_init (GstMultiDiskSrcClass *klass);
-static void gst_multidisksrc_init (GstMultiDiskSrc *disksrc);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_multidisksrc_debug, "multidisksrc", 0, "multidisksrc element");
+
+GST_BOILERPLATE_FULL (GstMultiDiskSrc, gst_multidisksrc, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_multidisksrc_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
static void gst_multidisksrc_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
static gboolean gst_multidisksrc_open_file (GstMultiDiskSrc *src, GstPad *srcpad);
static void gst_multidisksrc_close_file (GstMultiDiskSrc *src);
-static GstElementClass *parent_class = NULL;
static guint gst_multidisksrc_signals[LAST_SIGNAL] = { 0 };
-GType
-gst_multidisksrc_get_type(void)
-{
- static GType multidisksrc_type = 0;
-
- if (!multidisksrc_type) {
- static const GTypeInfo multidisksrc_info = {
- sizeof(GstMultiDiskSrcClass),
- gst_multidiscsrc_base_init,
- NULL,
- (GClassInitFunc)gst_multidisksrc_class_init,
- NULL,
- NULL,
- sizeof(GstMultiDiskSrc),
- 0,
- (GInstanceInitFunc)gst_multidisksrc_init,
- };
- multidisksrc_type = g_type_register_static (GST_TYPE_ELEMENT, "GstMultiDiskSrc", &multidisksrc_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_multidisksrc_debug, "multidisksrc", 0, "multidisksrc element");
- }
- return multidisksrc_type;
-}
-
static void
-gst_multidiscsrc_base_init (gpointer g_class)
+gst_multidisksrc_base_init (gpointer g_class)
{
GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
gobject_class = (GObjectClass*)klass;
gstelement_class = (GstElementClass*)klass;
- parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
gst_multidisksrc_signals[NEW_FILE] =
g_signal_new ("new_file", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_LAST,
ARG_LOCATIONS,
};
-static void gst_multidiscsrc_base_init (gpointer g_class);
-static void gst_multidisksrc_class_init (GstMultiDiskSrcClass *klass);
-static void gst_multidisksrc_init (GstMultiDiskSrc *disksrc);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_multidisksrc_debug, "multidisksrc", 0, "multidisksrc element");
+
+GST_BOILERPLATE_FULL (GstMultiDiskSrc, gst_multidisksrc, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_multidisksrc_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
static void gst_multidisksrc_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
static gboolean gst_multidisksrc_open_file (GstMultiDiskSrc *src, GstPad *srcpad);
static void gst_multidisksrc_close_file (GstMultiDiskSrc *src);
-static GstElementClass *parent_class = NULL;
static guint gst_multidisksrc_signals[LAST_SIGNAL] = { 0 };
-GType
-gst_multidisksrc_get_type(void)
-{
- static GType multidisksrc_type = 0;
-
- if (!multidisksrc_type) {
- static const GTypeInfo multidisksrc_info = {
- sizeof(GstMultiDiskSrcClass),
- gst_multidiscsrc_base_init,
- NULL,
- (GClassInitFunc)gst_multidisksrc_class_init,
- NULL,
- NULL,
- sizeof(GstMultiDiskSrc),
- 0,
- (GInstanceInitFunc)gst_multidisksrc_init,
- };
- multidisksrc_type = g_type_register_static (GST_TYPE_ELEMENT, "GstMultiDiskSrc", &multidisksrc_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_multidisksrc_debug, "multidisksrc", 0, "multidisksrc element");
- }
- return multidisksrc_type;
-}
-
static void
-gst_multidiscsrc_base_init (gpointer g_class)
+gst_multidisksrc_base_init (gpointer g_class)
{
GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
gobject_class = (GObjectClass*)klass;
gstelement_class = (GstElementClass*)klass;
- parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
gst_multidisksrc_signals[NEW_FILE] =
g_signal_new ("new_file", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_LAST,
};
-static void gst_pipefilter_base_init (gpointer g_class);
-static void gst_pipefilter_class_init (GstPipefilterClass *klass);
-static void gst_pipefilter_init (GstPipefilter *pipefilter);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_pipefilter_debug, "pipefilter", 0, "pipefilter element");
+
+GST_BOILERPLATE_FULL (GstPipefilter, gst_pipefilter, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_pipefilter_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
static void gst_pipefilter_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
static GstElementStateReturn gst_pipefilter_change_state (GstElement *element);
-static GstElementClass *parent_class = NULL;
-/*static guint gst_pipefilter_signals[LAST_SIGNAL] = { 0 };*/
-
-GType
-gst_pipefilter_get_type (void)
-{
- static GType pipefilter_type = 0;
-
- if (!pipefilter_type) {
- static const GTypeInfo pipefilter_info = {
- sizeof(GstPipefilterClass),
- gst_pipefilter_base_init,
- NULL,
- (GClassInitFunc)gst_pipefilter_class_init,
- NULL,
- NULL,
- sizeof(GstPipefilter),
- 0,
- (GInstanceInitFunc)gst_pipefilter_init,
- };
- pipefilter_type = g_type_register_static(GST_TYPE_ELEMENT, "GstPipefilter", &pipefilter_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_pipefilter_debug, "pipefilter", 0, "pipefilter element");
- }
- return pipefilter_type;
-}
-
static void
gst_pipefilter_base_init (gpointer g_class)
{
gobject_class = (GObjectClass*)klass;
gstelement_class = (GstElementClass*)klass;
- parent_class = g_type_class_ref(GST_TYPE_ELEMENT);
gobject_class->set_property = gst_pipefilter_set_property;
gobject_class->get_property = gst_pipefilter_get_property;
return shaper_policy_type;
}
-static void gst_shaper_base_init (gpointer g_class);
-static void gst_shaper_class_init (GstShaperClass *klass);
-static void gst_shaper_init (GstShaper *shaper);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_shaper_debug, "shaper", 0, "shaper element");
+
+GST_BOILERPLATE_FULL (GstShaper, gst_shaper, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_shaper_set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec);
static void gst_shaper_loop (GstElement *element);
-static GstElementClass *parent_class = NULL;
-/* static guint gst_shaper_signals[LAST_SIGNAL] = { 0 }; */
-
-GType
-gst_shaper_get_type (void)
-{
- static GType shaper_type = 0;
-
- if (!shaper_type) {
- static const GTypeInfo shaper_info = {
- sizeof(GstShaperClass),
- gst_shaper_base_init,
- NULL,
- (GClassInitFunc)gst_shaper_class_init,
- NULL,
- NULL,
- sizeof(GstShaper),
- 0,
- (GInstanceInitFunc)gst_shaper_init,
- };
- shaper_type = g_type_register_static (GST_TYPE_ELEMENT, "GstShaper", &shaper_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_shaper_debug, "shaper", 0, "shaper element");
- }
- return shaper_type;
-}
static void
gst_shaper_base_init (gpointer g_class)
gobject_class = (GObjectClass*) klass;
gstelement_class = (GstElementClass*) klass;
- parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_POLICY,
g_param_spec_enum ("policy", "Policy", "Shaper policy",
};
-static void gst_statistics_base_init (gpointer g_class);
-static void gst_statistics_class_init (GstStatisticsClass *klass);
-static void gst_statistics_init (GstStatistics *statistics);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_statistics_debug, "statistics", 0, "statistics element");
+
+GST_BOILERPLATE_FULL (GstStatistics, gst_statistics, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_statistics_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
static void gst_statistics_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
static void gst_statistics_reset (GstStatistics *statistics);
static void gst_statistics_print (GstStatistics *statistics);
-static GstElementClass *parent_class = NULL;
static guint gst_statistics_signals[LAST_SIGNAL] = { 0, };
static stats zero_stats = { 0, };
-GType
-gst_statistics_get_type (void)
-{
- static GType statistics_type = 0;
-
- if (!statistics_type) {
- static const GTypeInfo statistics_info = {
- sizeof(GstStatisticsClass),
- gst_statistics_base_init,
- NULL,
- (GClassInitFunc)gst_statistics_class_init,
- NULL,
- NULL,
- sizeof(GstStatistics),
- 0,
- (GInstanceInitFunc)gst_statistics_init,
- };
- statistics_type = g_type_register_static (GST_TYPE_ELEMENT, "GstStatistics", &statistics_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_statistics_debug, "statistics", 0, "statistics element");
- }
- return statistics_type;
-}
static void
gst_statistics_base_init (gpointer g_class)
gobject_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_BUFFERS,
g_param_spec_int64 ("buffers", "buffers", "total buffers count",
GST_STATIC_CAPS_ANY
);
-static void gst_tee_base_init (gpointer g_class);
-static void gst_tee_class_init (GstTeeClass *klass);
-static void gst_tee_init (GstTee *tee);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_tee_debug, "tee", 0, "tee element");
+
+GST_BOILERPLATE_FULL (GstTee, gst_tee, GstElement, GST_TYPE_ELEMENT, _do_init);
static GstPad* gst_tee_request_new_pad (GstElement *element, GstPadTemplate *temp, const gchar *unused);
static void gst_tee_chain (GstPad *pad, GstData *_data);
-static GstElementClass *parent_class = NULL;
-/*static guint gst_tee_signals[LAST_SIGNAL] = { 0 };*/
-
-GType
-gst_tee_get_type(void) {
- static GType tee_type = 0;
-
- if (!tee_type) {
- static const GTypeInfo tee_info = {
- sizeof(GstTeeClass),
- gst_tee_base_init,
- NULL,
- (GClassInitFunc)gst_tee_class_init,
- NULL,
- NULL,
- sizeof(GstTee),
- 0,
- (GInstanceInitFunc)gst_tee_init,
- };
- tee_type = g_type_register_static (GST_TYPE_ELEMENT, "GstTee", &tee_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_tee_debug, "tee", 0, "tee element");
- }
- return tee_type;
-}
-
static void
gst_tee_base_init (gpointer g_class)
{
gobject_class = (GObjectClass*)klass;
gstelement_class = (GstElementClass*)klass;
- parent_class = g_type_class_ref(GST_TYPE_ELEMENT);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_NUM_PADS,
g_param_spec_int ("num_pads", "num_pads", "num_pads",
#include "gst/gst_private.h"
#include <gst/gsttypefind.h>
+#include <gst/gstutils.h>
GST_DEBUG_CATEGORY_STATIC (gst_type_find_element_debug);
#define GST_CAT_DEFAULT gst_type_find_element_debug
};
-static void gst_type_find_element_base_init (gpointer g_class);
-static void gst_type_find_element_class_init (gpointer g_class,
- gpointer class_data);
-static void gst_type_find_element_init (GTypeInstance *instance,
- gpointer g_class);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_type_find_element_debug, "typefind", \
+ GST_DEBUG_BG_YELLOW | GST_DEBUG_FG_GREEN, "type finding element");
+
+GST_BOILERPLATE_FULL (GstTypeFindElement, gst_type_find_element, GstElement, GST_TYPE_ELEMENT, _do_init);
+
static void gst_type_find_element_dispose (GObject * object);
static void gst_type_find_element_set_property (GObject * object,
guint prop_id,
static GstElementStateReturn
gst_type_find_element_change_state (GstElement * element);
-static GstElementClass *parent_class = NULL;
static guint gst_type_find_element_signals[LAST_SIGNAL] = { 0 };
-GType
-gst_type_find_element_get_type (void)
-{
- static GType typefind_type = 0;
-
- if (!typefind_type) {
- static const GTypeInfo typefind_info = {
- sizeof (GstTypeFindElementClass),
- gst_type_find_element_base_init,
- NULL,
- gst_type_find_element_class_init,
- NULL,
- NULL,
- sizeof (GstTypeFindElement),
- 0,
- gst_type_find_element_init,
- NULL
- };
- typefind_type = g_type_register_static (GST_TYPE_ELEMENT,
- "GstTypeFindElement",
- &typefind_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_type_find_element_debug, "typefind",
- GST_DEBUG_BG_YELLOW | GST_DEBUG_FG_GREEN, "typefind element");
- }
- return typefind_type;
-}
static void
gst_type_find_element_have_type (GstTypeFindElement *typefind, guint probability, const GstCaps *caps)
{
gst_element_class_set_details (gstelement_class, &gst_type_find_element_details);
}
static void
-gst_type_find_element_class_init (gpointer g_class, gpointer class_data)
+gst_type_find_element_class_init (GstTypeFindElementClass *typefind_class)
{
- GObjectClass *gobject_class;
- GstElementClass *gstelement_class;
- GstTypeFindElementClass *typefind_class;
-
- gobject_class = G_OBJECT_CLASS (g_class);
- gstelement_class = GST_ELEMENT_CLASS (g_class);
- typefind_class = GST_TYPE_FIND_ELEMENT_CLASS (g_class);
-
- parent_class = g_type_class_peek_parent (g_class);
+ GObjectClass *gobject_class = G_OBJECT_CLASS (typefind_class);
+ GstElementClass *gstelement_class = GST_ELEMENT_CLASS (typefind_class);
gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_type_find_element_set_property);
gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_type_find_element_get_property);
GST_TYPE_FIND_MINIMUM, GST_TYPE_FIND_MAXIMUM, GST_TYPE_FIND_MAXIMUM, G_PARAM_READWRITE));
gst_type_find_element_signals[HAVE_TYPE] = g_signal_new ("have_type",
- G_TYPE_FROM_CLASS (g_class), G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS (typefind_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstTypeFindElementClass, have_type), NULL, NULL,
gst_marshal_VOID__UINT_POINTER, G_TYPE_NONE, 2,
G_TYPE_UINT, G_TYPE_POINTER);
gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_type_find_element_change_state);
}
static void
-gst_type_find_element_init (GTypeInstance *instance, gpointer g_class)
+gst_type_find_element_init (GstTypeFindElement *typefind)
{
- GstTypeFindElement *typefind = GST_TYPE_FIND_ELEMENT (instance);
-
/* sinkpad */
typefind->sink = gst_pad_new_from_template (
gst_static_pad_template_get (&type_find_element_sink_template), "sink");
#include "gst/gst_private.h"
#include <gst/gsttypefind.h>
+#include <gst/gstutils.h>
GST_DEBUG_CATEGORY_STATIC (gst_type_find_element_debug);
#define GST_CAT_DEFAULT gst_type_find_element_debug
};
-static void gst_type_find_element_base_init (gpointer g_class);
-static void gst_type_find_element_class_init (gpointer g_class,
- gpointer class_data);
-static void gst_type_find_element_init (GTypeInstance *instance,
- gpointer g_class);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_type_find_element_debug, "typefind", \
+ GST_DEBUG_BG_YELLOW | GST_DEBUG_FG_GREEN, "type finding element");
+
+GST_BOILERPLATE_FULL (GstTypeFindElement, gst_type_find_element, GstElement, GST_TYPE_ELEMENT, _do_init);
+
static void gst_type_find_element_dispose (GObject * object);
static void gst_type_find_element_set_property (GObject * object,
guint prop_id,
static GstElementStateReturn
gst_type_find_element_change_state (GstElement * element);
-static GstElementClass *parent_class = NULL;
static guint gst_type_find_element_signals[LAST_SIGNAL] = { 0 };
-GType
-gst_type_find_element_get_type (void)
-{
- static GType typefind_type = 0;
-
- if (!typefind_type) {
- static const GTypeInfo typefind_info = {
- sizeof (GstTypeFindElementClass),
- gst_type_find_element_base_init,
- NULL,
- gst_type_find_element_class_init,
- NULL,
- NULL,
- sizeof (GstTypeFindElement),
- 0,
- gst_type_find_element_init,
- NULL
- };
- typefind_type = g_type_register_static (GST_TYPE_ELEMENT,
- "GstTypeFindElement",
- &typefind_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_type_find_element_debug, "typefind",
- GST_DEBUG_BG_YELLOW | GST_DEBUG_FG_GREEN, "typefind element");
- }
- return typefind_type;
-}
static void
gst_type_find_element_have_type (GstTypeFindElement *typefind, guint probability, const GstCaps *caps)
{
gst_element_class_set_details (gstelement_class, &gst_type_find_element_details);
}
static void
-gst_type_find_element_class_init (gpointer g_class, gpointer class_data)
+gst_type_find_element_class_init (GstTypeFindElementClass *typefind_class)
{
- GObjectClass *gobject_class;
- GstElementClass *gstelement_class;
- GstTypeFindElementClass *typefind_class;
-
- gobject_class = G_OBJECT_CLASS (g_class);
- gstelement_class = GST_ELEMENT_CLASS (g_class);
- typefind_class = GST_TYPE_FIND_ELEMENT_CLASS (g_class);
-
- parent_class = g_type_class_peek_parent (g_class);
+ GObjectClass *gobject_class = G_OBJECT_CLASS (typefind_class);
+ GstElementClass *gstelement_class = GST_ELEMENT_CLASS (typefind_class);
gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_type_find_element_set_property);
gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_type_find_element_get_property);
GST_TYPE_FIND_MINIMUM, GST_TYPE_FIND_MAXIMUM, GST_TYPE_FIND_MAXIMUM, G_PARAM_READWRITE));
gst_type_find_element_signals[HAVE_TYPE] = g_signal_new ("have_type",
- G_TYPE_FROM_CLASS (g_class), G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS (typefind_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstTypeFindElementClass, have_type), NULL, NULL,
gst_marshal_VOID__UINT_POINTER, G_TYPE_NONE, 2,
G_TYPE_UINT, G_TYPE_POINTER);
gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_type_find_element_change_state);
}
static void
-gst_type_find_element_init (GTypeInstance *instance, gpointer g_class)
+gst_type_find_element_init (GstTypeFindElement *typefind)
{
- GstTypeFindElement *typefind = GST_TYPE_FIND_ELEMENT (instance);
-
/* sinkpad */
typefind->sink = gst_pad_new_from_template (
gst_static_pad_template_get (&type_find_element_sink_template), "sink");
void gst_print_pad_caps (GString *buf, gint indent, GstPad *pad);
void gst_print_element_args (GString *buf, gint indent, GstElement *element);
+
+/* Macros for defining classes. Ideas taken from Bonobo, which took theirs
+ from Nautilus and GOB. */
+
+/* Define the boilerplate type stuff to reduce typos and code size. Defines
+ the get_type method and the parent_class static variable.
+ void additional_initializations (GType type) is for initializing interfaces
+ and stuff like that */
+
+#define GST_BOILERPLATE_FULL(type, type_as_function, parent_type, \
+ parent_type_macro, additional_initializations) \
+ \
+static void type_as_function ## _base_init (gpointer g_class); \
+static void type_as_function ## _class_init (type ## Class *g_class); \
+static void type_as_function ## _init (type *object); \
+static parent_type ## Class *parent_class = NULL; \
+static void \
+type_as_function ## _class_init_trampoline (gpointer g_class, \
+ gpointer data) \
+{ \
+ parent_class = (parent_type ## Class *) g_type_class_peek_parent (g_class); \
+ type_as_function ## _class_init ((type ## Class *)g_class); \
+} \
+ \
+GType \
+type_as_function ## _get_type (void) \
+{ \
+ static GType object_type = 0; \
+ if (object_type == 0) { \
+ static const GTypeInfo object_info = { \
+ sizeof (type ## Class), \
+ type_as_function ## _base_init, \
+ NULL, /* base_finalize */ \
+ type_as_function ## _class_init_trampoline, \
+ NULL, /* class_finalize */ \
+ NULL, /* class_data */ \
+ sizeof (type), \
+ 0, /* n_preallocs */ \
+ (GInstanceInitFunc) type_as_function ## _init \
+ }; \
+ object_type = g_type_register_static (parent_type_macro, #type, \
+ &object_info, 0); \
+ additional_initializations (object_type); \
+ } \
+ return object_type; \
+}
+
+#define __GST_DO_NOTHING(type) /* NOP */
+#define GST_BOILERPLATE(type,type_as_function,parent_type,parent_type_macro) \
+ GST_BOILERPLATE_FULL (type, type_as_function, parent_type, parent_type_macro, \
+ __GST_DO_NOTHING)
+
+/* Just call the parent handler. This assumes that there is a variable
+ * named parent_class that points to the (duh!) parent class. Note that
+ * this macro is not to be used with things that return something, use
+ * the _WITH_DEFAULT version for that */
+#define GST_CALL_PARENT(parent_class_cast, name, args) \
+ ((parent_class_cast(parent_class)->name != NULL) ? \
+ parent_class_cast(parent_class)->name args : (void) 0)
+
+/* Same as above, but in case there is no implementation, it evaluates
+ * to def_return */
+#define GST_CALL_PARENT_WITH_DEFAULT(parent_class_cast, name, args, def_return) \
+ ((parent_class_cast(parent_class)->name != NULL) ? \
+ parent_class_cast(parent_class)->name args : def_return)
+
+
G_END_DECLS
#endif /* __GST_UTILS_H__ */
#define AGGREGATOR_IS_LOOP_BASED(ag) ((ag)->sched != AGGREGATOR_CHAIN)
-static void gst_aggregator_base_init (gpointer g_class);
-static void gst_aggregator_class_init (GstAggregatorClass *klass);
-static void gst_aggregator_init (GstAggregator *aggregator);
-
static GstPad* gst_aggregator_request_new_pad (GstElement *element, GstPadTemplate *temp, const
gchar *unused);
static void gst_aggregator_update_functions (GstAggregator *aggregator);
static void gst_aggregator_chain (GstPad *pad, GstData *_data);
static void gst_aggregator_loop (GstElement *element);
-static GstElementClass *parent_class = NULL;
-/*static guint gst_aggregator_signals[LAST_SIGNAL] = { 0 };*/
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_aggregator_debug, "aggregator", 0, "aggregator element");
-GType
-gst_aggregator_get_type (void)
-{
- static GType aggregator_type = 0;
-
- if (!aggregator_type) {
- static const GTypeInfo aggregator_info = {
- sizeof(GstAggregatorClass),
- gst_aggregator_base_init,
- NULL,
- (GClassInitFunc)gst_aggregator_class_init,
- NULL,
- NULL,
- sizeof(GstAggregator),
- 0,
- (GInstanceInitFunc)gst_aggregator_init,
- };
- aggregator_type = g_type_register_static (GST_TYPE_ELEMENT, "GstAggregator", &aggregator_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_aggregator_debug, "aggregator", 0, "aggregator element");
- }
- return aggregator_type;
-}
+GST_BOILERPLATE_FULL (GstAggregator, gst_aggregator, GstElement, GST_TYPE_ELEMENT, _do_init);
static void
gst_aggregator_base_init (gpointer g_class)
gobject_class = (GObjectClass*) klass;
gstelement_class = (GstElementClass*) klass;
- parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_NUM_PADS,
g_param_spec_int ("num_pads", "Num pads", "The number of source pads",
# include "config.h"
#endif
#include "gstbufferstore.h"
+#include <gst/gstutils.h>
#include <string.h>
GST_DEBUG_CATEGORY_STATIC (gst_buffer_store_debug);
};
-static void gst_buffer_store_class_init (gpointer g_class,
- gpointer class_data);
-static void gst_buffer_store_init (GTypeInstance * instance,
- gpointer g_class);
static void gst_buffer_store_dispose (GObject * object);
static gboolean gst_buffer_store_add_buffer_func (GstBufferStore * store,
GstBuffer * buffer);
static void gst_buffer_store_cleared_func (GstBufferStore * store);
-static GObjectClass *parent_class = NULL;
static guint gst_buffer_store_signals[LAST_SIGNAL] = { 0 };
+GST_BOILERPLATE (GstBufferStore, gst_buffer_store, GObject, G_TYPE_OBJECT);
+
+
G_GNUC_UNUSED static void
debug_buffers (GstBufferStore *store)
{
}
g_printerr ("\n");
}
-GType
-gst_buffer_store_get_type (void)
-{
- static GType store_type = 0;
-
- if (!store_type) {
- static const GTypeInfo store_info = {
- sizeof (GstBufferStoreClass),
- NULL,
- NULL,
- gst_buffer_store_class_init,
- NULL,
- NULL,
- sizeof (GstBufferStore),
- 0,
- gst_buffer_store_init,
- NULL
- };
- store_type = g_type_register_static (G_TYPE_OBJECT,
- "GstBufferStore",
- &store_info, 0);
-
- /* FIXME: better description anyone? */
- GST_DEBUG_CATEGORY_INIT (gst_buffer_store_debug, "bufferstore", 0, "store all data");
- }
- return store_type;
-}
static gboolean
continue_accu (GSignalInvocationHint *ihint, GValue *return_accu,
const GValue *handler_return, gpointer data)
return do_continue;
}
static void
-gst_buffer_store_class_init (gpointer g_class, gpointer class_data)
+gst_buffer_store_base_init (gpointer g_class)
{
- GObjectClass *gobject_class;
- GstBufferStoreClass *store_class;
-
- gobject_class = G_OBJECT_CLASS (g_class);
- store_class = GST_BUFFER_STORE_CLASS (g_class);
-
- parent_class = g_type_class_peek_parent (g_class);
+}
+static void
+gst_buffer_store_class_init (GstBufferStoreClass *store_class)
+{
+ GObjectClass *gobject_class = G_OBJECT_CLASS (store_class);
gobject_class->dispose = gst_buffer_store_dispose;
gst_buffer_store_signals[CLEARED] = g_signal_new ("cleared",
- G_TYPE_FROM_CLASS (g_class), G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS (store_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstBufferStoreClass, cleared), NULL, NULL,
gst_marshal_VOID__VOID, G_TYPE_NONE, 0);
gst_buffer_store_signals[BUFFER_ADDED] = g_signal_new ("buffer-added",
- G_TYPE_FROM_CLASS (g_class), G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS (store_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstBufferStoreClass, buffer_added), continue_accu, NULL,
gst_marshal_BOOLEAN__POINTER, G_TYPE_BOOLEAN, 1, GST_TYPE_BUFFER);
store_class->buffer_added = gst_buffer_store_add_buffer_func;
}
static void
-gst_buffer_store_init (GTypeInstance *instance, gpointer g_class)
+gst_buffer_store_init (GstBufferStore *store)
{
- GstBufferStore *store = GST_BUFFER_STORE (instance);
-
store->buffers = NULL;
}
static void
return fakesink_state_error_type;
}
-static void gst_fakesink_base_init (gpointer g_class);
-static void gst_fakesink_class_init (GstFakeSinkClass *klass);
-static void gst_fakesink_init (GstFakeSink *fakesink);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_fakesink_debug, "fakesink", 0, "fakesink element");
+
+GST_BOILERPLATE_FULL (GstFakeSink, gst_fakesink, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_fakesink_set_clock (GstElement *element, GstClock *clock);
static GstPad* gst_fakesink_request_new_pad (GstElement *element, GstPadTemplate *templ, const
static void gst_fakesink_chain (GstPad *pad, GstData *_data);
-static GstElementClass *parent_class = NULL;
static guint gst_fakesink_signals[LAST_SIGNAL] = { 0 };
-GType
-gst_fakesink_get_type (void)
-{
- static GType fakesink_type = 0;
-
- if (!fakesink_type) {
- static const GTypeInfo fakesink_info = {
- sizeof(GstFakeSinkClass),
- gst_fakesink_base_init,
- NULL,
- (GClassInitFunc)gst_fakesink_class_init,
- NULL,
- NULL,
- sizeof(GstFakeSink),
- 0,
- (GInstanceInitFunc)gst_fakesink_init,
- };
- fakesink_type = g_type_register_static (GST_TYPE_ELEMENT, "GstFakeSink", &fakesink_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_fakesink_debug, "fakesink", 0, "fakesink element");
- }
- return fakesink_type;
-}
-
static void
gst_fakesink_base_init (gpointer g_class)
{
gobject_class = (GObjectClass*)klass;
gstelement_class = (GstElementClass*)klass;
- parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_NUM_SINKS,
g_param_spec_int ("num_sinks", "Number of sinks", "The number of sinkpads",
};
if (!fakesrc_output_type) {
fakesrc_output_type = g_enum_register_static ("GstFakeSrcOutput", fakesrc_output);
-
- GST_DEBUG_CATEGORY_INIT (gst_fakesrc_debug, "fakesrc", 0, "fakesrc element");
}
return fakesrc_output_type;
}
return fakesrc_filltype_type;
}
-static void gst_fakesrc_base_init (gpointer g_class);
-static void gst_fakesrc_class_init (GstFakeSrcClass *klass);
-static void gst_fakesrc_init (GstFakeSrc *fakesrc);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_fakesrc_debug, "fakesrc", 0, "fakesrc element");
+
+GST_BOILERPLATE_FULL (GstFakeSrc, gst_fakesrc, GstElement, GST_TYPE_ELEMENT, _do_init);
static GstPad* gst_fakesrc_request_new_pad (GstElement *element, GstPadTemplate *templ,const gchar *unused);
static void gst_fakesrc_update_functions (GstFakeSrc *src);
static GstData* gst_fakesrc_get (GstPad *pad);
static void gst_fakesrc_loop (GstElement *element);
-static GstElementClass *parent_class = NULL;
static guint gst_fakesrc_signals[LAST_SIGNAL] = { 0 };
-GType
-gst_fakesrc_get_type (void)
-{
- static GType fakesrc_type = 0;
-
- if (!fakesrc_type) {
- static const GTypeInfo fakesrc_info = {
- sizeof(GstFakeSrcClass),
- gst_fakesrc_base_init,
- NULL,
- (GClassInitFunc)gst_fakesrc_class_init,
- NULL,
- NULL,
- sizeof(GstFakeSrc),
- 0,
- (GInstanceInitFunc)gst_fakesrc_init,
- };
- fakesrc_type = g_type_register_static (GST_TYPE_ELEMENT, "GstFakeSrc", &fakesrc_info, 0);
- }
- return fakesrc_type;
-}
-
static void
gst_fakesrc_base_init (gpointer g_class)
{
gobject_class = (GObjectClass*)klass;
gstelement_class = (GstElementClass*)klass;
- parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_NUM_SOURCES,
g_param_spec_int ("num-sources", "num-sources", "Number of sources",
};
-static void gst_fdsink_base_init (gpointer g_class);
-static void gst_fdsink_class_init (GstFdSinkClass *klass);
-static void gst_fdsink_init (GstFdSink *fdsink);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_fdsink_debug, "fdsink", 0, "fdsink element");
+
+GST_BOILERPLATE_FULL (GstFdSink, gst_fdsink, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_fdsink_set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec);
static void gst_fdsink_chain (GstPad *pad,GstData *_data);
-static GstElementClass *parent_class = NULL;
-/*static guint gst_fdsink_signals[LAST_SIGNAL] = { 0 };*/
-
-GType
-gst_fdsink_get_type (void)
-{
- static GType fdsink_type = 0;
-
- if (!fdsink_type) {
- static const GTypeInfo fdsink_info = {
- sizeof(GstFdSinkClass),
- gst_fdsink_base_init,
- NULL,
- (GClassInitFunc)gst_fdsink_class_init,
- NULL,
- NULL,
- sizeof(GstFdSink),
- 0,
- (GInstanceInitFunc)gst_fdsink_init,
- };
- fdsink_type = g_type_register_static (GST_TYPE_ELEMENT, "GstFdSink", &fdsink_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_fdsink_debug, "fdsink", 0, "fdsink element");
- }
- return fdsink_type;
-}
static void
gst_fdsink_base_init (gpointer g_class)
gobject_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_FD,
g_param_spec_int ("fd", "fd", "An open file descriptor to write to",
ARG_BLOCKSIZE,
};
-static void gst_fdsrc_base_init (gpointer g_class);
-static void gst_fdsrc_class_init (GstFdSrcClass *klass);
-static void gst_fdsrc_init (GstFdSrc *fdsrc);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_fdsrc_debug, "fdsrc", 0, "fdsrc element");
+
+GST_BOILERPLATE_FULL (GstFdSrc, gst_fdsrc, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_fdsrc_set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec);
static GstData * gst_fdsrc_get (GstPad *pad);
-static GstElementClass *parent_class = NULL;
-/*static guint gst_fdsrc_signals[LAST_SIGNAL] = { 0 };*/
-
-GType
-gst_fdsrc_get_type (void)
-{
- static GType fdsrc_type = 0;
-
- if (!fdsrc_type) {
- static const GTypeInfo fdsrc_info = {
- sizeof(GstFdSrcClass),
- gst_fdsrc_base_init,
- NULL,
- (GClassInitFunc)gst_fdsrc_class_init,
- NULL,
- NULL,
- sizeof(GstFdSrc),
- 0,
- (GInstanceInitFunc)gst_fdsrc_init,
- };
- fdsrc_type = g_type_register_static (GST_TYPE_ELEMENT, "GstFdSrc", &fdsrc_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_fdsrc_debug, "fdsrc", 0, "fdsrc element");
- }
- return fdsrc_type;
-}
-
static void
gst_fdsrc_base_init (gpointer g_class)
{
gobject_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_ref(GST_TYPE_ELEMENT);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_FD,
g_param_spec_int ("fd", "fd", "An open file descriptor to read from",
)
-static void gst_filesink_base_init (gpointer g_class);
-static void gst_filesink_class_init (GstFileSinkClass *klass);
-static void gst_filesink_init (GstFileSink *filesink);
static void gst_filesink_dispose (GObject *object);
static void gst_filesink_set_property (GObject *object, guint prop_id,
static GstElementStateReturn gst_filesink_change_state (GstElement *element);
-static GstElementClass *parent_class = NULL;
static guint gst_filesink_signals[LAST_SIGNAL] = { 0 };
-GType
-gst_filesink_get_type (void)
+static void
+_do_init (GType filesink_type)
{
- static GType filesink_type = 0;
-
- if (!filesink_type) {
- static const GTypeInfo filesink_info = {
- sizeof(GstFileSinkClass),
- gst_filesink_base_init,
- NULL,
- (GClassInitFunc)gst_filesink_class_init,
- NULL,
- NULL,
- sizeof(GstFileSink),
- 0,
- (GInstanceInitFunc)gst_filesink_init,
- };
- static const GInterfaceInfo urihandler_info = {
- gst_filesink_uri_handler_init,
- NULL,
- NULL
- };
- filesink_type = g_type_register_static (GST_TYPE_ELEMENT, "GstFileSink", &filesink_info, 0);
-
- g_type_add_interface_static (filesink_type, GST_TYPE_URI_HANDLER, &urihandler_info);
-
- GST_DEBUG_CATEGORY_INIT (gst_filesink_debug, "filesink", 0, "filesink element");
- }
- return filesink_type;
+ static const GInterfaceInfo urihandler_info = {
+ gst_filesink_uri_handler_init,
+ NULL,
+ NULL
+ };
+ g_type_add_interface_static (filesink_type, GST_TYPE_URI_HANDLER, &urihandler_info);
+ GST_DEBUG_CATEGORY_INIT (gst_filesink_debug, "filesink", 0, "filesink element");
}
+GST_BOILERPLATE_FULL (GstFileSink, gst_filesink, GstElement, GST_TYPE_ELEMENT, _do_init);
+
+
static void
gst_filesink_base_init (gpointer g_class)
{
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_LOCATION,
g_param_spec_string ("location", "File Location", "Location of the file to write",
GST_FORMAT_BYTES
)
-static void gst_filesrc_base_init (gpointer g_class);
-static void gst_filesrc_class_init (GstFileSrcClass *klass);
-static void gst_filesrc_init (GstFileSrc *filesrc);
static void gst_filesrc_dispose (GObject *object);
static void gst_filesrc_set_property (GObject *object, guint prop_id,
static void gst_filesrc_uri_handler_init (gpointer g_iface, gpointer iface_data);
-
-static GstElementClass *parent_class = NULL;
-/*static guint gst_filesrc_signals[LAST_SIGNAL] = { 0 };*/
-
-GType
-gst_filesrc_get_type(void)
+static void
+_do_init (GType filesrc_type)
{
- static GType filesrc_type = 0;
-
- if (!filesrc_type) {
- static const GTypeInfo filesrc_info = {
- sizeof(GstFileSrcClass),
- gst_filesrc_base_init,
- NULL,
- (GClassInitFunc)gst_filesrc_class_init,
- NULL,
- NULL,
- sizeof(GstFileSrc),
- 0,
- (GInstanceInitFunc)gst_filesrc_init,
- };
- static const GInterfaceInfo urihandler_info = {
- gst_filesrc_uri_handler_init,
- NULL,
- NULL
- };
- filesrc_type = g_type_register_static (GST_TYPE_ELEMENT, "GstFileSrc", &filesrc_info, 0);
-
- g_type_add_interface_static (filesrc_type, GST_TYPE_URI_HANDLER, &urihandler_info);
-
- GST_DEBUG_CATEGORY_INIT (gst_filesrc_debug, "filesrc", 0, "filesrc element");
- }
- return filesrc_type;
+ static const GInterfaceInfo urihandler_info = {
+ gst_filesrc_uri_handler_init,
+ NULL,
+ NULL
+ };
+ g_type_add_interface_static (filesrc_type, GST_TYPE_URI_HANDLER, &urihandler_info);
+ GST_DEBUG_CATEGORY_INIT (gst_filesrc_debug, "filesrc", 0, "filesrc element");
}
+GST_BOILERPLATE_FULL (GstFileSrc, gst_filesrc, GstElement, GST_TYPE_ELEMENT, _do_init);
+
static void
gst_filesrc_base_init (gpointer g_class)
{
gobject_class = (GObjectClass*)klass;
- parent_class = g_type_class_peek_parent (klass);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_FD,
g_param_spec_int ("fd", "File-descriptor", "File-descriptor for the file being mmap()d",
};
-static void gst_identity_base_init (gpointer g_class);
-static void gst_identity_class_init (GstIdentityClass *klass);
-static void gst_identity_init (GstIdentity *identity);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_identity_debug, "identity", 0, "identity element");
+
+GST_BOILERPLATE_FULL (GstIdentity, gst_identity, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_identity_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
static void gst_identity_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
static void gst_identity_chain (GstPad *pad, GstData *_data);
-static GstElementClass *parent_class = NULL;
static guint gst_identity_signals[LAST_SIGNAL] = { 0 };
-GType
-gst_identity_get_type (void)
-{
- static GType identity_type = 0;
-
- if (!identity_type) {
- static const GTypeInfo identity_info = {
- sizeof(GstIdentityClass),
- gst_identity_base_init,
- NULL,
- (GClassInitFunc)gst_identity_class_init,
- NULL,
- NULL,
- sizeof(GstIdentity),
- 0,
- (GInstanceInitFunc)gst_identity_init,
- };
- identity_type = g_type_register_static (GST_TYPE_ELEMENT, "GstIdentity", &identity_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_identity_debug, "identity", 0, "identity element");
- }
- return identity_type;
-}
-
static void
gst_identity_base_init (gpointer g_class)
{
gobject_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_LOOP_BASED,
g_param_spec_boolean ("loop-based", "Loop-based",
GST_STATIC_CAPS_ANY
);
-/* GObject stuff */
-static void gst_md5sink_base_init (gpointer g_class);
-static void gst_md5sink_class_init (GstMD5SinkClass *klass);
-static void gst_md5sink_init (GstMD5Sink *md5sink);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_md5sink_debug, "md5sink", 0, "md5sink element");
+
+GST_BOILERPLATE_FULL (GstMD5Sink, gst_md5sink, GstElement, GST_TYPE_ELEMENT, _do_init);
+/* GObject stuff */
/*static void gst_md5sink_set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec);*/
static void gst_md5sink_get_property (GObject *object, guint prop_id,
static void gst_md5sink_chain (GstPad *pad, GstData *_data);
static GstElementStateReturn gst_md5sink_change_state (GstElement *element);
-/* variables */
-static GstElementClass *parent_class = NULL;
-/* no signals
-static guint gst_md5sink_signals[LAST_SIGNAL] = { 0 }; */
-
/* MD5 stuff */
static void md5_init_ctx (GstMD5Sink *ctx);
ctx->D = D;
}
-GType
-gst_md5sink_get_type (void)
-{
- static GType md5sink_type = 0;
-
- if (!md5sink_type) {
- static const GTypeInfo md5sink_info = {
- sizeof(GstMD5SinkClass),
- gst_md5sink_base_init,
- NULL,
- (GClassInitFunc) gst_md5sink_class_init,
- NULL,
- NULL,
- sizeof (GstMD5Sink),
- 0,
- (GInstanceInitFunc) gst_md5sink_init,
- };
- md5sink_type = g_type_register_static (GST_TYPE_ELEMENT, "GstMD5Sink",
- &md5sink_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_md5sink_debug, "md5sink", 0, "md5sink element");
- }
- return md5sink_type;
-}
-
static void
gst_md5sink_base_init (gpointer g_class)
{
gobject_class = (GObjectClass *) klass;
gstelement_class = (GstElementClass *) klass;
- parent_class = g_type_class_peek_parent (klass);
gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_md5sink_get_property);
ARG_LOCATIONS,
};
-static void gst_multidiscsrc_base_init (gpointer g_class);
-static void gst_multidisksrc_class_init (GstMultiDiskSrcClass *klass);
-static void gst_multidisksrc_init (GstMultiDiskSrc *disksrc);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_multidisksrc_debug, "multidisksrc", 0, "multidisksrc element");
+
+GST_BOILERPLATE_FULL (GstMultiDiskSrc, gst_multidisksrc, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_multidisksrc_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
static void gst_multidisksrc_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
static gboolean gst_multidisksrc_open_file (GstMultiDiskSrc *src, GstPad *srcpad);
static void gst_multidisksrc_close_file (GstMultiDiskSrc *src);
-static GstElementClass *parent_class = NULL;
static guint gst_multidisksrc_signals[LAST_SIGNAL] = { 0 };
-GType
-gst_multidisksrc_get_type(void)
-{
- static GType multidisksrc_type = 0;
-
- if (!multidisksrc_type) {
- static const GTypeInfo multidisksrc_info = {
- sizeof(GstMultiDiskSrcClass),
- gst_multidiscsrc_base_init,
- NULL,
- (GClassInitFunc)gst_multidisksrc_class_init,
- NULL,
- NULL,
- sizeof(GstMultiDiskSrc),
- 0,
- (GInstanceInitFunc)gst_multidisksrc_init,
- };
- multidisksrc_type = g_type_register_static (GST_TYPE_ELEMENT, "GstMultiDiskSrc", &multidisksrc_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_multidisksrc_debug, "multidisksrc", 0, "multidisksrc element");
- }
- return multidisksrc_type;
-}
-
static void
-gst_multidiscsrc_base_init (gpointer g_class)
+gst_multidisksrc_base_init (gpointer g_class)
{
GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
gobject_class = (GObjectClass*)klass;
gstelement_class = (GstElementClass*)klass;
- parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
gst_multidisksrc_signals[NEW_FILE] =
g_signal_new ("new_file", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_LAST,
ARG_LOCATIONS,
};
-static void gst_multidiscsrc_base_init (gpointer g_class);
-static void gst_multidisksrc_class_init (GstMultiDiskSrcClass *klass);
-static void gst_multidisksrc_init (GstMultiDiskSrc *disksrc);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_multidisksrc_debug, "multidisksrc", 0, "multidisksrc element");
+
+GST_BOILERPLATE_FULL (GstMultiDiskSrc, gst_multidisksrc, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_multidisksrc_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
static void gst_multidisksrc_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
static gboolean gst_multidisksrc_open_file (GstMultiDiskSrc *src, GstPad *srcpad);
static void gst_multidisksrc_close_file (GstMultiDiskSrc *src);
-static GstElementClass *parent_class = NULL;
static guint gst_multidisksrc_signals[LAST_SIGNAL] = { 0 };
-GType
-gst_multidisksrc_get_type(void)
-{
- static GType multidisksrc_type = 0;
-
- if (!multidisksrc_type) {
- static const GTypeInfo multidisksrc_info = {
- sizeof(GstMultiDiskSrcClass),
- gst_multidiscsrc_base_init,
- NULL,
- (GClassInitFunc)gst_multidisksrc_class_init,
- NULL,
- NULL,
- sizeof(GstMultiDiskSrc),
- 0,
- (GInstanceInitFunc)gst_multidisksrc_init,
- };
- multidisksrc_type = g_type_register_static (GST_TYPE_ELEMENT, "GstMultiDiskSrc", &multidisksrc_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_multidisksrc_debug, "multidisksrc", 0, "multidisksrc element");
- }
- return multidisksrc_type;
-}
-
static void
-gst_multidiscsrc_base_init (gpointer g_class)
+gst_multidisksrc_base_init (gpointer g_class)
{
GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
gobject_class = (GObjectClass*)klass;
gstelement_class = (GstElementClass*)klass;
- parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
gst_multidisksrc_signals[NEW_FILE] =
g_signal_new ("new_file", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_LAST,
};
-static void gst_pipefilter_base_init (gpointer g_class);
-static void gst_pipefilter_class_init (GstPipefilterClass *klass);
-static void gst_pipefilter_init (GstPipefilter *pipefilter);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_pipefilter_debug, "pipefilter", 0, "pipefilter element");
+
+GST_BOILERPLATE_FULL (GstPipefilter, gst_pipefilter, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_pipefilter_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
static void gst_pipefilter_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
static GstElementStateReturn gst_pipefilter_change_state (GstElement *element);
-static GstElementClass *parent_class = NULL;
-/*static guint gst_pipefilter_signals[LAST_SIGNAL] = { 0 };*/
-
-GType
-gst_pipefilter_get_type (void)
-{
- static GType pipefilter_type = 0;
-
- if (!pipefilter_type) {
- static const GTypeInfo pipefilter_info = {
- sizeof(GstPipefilterClass),
- gst_pipefilter_base_init,
- NULL,
- (GClassInitFunc)gst_pipefilter_class_init,
- NULL,
- NULL,
- sizeof(GstPipefilter),
- 0,
- (GInstanceInitFunc)gst_pipefilter_init,
- };
- pipefilter_type = g_type_register_static(GST_TYPE_ELEMENT, "GstPipefilter", &pipefilter_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_pipefilter_debug, "pipefilter", 0, "pipefilter element");
- }
- return pipefilter_type;
-}
-
static void
gst_pipefilter_base_init (gpointer g_class)
{
gobject_class = (GObjectClass*)klass;
gstelement_class = (GstElementClass*)klass;
- parent_class = g_type_class_ref(GST_TYPE_ELEMENT);
gobject_class->set_property = gst_pipefilter_set_property;
gobject_class->get_property = gst_pipefilter_get_property;
return shaper_policy_type;
}
-static void gst_shaper_base_init (gpointer g_class);
-static void gst_shaper_class_init (GstShaperClass *klass);
-static void gst_shaper_init (GstShaper *shaper);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_shaper_debug, "shaper", 0, "shaper element");
+
+GST_BOILERPLATE_FULL (GstShaper, gst_shaper, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_shaper_set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec);
static void gst_shaper_loop (GstElement *element);
-static GstElementClass *parent_class = NULL;
-/* static guint gst_shaper_signals[LAST_SIGNAL] = { 0 }; */
-
-GType
-gst_shaper_get_type (void)
-{
- static GType shaper_type = 0;
-
- if (!shaper_type) {
- static const GTypeInfo shaper_info = {
- sizeof(GstShaperClass),
- gst_shaper_base_init,
- NULL,
- (GClassInitFunc)gst_shaper_class_init,
- NULL,
- NULL,
- sizeof(GstShaper),
- 0,
- (GInstanceInitFunc)gst_shaper_init,
- };
- shaper_type = g_type_register_static (GST_TYPE_ELEMENT, "GstShaper", &shaper_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_shaper_debug, "shaper", 0, "shaper element");
- }
- return shaper_type;
-}
static void
gst_shaper_base_init (gpointer g_class)
gobject_class = (GObjectClass*) klass;
gstelement_class = (GstElementClass*) klass;
- parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_POLICY,
g_param_spec_enum ("policy", "Policy", "Shaper policy",
};
-static void gst_statistics_base_init (gpointer g_class);
-static void gst_statistics_class_init (GstStatisticsClass *klass);
-static void gst_statistics_init (GstStatistics *statistics);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_statistics_debug, "statistics", 0, "statistics element");
+
+GST_BOILERPLATE_FULL (GstStatistics, gst_statistics, GstElement, GST_TYPE_ELEMENT, _do_init);
static void gst_statistics_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
static void gst_statistics_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
static void gst_statistics_reset (GstStatistics *statistics);
static void gst_statistics_print (GstStatistics *statistics);
-static GstElementClass *parent_class = NULL;
static guint gst_statistics_signals[LAST_SIGNAL] = { 0, };
static stats zero_stats = { 0, };
-GType
-gst_statistics_get_type (void)
-{
- static GType statistics_type = 0;
-
- if (!statistics_type) {
- static const GTypeInfo statistics_info = {
- sizeof(GstStatisticsClass),
- gst_statistics_base_init,
- NULL,
- (GClassInitFunc)gst_statistics_class_init,
- NULL,
- NULL,
- sizeof(GstStatistics),
- 0,
- (GInstanceInitFunc)gst_statistics_init,
- };
- statistics_type = g_type_register_static (GST_TYPE_ELEMENT, "GstStatistics", &statistics_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_statistics_debug, "statistics", 0, "statistics element");
- }
- return statistics_type;
-}
static void
gst_statistics_base_init (gpointer g_class)
gobject_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_BUFFERS,
g_param_spec_int64 ("buffers", "buffers", "total buffers count",
GST_STATIC_CAPS_ANY
);
-static void gst_tee_base_init (gpointer g_class);
-static void gst_tee_class_init (GstTeeClass *klass);
-static void gst_tee_init (GstTee *tee);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_tee_debug, "tee", 0, "tee element");
+
+GST_BOILERPLATE_FULL (GstTee, gst_tee, GstElement, GST_TYPE_ELEMENT, _do_init);
static GstPad* gst_tee_request_new_pad (GstElement *element, GstPadTemplate *temp, const gchar *unused);
static void gst_tee_chain (GstPad *pad, GstData *_data);
-static GstElementClass *parent_class = NULL;
-/*static guint gst_tee_signals[LAST_SIGNAL] = { 0 };*/
-
-GType
-gst_tee_get_type(void) {
- static GType tee_type = 0;
-
- if (!tee_type) {
- static const GTypeInfo tee_info = {
- sizeof(GstTeeClass),
- gst_tee_base_init,
- NULL,
- (GClassInitFunc)gst_tee_class_init,
- NULL,
- NULL,
- sizeof(GstTee),
- 0,
- (GInstanceInitFunc)gst_tee_init,
- };
- tee_type = g_type_register_static (GST_TYPE_ELEMENT, "GstTee", &tee_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_tee_debug, "tee", 0, "tee element");
- }
- return tee_type;
-}
-
static void
gst_tee_base_init (gpointer g_class)
{
gobject_class = (GObjectClass*)klass;
gstelement_class = (GstElementClass*)klass;
- parent_class = g_type_class_ref(GST_TYPE_ELEMENT);
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_NUM_PADS,
g_param_spec_int ("num_pads", "num_pads", "num_pads",
#include "gst/gst_private.h"
#include <gst/gsttypefind.h>
+#include <gst/gstutils.h>
GST_DEBUG_CATEGORY_STATIC (gst_type_find_element_debug);
#define GST_CAT_DEFAULT gst_type_find_element_debug
};
-static void gst_type_find_element_base_init (gpointer g_class);
-static void gst_type_find_element_class_init (gpointer g_class,
- gpointer class_data);
-static void gst_type_find_element_init (GTypeInstance *instance,
- gpointer g_class);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_type_find_element_debug, "typefind", \
+ GST_DEBUG_BG_YELLOW | GST_DEBUG_FG_GREEN, "type finding element");
+
+GST_BOILERPLATE_FULL (GstTypeFindElement, gst_type_find_element, GstElement, GST_TYPE_ELEMENT, _do_init);
+
static void gst_type_find_element_dispose (GObject * object);
static void gst_type_find_element_set_property (GObject * object,
guint prop_id,
static GstElementStateReturn
gst_type_find_element_change_state (GstElement * element);
-static GstElementClass *parent_class = NULL;
static guint gst_type_find_element_signals[LAST_SIGNAL] = { 0 };
-GType
-gst_type_find_element_get_type (void)
-{
- static GType typefind_type = 0;
-
- if (!typefind_type) {
- static const GTypeInfo typefind_info = {
- sizeof (GstTypeFindElementClass),
- gst_type_find_element_base_init,
- NULL,
- gst_type_find_element_class_init,
- NULL,
- NULL,
- sizeof (GstTypeFindElement),
- 0,
- gst_type_find_element_init,
- NULL
- };
- typefind_type = g_type_register_static (GST_TYPE_ELEMENT,
- "GstTypeFindElement",
- &typefind_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_type_find_element_debug, "typefind",
- GST_DEBUG_BG_YELLOW | GST_DEBUG_FG_GREEN, "typefind element");
- }
- return typefind_type;
-}
static void
gst_type_find_element_have_type (GstTypeFindElement *typefind, guint probability, const GstCaps *caps)
{
gst_element_class_set_details (gstelement_class, &gst_type_find_element_details);
}
static void
-gst_type_find_element_class_init (gpointer g_class, gpointer class_data)
+gst_type_find_element_class_init (GstTypeFindElementClass *typefind_class)
{
- GObjectClass *gobject_class;
- GstElementClass *gstelement_class;
- GstTypeFindElementClass *typefind_class;
-
- gobject_class = G_OBJECT_CLASS (g_class);
- gstelement_class = GST_ELEMENT_CLASS (g_class);
- typefind_class = GST_TYPE_FIND_ELEMENT_CLASS (g_class);
-
- parent_class = g_type_class_peek_parent (g_class);
+ GObjectClass *gobject_class = G_OBJECT_CLASS (typefind_class);
+ GstElementClass *gstelement_class = GST_ELEMENT_CLASS (typefind_class);
gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_type_find_element_set_property);
gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_type_find_element_get_property);
GST_TYPE_FIND_MINIMUM, GST_TYPE_FIND_MAXIMUM, GST_TYPE_FIND_MAXIMUM, G_PARAM_READWRITE));
gst_type_find_element_signals[HAVE_TYPE] = g_signal_new ("have_type",
- G_TYPE_FROM_CLASS (g_class), G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS (typefind_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstTypeFindElementClass, have_type), NULL, NULL,
gst_marshal_VOID__UINT_POINTER, G_TYPE_NONE, 2,
G_TYPE_UINT, G_TYPE_POINTER);
gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_type_find_element_change_state);
}
static void
-gst_type_find_element_init (GTypeInstance *instance, gpointer g_class)
+gst_type_find_element_init (GstTypeFindElement *typefind)
{
- GstTypeFindElement *typefind = GST_TYPE_FIND_ELEMENT (instance);
-
/* sinkpad */
typefind->sink = gst_pad_new_from_template (
gst_static_pad_template_get (&type_find_element_sink_template), "sink");
#include "gst/gst_private.h"
#include <gst/gsttypefind.h>
+#include <gst/gstutils.h>
GST_DEBUG_CATEGORY_STATIC (gst_type_find_element_debug);
#define GST_CAT_DEFAULT gst_type_find_element_debug
};
-static void gst_type_find_element_base_init (gpointer g_class);
-static void gst_type_find_element_class_init (gpointer g_class,
- gpointer class_data);
-static void gst_type_find_element_init (GTypeInstance *instance,
- gpointer g_class);
+#define _do_init(bla) \
+ GST_DEBUG_CATEGORY_INIT (gst_type_find_element_debug, "typefind", \
+ GST_DEBUG_BG_YELLOW | GST_DEBUG_FG_GREEN, "type finding element");
+
+GST_BOILERPLATE_FULL (GstTypeFindElement, gst_type_find_element, GstElement, GST_TYPE_ELEMENT, _do_init);
+
static void gst_type_find_element_dispose (GObject * object);
static void gst_type_find_element_set_property (GObject * object,
guint prop_id,
static GstElementStateReturn
gst_type_find_element_change_state (GstElement * element);
-static GstElementClass *parent_class = NULL;
static guint gst_type_find_element_signals[LAST_SIGNAL] = { 0 };
-GType
-gst_type_find_element_get_type (void)
-{
- static GType typefind_type = 0;
-
- if (!typefind_type) {
- static const GTypeInfo typefind_info = {
- sizeof (GstTypeFindElementClass),
- gst_type_find_element_base_init,
- NULL,
- gst_type_find_element_class_init,
- NULL,
- NULL,
- sizeof (GstTypeFindElement),
- 0,
- gst_type_find_element_init,
- NULL
- };
- typefind_type = g_type_register_static (GST_TYPE_ELEMENT,
- "GstTypeFindElement",
- &typefind_info, 0);
-
- GST_DEBUG_CATEGORY_INIT (gst_type_find_element_debug, "typefind",
- GST_DEBUG_BG_YELLOW | GST_DEBUG_FG_GREEN, "typefind element");
- }
- return typefind_type;
-}
static void
gst_type_find_element_have_type (GstTypeFindElement *typefind, guint probability, const GstCaps *caps)
{
gst_element_class_set_details (gstelement_class, &gst_type_find_element_details);
}
static void
-gst_type_find_element_class_init (gpointer g_class, gpointer class_data)
+gst_type_find_element_class_init (GstTypeFindElementClass *typefind_class)
{
- GObjectClass *gobject_class;
- GstElementClass *gstelement_class;
- GstTypeFindElementClass *typefind_class;
-
- gobject_class = G_OBJECT_CLASS (g_class);
- gstelement_class = GST_ELEMENT_CLASS (g_class);
- typefind_class = GST_TYPE_FIND_ELEMENT_CLASS (g_class);
-
- parent_class = g_type_class_peek_parent (g_class);
+ GObjectClass *gobject_class = G_OBJECT_CLASS (typefind_class);
+ GstElementClass *gstelement_class = GST_ELEMENT_CLASS (typefind_class);
gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_type_find_element_set_property);
gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_type_find_element_get_property);
GST_TYPE_FIND_MINIMUM, GST_TYPE_FIND_MAXIMUM, GST_TYPE_FIND_MAXIMUM, G_PARAM_READWRITE));
gst_type_find_element_signals[HAVE_TYPE] = g_signal_new ("have_type",
- G_TYPE_FROM_CLASS (g_class), G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS (typefind_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstTypeFindElementClass, have_type), NULL, NULL,
gst_marshal_VOID__UINT_POINTER, G_TYPE_NONE, 2,
G_TYPE_UINT, G_TYPE_POINTER);
gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_type_find_element_change_state);
}
static void
-gst_type_find_element_init (GTypeInstance *instance, gpointer g_class)
+gst_type_find_element_init (GstTypeFindElement *typefind)
{
- GstTypeFindElement *typefind = GST_TYPE_FIND_ELEMENT (instance);
-
/* sinkpad */
typefind->sink = gst_pad_new_from_template (
gst_static_pad_template_get (&type_find_element_sink_template), "sink");