--- a/gstreamer_core/gst/gsttypefindfactory.c Tue Aug 31 15:30:33 2010 +0300
+++ b/gstreamer_core/gst/gsttypefindfactory.c Wed Sep 01 12:16:41 2010 +0100
@@ -89,32 +89,61 @@
GST_DEBUG_CATEGORY (type_find_debug);
#define GST_CAT_DEFAULT type_find_debug
+static void gst_type_find_factory_class_init (gpointer g_class,
+ gpointer class_data);
+static void gst_type_find_factory_init (GTypeInstance * instance,
+ gpointer g_class);
static void gst_type_find_factory_dispose (GObject * object);
static GstPluginFeatureClass *parent_class = NULL;
+#ifdef __SYMBIAN32__
+EXPORT_C
+#endif
-#define _do_init \
-{ \
- GST_DEBUG_CATEGORY_INIT (type_find_debug, "GST_TYPEFIND", \
- GST_DEBUG_FG_GREEN, "typefinding subsystem"); \
+
+GType
+gst_type_find_factory_get_type (void)
+{
+ static GType typefind_type = 0;
+
+ if (G_UNLIKELY (typefind_type == 0)) {
+ static const GTypeInfo typefind_info = {
+ sizeof (GstTypeFindFactoryClass),
+ NULL,
+ NULL,
+ gst_type_find_factory_class_init,
+ NULL,
+ NULL,
+ sizeof (GstTypeFindFactory),
+ 0,
+ gst_type_find_factory_init,
+ NULL
+ };
+
+ typefind_type = g_type_register_static (GST_TYPE_PLUGIN_FEATURE,
+ "GstTypeFindFactory", &typefind_info, 0);
+ GST_DEBUG_CATEGORY_INIT (type_find_debug, "GST_TYPEFIND",
+ GST_DEBUG_FG_GREEN, "typefinding subsystem");
+ }
+
+ return typefind_type;
}
-G_DEFINE_TYPE_WITH_CODE (GstTypeFindFactory, gst_type_find_factory,
- GST_TYPE_PLUGIN_FEATURE, _do_init);
+static void
+gst_type_find_factory_class_init (gpointer g_class, gpointer class_data)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (g_class);
-static void
-gst_type_find_factory_class_init (GstTypeFindFactoryClass * klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- parent_class = g_type_class_peek_parent (klass);
+ parent_class = g_type_class_peek_parent (g_class);
object_class->dispose = gst_type_find_factory_dispose;
}
static void
-gst_type_find_factory_init (GstTypeFindFactory * factory)
+gst_type_find_factory_init (GTypeInstance * instance, gpointer g_class)
{
+ GstTypeFindFactory *factory = GST_TYPE_FIND_FACTORY (instance);
+
factory->user_data = factory;
factory->user_data_notify = NULL;
}
@@ -229,8 +258,9 @@
GST_TYPE_FIND_FACTORY (gst_plugin_feature_load (GST_PLUGIN_FEATURE
(factory)));
if (new_factory) {
- if (new_factory->function)
- new_factory->function (find, new_factory->user_data);
+ g_assert (new_factory->function != NULL);
+
+ new_factory->function (find, new_factory->user_data);
gst_object_unref (new_factory);
}
}