mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 04:36:20 +00:00
elementfactory: add gst_element_factory_get_metadata_keys()
API: gst_element_factory_get_metadata_keys()
This commit is contained in:
parent
6e87803114
commit
1ee520790a
4 changed files with 37 additions and 0 deletions
|
@ -814,6 +814,7 @@ gst_element_register
|
||||||
gst_element_factory_find
|
gst_element_factory_find
|
||||||
gst_element_factory_get_element_type
|
gst_element_factory_get_element_type
|
||||||
gst_element_factory_get_metadata
|
gst_element_factory_get_metadata
|
||||||
|
gst_element_factory_get_metadata_keys
|
||||||
gst_element_factory_get_num_pad_templates
|
gst_element_factory_get_num_pad_templates
|
||||||
gst_element_factory_get_uri_type
|
gst_element_factory_get_uri_type
|
||||||
gst_element_factory_get_uri_protocols
|
gst_element_factory_get_uri_protocols
|
||||||
|
|
|
@ -509,6 +509,40 @@ gst_element_factory_get_metadata (GstElementFactory * factory,
|
||||||
return gst_structure_get_string ((GstStructure *) factory->metadata, key);
|
return gst_structure_get_string ((GstStructure *) factory->metadata, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gst_element_factory_get_metadata_keys:
|
||||||
|
* @factory,: a #GstElementFactory
|
||||||
|
*
|
||||||
|
* Get the available keys for the metadata on @factory.
|
||||||
|
*
|
||||||
|
* Returns: a %NULL-terminated array of key strings, or %NULL when
|
||||||
|
* there is no metadata. Free with g_strfreev() when no longer needd.
|
||||||
|
*/
|
||||||
|
gchar **
|
||||||
|
gst_element_factory_get_metadata_keys (GstElementFactory * factory)
|
||||||
|
{
|
||||||
|
GstStructure *metadata;
|
||||||
|
gchar **arr;
|
||||||
|
gint i, num;
|
||||||
|
|
||||||
|
g_return_val_if_fail (GST_IS_ELEMENT_FACTORY (factory), NULL);
|
||||||
|
|
||||||
|
metadata = (GstStructure *) factory->metadata;
|
||||||
|
if (metadata == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
num = gst_structure_n_fields (metadata);
|
||||||
|
if (num == 0)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
arr = g_new (gchar *, num + 1);
|
||||||
|
for (i = 0; i < num; ++i) {
|
||||||
|
arr[i] = g_strdup (gst_structure_nth_field_name (metadata, i));
|
||||||
|
}
|
||||||
|
arr[i] = NULL;
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_element_factory_get_num_pad_templates:
|
* gst_element_factory_get_num_pad_templates:
|
||||||
* @factory: a #GstElementFactory
|
* @factory: a #GstElementFactory
|
||||||
|
|
|
@ -85,6 +85,7 @@ GstElementFactory * gst_element_factory_find (const gchar *na
|
||||||
GType gst_element_factory_get_element_type (GstElementFactory *factory);
|
GType gst_element_factory_get_element_type (GstElementFactory *factory);
|
||||||
|
|
||||||
const gchar * gst_element_factory_get_metadata (GstElementFactory *factory, const gchar *key);
|
const gchar * gst_element_factory_get_metadata (GstElementFactory *factory, const gchar *key);
|
||||||
|
gchar ** gst_element_factory_get_metadata_keys (GstElementFactory *factory);
|
||||||
|
|
||||||
guint gst_element_factory_get_num_pad_templates (GstElementFactory *factory);
|
guint gst_element_factory_get_num_pad_templates (GstElementFactory *factory);
|
||||||
const GList * gst_element_factory_get_static_pad_templates (GstElementFactory *factory);
|
const GList * gst_element_factory_get_static_pad_templates (GstElementFactory *factory);
|
||||||
|
|
|
@ -338,6 +338,7 @@ EXPORTS
|
||||||
gst_element_factory_find
|
gst_element_factory_find
|
||||||
gst_element_factory_get_element_type
|
gst_element_factory_get_element_type
|
||||||
gst_element_factory_get_metadata
|
gst_element_factory_get_metadata
|
||||||
|
gst_element_factory_get_metadata_keys
|
||||||
gst_element_factory_get_num_pad_templates
|
gst_element_factory_get_num_pad_templates
|
||||||
gst_element_factory_get_static_pad_templates
|
gst_element_factory_get_static_pad_templates
|
||||||
gst_element_factory_get_type
|
gst_element_factory_get_type
|
||||||
|
|
Loading…
Reference in a new issue