gst/gsttypefind.c: Make gst_type_find_register work for static typefind functions, ie. allow passing plugin == NULL (...

Original commit message from CVS:
* gst/gsttypefind.c: (gst_type_find_register):
Make gst_type_find_register work for static typefind functions,
ie. allow passing plugin == NULL (prerequisite for #498924).
* gst/gstelementfactory.c: (gst_element_register):
Small docs addition.
This commit is contained in:
Tim-Philipp Müller 2007-12-21 20:58:23 +00:00
parent 96d28a501f
commit 94029e9d71
3 changed files with 18 additions and 4 deletions

View file

@ -1,3 +1,12 @@
2007-12-21 Tim-Philipp Müller <tim at centricular dot net>
* gst/gsttypefind.c: (gst_type_find_register):
Make gst_type_find_register work for static typefind functions,
ie. allow passing plugin == NULL (prerequisite for #498924).
* gst/gstelementfactory.c: (gst_element_register):
Small docs addition.
2007-12-21 Wim Taymans <wim.taymans@collabora.co.uk> 2007-12-21 Wim Taymans <wim.taymans@collabora.co.uk>
* gst/gstpad.c: (gst_pad_dispose): * gst/gstpad.c: (gst_pad_dispose):

View file

@ -254,7 +254,8 @@ gst_element_factory_cleanup (GstElementFactory * factory)
/** /**
* gst_element_register: * gst_element_register:
* @plugin: #GstPlugin to register the element with * @plugin: #GstPlugin to register the element with, or NULL for a static
* element (note that passing NULL only works in GStreamer 0.10.13 and later)
* @name: name of elements of this type * @name: name of elements of this type
* @rank: rank of element (higher rank means more importance when autoplugging) * @rank: rank of element (higher rank means more importance when autoplugging)
* @type: GType of element to register * @type: GType of element to register

View file

@ -51,7 +51,8 @@ gst_type_find_get_type (void)
/** /**
* gst_type_find_register: * gst_type_find_register:
* @plugin: A #GstPlugin. * @plugin: A #GstPlugin, or NULL for a static typefind function (note that
* passing NULL only works in GStreamer 0.10.16 and later)
* @name: The name for registering * @name: The name for registering
* @rank: The rank (or importance) of this typefind function * @rank: The rank (or importance) of this typefind function
* @func: The #GstTypeFindFunction to use * @func: The #GstTypeFindFunction to use
@ -76,7 +77,6 @@ gst_type_find_register (GstPlugin * plugin, const gchar * name, guint rank,
{ {
GstTypeFindFactory *factory; GstTypeFindFactory *factory;
g_return_val_if_fail (plugin != NULL, FALSE);
g_return_val_if_fail (name != NULL, FALSE); g_return_val_if_fail (name != NULL, FALSE);
g_return_val_if_fail (func != NULL, FALSE); g_return_val_if_fail (func != NULL, FALSE);
@ -96,7 +96,11 @@ gst_type_find_register (GstPlugin * plugin, const gchar * name, guint rank,
factory->function = func; factory->function = func;
factory->user_data = data; factory->user_data = data;
factory->user_data_notify = data_notify; factory->user_data_notify = data_notify;
if (plugin && plugin->desc.name) {
GST_PLUGIN_FEATURE (factory)->plugin_name = plugin->desc.name; /* interned string */ GST_PLUGIN_FEATURE (factory)->plugin_name = plugin->desc.name; /* interned string */
} else {
GST_PLUGIN_FEATURE (factory)->plugin_name = "NULL";
}
GST_PLUGIN_FEATURE (factory)->loaded = TRUE; GST_PLUGIN_FEATURE (factory)->loaded = TRUE;
gst_registry_add_feature (gst_registry_get_default (), gst_registry_add_feature (gst_registry_get_default (),