mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-20 04:56:24 +00:00
gst: Use G_DEFINE_TYPE and don't call g_thread_init() from class_init
class_init is too late for calling g_thread_init() as g_thread_init() needs to be called before any GObject function.
This commit is contained in:
parent
66295d508b
commit
42febffe0d
2 changed files with 5 additions and 65 deletions
38
gst/gstbus.c
38
gst/gstbus.c
|
@ -99,37 +99,12 @@ static guint gst_bus_signals[LAST_SIGNAL] = { 0 };
|
||||||
struct _GstBusPrivate
|
struct _GstBusPrivate
|
||||||
{
|
{
|
||||||
guint num_sync_message_emitters;
|
guint num_sync_message_emitters;
|
||||||
|
|
||||||
GCond *queue_cond;
|
GCond *queue_cond;
|
||||||
|
|
||||||
GSource *watch_id;
|
GSource *watch_id;
|
||||||
|
|
||||||
GMainContext *main_context;
|
GMainContext *main_context;
|
||||||
};
|
};
|
||||||
|
|
||||||
GType
|
G_DEFINE_TYPE (GstBus, gst_bus, GST_TYPE_OBJECT);
|
||||||
gst_bus_get_type (void)
|
|
||||||
{
|
|
||||||
static GType bus_type = 0;
|
|
||||||
|
|
||||||
if (G_UNLIKELY (bus_type == 0)) {
|
|
||||||
static const GTypeInfo bus_info = {
|
|
||||||
sizeof (GstBusClass),
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
(GClassInitFunc) gst_bus_class_init,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
sizeof (GstBus),
|
|
||||||
0,
|
|
||||||
(GInstanceInitFunc) gst_bus_init,
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
bus_type = g_type_register_static (GST_TYPE_OBJECT, "GstBus", &bus_info, 0);
|
|
||||||
}
|
|
||||||
return bus_type;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* fixme: do something about this */
|
/* fixme: do something about this */
|
||||||
static void
|
static void
|
||||||
|
@ -162,15 +137,10 @@ marshal_VOID__MINIOBJECT (GClosure * closure, GValue * return_value,
|
||||||
static void
|
static void
|
||||||
gst_bus_class_init (GstBusClass * klass)
|
gst_bus_class_init (GstBusClass * klass)
|
||||||
{
|
{
|
||||||
GObjectClass *gobject_class;
|
GObjectClass *gobject_class = (GObjectClass *) klass;
|
||||||
|
|
||||||
gobject_class = (GObjectClass *) klass;
|
|
||||||
|
|
||||||
parent_class = g_type_class_peek_parent (klass);
|
parent_class = g_type_class_peek_parent (klass);
|
||||||
|
|
||||||
if (!g_thread_supported ())
|
|
||||||
g_thread_init (NULL);
|
|
||||||
|
|
||||||
gobject_class->dispose = GST_DEBUG_FUNCPTR (gst_bus_dispose);
|
gobject_class->dispose = GST_DEBUG_FUNCPTR (gst_bus_dispose);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -227,9 +197,7 @@ gst_bus_init (GstBus * bus)
|
||||||
static void
|
static void
|
||||||
gst_bus_dispose (GObject * object)
|
gst_bus_dispose (GObject * object)
|
||||||
{
|
{
|
||||||
GstBus *bus;
|
GstBus *bus = GST_BUS (object);
|
||||||
|
|
||||||
bus = GST_BUS (object);
|
|
||||||
|
|
||||||
if (bus->queue) {
|
if (bus->queue) {
|
||||||
GstMessage *message;
|
GstMessage *message;
|
||||||
|
|
|
@ -523,43 +523,15 @@ gst_clock_id_unschedule (GstClockID id)
|
||||||
/**
|
/**
|
||||||
* GstClock abstract base class implementation
|
* GstClock abstract base class implementation
|
||||||
*/
|
*/
|
||||||
GType
|
G_DEFINE_TYPE (GstClock, gst_clock, GST_TYPE_OBJECT);
|
||||||
gst_clock_get_type (void)
|
|
||||||
{
|
|
||||||
static GType clock_type = 0;
|
|
||||||
|
|
||||||
if (G_UNLIKELY (clock_type == 0)) {
|
|
||||||
static const GTypeInfo clock_info = {
|
|
||||||
sizeof (GstClockClass),
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
(GClassInitFunc) gst_clock_class_init,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
sizeof (GstClock),
|
|
||||||
0,
|
|
||||||
(GInstanceInitFunc) gst_clock_init,
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
clock_type = g_type_register_static (GST_TYPE_OBJECT, "GstClock",
|
|
||||||
&clock_info, G_TYPE_FLAG_ABSTRACT);
|
|
||||||
}
|
|
||||||
return clock_type;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_clock_class_init (GstClockClass * klass)
|
gst_clock_class_init (GstClockClass * klass)
|
||||||
{
|
{
|
||||||
GObjectClass *gobject_class;
|
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
||||||
|
|
||||||
gobject_class = G_OBJECT_CLASS (klass);
|
|
||||||
|
|
||||||
parent_class = g_type_class_peek_parent (klass);
|
parent_class = g_type_class_peek_parent (klass);
|
||||||
|
|
||||||
if (!g_thread_supported ())
|
|
||||||
g_thread_init (NULL);
|
|
||||||
|
|
||||||
#ifndef GST_DISABLE_TRACE
|
#ifndef GST_DISABLE_TRACE
|
||||||
_gst_clock_entry_trace =
|
_gst_clock_entry_trace =
|
||||||
gst_alloc_trace_register (GST_CLOCK_ENTRY_TRACE_NAME);
|
gst_alloc_trace_register (GST_CLOCK_ENTRY_TRACE_NAME);
|
||||||
|
|
Loading…
Reference in a new issue