_priv_gst_quarks_initialize ();
_gst_format_initialize ();
_gst_query_initialize ();
+ _gst_caps_initialize ();
+
g_type_class_ref (gst_object_get_type ());
g_type_class_ref (gst_pad_get_type ());
g_type_class_ref (gst_element_factory_get_type ());
gst_structure_get_type ();
_gst_value_initialize ();
g_type_class_ref (gst_param_spec_fraction_get_type ());
- gst_caps_get_type ();
_gst_event_initialize ();
_gst_buffer_initialize ();
_gst_buffer_list_initialize ();
* we want enterprise edition packagers dancing on our heads) */
void _gst_buffer_initialize (void);
void _gst_buffer_list_initialize (void);
+void _gst_caps_initialize (void);
void _gst_event_initialize (void);
void _gst_format_initialize (void);
void _gst_message_initialize (void);
#include "gstminiobject.h"
#include "gstversion.h"
-static GType _gst_buffer_type = 0;
-
-GType
-gst_buffer_get_type (void)
-{
- if (G_UNLIKELY (_gst_buffer_type == 0)) {
- _gst_buffer_type = gst_mini_object_register ("GstBuffer");
- }
- return _gst_buffer_type;
-}
+GType _gst_buffer_type = 0;
/* buffer alignment in bytes
* an alignment of 8 would be the same as malloc() guarantees
void
_gst_buffer_initialize (void)
{
- /* the GstMiniObject types need to be class_ref'd once before it can be
- * done from multiple threads;
- * see http://bugzilla.gnome.org/show_bug.cgi?id=304551 */
- gst_buffer_get_type ();
+ if (G_LIKELY (_gst_buffer_type == 0)) {
+ _gst_buffer_type = gst_mini_object_register ("GstBuffer");
#ifdef HAVE_GETPAGESIZE
#ifdef BUFFER_ALIGNMENT_PAGESIZE
- _gst_buffer_data_alignment = getpagesize ();
+ _gst_buffer_data_alignment = getpagesize ();
#endif
#endif
+ }
}
/**
* gst_buffer_try_new_and_alloc() if you want to handle this case
* gracefully or have gotten the size to allocate from an untrusted
* source such as a media stream.
- *
*
* Note that when @size == 0, the buffer data pointer will be NULL.
*
typedef struct _GstBuffer GstBuffer;
+extern GType _gst_buffer_type;
+
/**
* GST_BUFFER_TRACE_NAME:
*
*/
#define GST_BUFFER_TRACE_NAME "GstBuffer"
-#define GST_TYPE_BUFFER (gst_buffer_get_type())
+#define GST_TYPE_BUFFER (_gst_buffer_type)
#define GST_IS_BUFFER(obj) (GST_IS_MINI_OBJECT_TYPE(obj, GST_TYPE_BUFFER))
#define GST_BUFFER_CAST(obj) ((GstBuffer *)(obj))
#define GST_BUFFER(obj) (GST_BUFFER_CAST(obj))
gpointer _gst_reserved[GST_PADDING];
};
-GType gst_buffer_get_type (void);
-
/* allocation */
GstBuffer * gst_buffer_new (void);
GstBuffer * gst_buffer_new_and_alloc (guint size);
GList *last_returned;
};
-static GType _gst_buffer_list_type = 0;
+GType _gst_buffer_list_type = 0;
void
_gst_buffer_list_initialize (void)
{
- GType type = gst_buffer_list_get_type ();
-
- _gst_buffer_list_type = type;
+ if (G_LIKELY (_gst_buffer_list_type == 0)) {
+ _gst_buffer_list_type = gst_mini_object_register ("GstBufferList");
+ }
}
static GstBufferList *
return NULL;
}
-GType
-gst_buffer_list_get_type (void)
-{
- if (G_UNLIKELY (_gst_buffer_list_type == 0)) {
- _gst_buffer_list_type = gst_mini_object_register ("GstBufferList");
- }
- return _gst_buffer_list_type;
-}
-
/**
* gst_buffer_list_iterate:
* @list: a #GstBufferList
G_BEGIN_DECLS
-#define GST_TYPE_BUFFER_LIST (gst_buffer_list_get_type ())
+extern GType _gst_buffer_list_type;
+
+#define GST_TYPE_BUFFER_LIST (_gst_buffer_list_type)
#define GST_IS_BUFFER_LIST(obj) (GST_IS_MINI_OBJECT_TYPE(obj, GST_TYPE_BUFFER_LIST))
#define GST_BUFFER_LIST_CAST(obj) ((GstBufferList *)obj)
#define GST_BUFFER_LIST(obj) (GST_BUFFER_LIST_CAST(obj))
gpointer user_data);
-GType gst_buffer_list_get_type (void);
-
/* allocation */
GstBufferList *gst_buffer_list_new (void);
static gboolean gst_caps_from_string_inplace (GstCaps * caps,
const gchar * string);
-static GType _gst_caps_type = 0;
+GType _gst_caps_type = 0;
-GType
-gst_caps_get_type (void)
+void
+_gst_caps_initialize (void)
{
- if (G_UNLIKELY (_gst_caps_type == 0)) {
+ if (G_LIKELY (_gst_caps_type == 0)) {
_gst_caps_type = gst_mini_object_register ("GstCaps");
g_value_register_transform_func (_gst_caps_type,
G_TYPE_STRING, gst_caps_transform_to_string);
}
-
- return _gst_caps_type;
}
static GstCaps *
G_BEGIN_DECLS
-#define GST_TYPE_CAPS (gst_caps_get_type())
+extern GType _gst_caps_type;
+
+#define GST_TYPE_CAPS (_gst_caps_type)
#define GST_CAPS(object) ((GstCaps*)object)
#define GST_IS_CAPS(object) (GST_IS_MINI_OBJECT_TYPE(object, GST_TYPE_CAPS))
gpointer _gst_reserved[GST_PADDING];
};
-GType gst_caps_get_type (void);
GstCaps * gst_caps_new_empty (void);
GstCaps * gst_caps_new_any (void);
GstCaps * gst_caps_new_simple (const char *media_type,
g_object_class_install_property (gobject_class, PROP_CAPS,
g_param_spec_boxed ("caps", _("caps"),
- _("detected capabilities in stream"), gst_caps_get_type (),
+ _("detected capabilities in stream"), GST_TYPE_CAPS,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_MINIMUM,
g_param_spec_uint ("minimum", _("minimum"),
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_FORCE_CAPS,
g_param_spec_boxed ("force-caps", _("force caps"),
- _("force caps without doing a typefind"), gst_caps_get_type (),
+ _("force caps without doing a typefind"), GST_TYPE_CAPS,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
/**
* GstTypeFindElement::have-type: