mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 12:11:13 +00:00
Added some more useful functions to create props
Original commit message from CVS: Added some more useful functions to create props
This commit is contained in:
parent
4cebbc6821
commit
c78119cf6e
2 changed files with 64 additions and 9 deletions
|
@ -274,8 +274,15 @@ gst_props_entry_destroy (GstPropsEntry *entry)
|
|||
g_mutex_unlock (_gst_props_entries_chunk_lock);
|
||||
}
|
||||
|
||||
static GstProps*
|
||||
gst_props_alloc (void)
|
||||
/**
|
||||
* gst_props_empty_new:
|
||||
*
|
||||
* Create a new empty property.
|
||||
*
|
||||
* Returns: the new property
|
||||
*/
|
||||
GstProps*
|
||||
gst_props_empty_new (void)
|
||||
{
|
||||
GstProps *props;
|
||||
|
||||
|
@ -290,7 +297,14 @@ gst_props_alloc (void)
|
|||
return props;
|
||||
}
|
||||
|
||||
static void
|
||||
/**
|
||||
* gst_props_add_entry:
|
||||
* @props: the property to add the entry to
|
||||
* @entry: the entry to add
|
||||
*
|
||||
* Addes the given propsentry to the props
|
||||
*/
|
||||
void
|
||||
gst_props_add_entry (GstProps *props, GstPropsEntry *entry)
|
||||
{
|
||||
g_return_if_fail (props);
|
||||
|
@ -455,6 +469,40 @@ gst_props_add_to_int_list (GList * entries, GstPropsEntry * newentry)
|
|||
return g_list_prepend (entries, newentry);
|
||||
}
|
||||
|
||||
static GstPropsEntry*
|
||||
gst_props_entry_newv (const gchar *name, va_list var_args)
|
||||
{
|
||||
GstPropsEntry *entry;
|
||||
|
||||
entry = gst_props_alloc_entry ();
|
||||
entry->propid = g_quark_from_string (name);
|
||||
GST_PROPS_ENTRY_FILL (entry, var_args);
|
||||
|
||||
return entry;
|
||||
}
|
||||
|
||||
/**
|
||||
* gst_props_entry_new:
|
||||
* @name: the name of the props entry
|
||||
* @...: the value of the entry
|
||||
*
|
||||
* Create a new property entry with the given key/value.
|
||||
*
|
||||
* Returns: the new entry.
|
||||
*/
|
||||
GstPropsEntry*
|
||||
gst_props_entry_new (const gchar *name, ...)
|
||||
{
|
||||
va_list var_args;
|
||||
GstPropsEntry *entry;
|
||||
|
||||
va_start (var_args, name);
|
||||
entry = gst_props_entry_newv (name, var_args);
|
||||
va_end (var_args);
|
||||
|
||||
return entry;
|
||||
}
|
||||
|
||||
/**
|
||||
* gst_props_newv:
|
||||
* @firstname: the first property name
|
||||
|
@ -487,7 +535,7 @@ gst_props_newv (const gchar *firstname, va_list var_args)
|
|||
if (firstname == NULL)
|
||||
return NULL;
|
||||
|
||||
props = gst_props_alloc ();
|
||||
props = gst_props_empty_new ();
|
||||
|
||||
prop_name = firstname;
|
||||
|
||||
|
@ -600,6 +648,8 @@ gst_props_set (GstProps *props, const gchar *name, ...)
|
|||
GList *lentry;
|
||||
va_list var_args;
|
||||
|
||||
g_return_val_if_fail (props != NULL, NULL);
|
||||
|
||||
quark = g_quark_from_string (name);
|
||||
|
||||
lentry = g_list_find_custom (props->properties, GINT_TO_POINTER (quark), props_find_func);
|
||||
|
@ -622,6 +672,7 @@ gst_props_set (GstProps *props, const gchar *name, ...)
|
|||
return props;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* gst_props_unref:
|
||||
* @props: the props to unref
|
||||
|
@ -738,7 +789,7 @@ gst_props_copy (GstProps *props)
|
|||
if (props == NULL)
|
||||
return NULL;
|
||||
|
||||
new = gst_props_alloc ();
|
||||
new = gst_props_empty_new ();
|
||||
new->properties = gst_props_list_copy (props->properties);
|
||||
new->fixed = props->fixed;
|
||||
|
||||
|
@ -1575,7 +1626,7 @@ gst_props_intersect (GstProps *props1, GstProps *props2)
|
|||
GList *leftovers;
|
||||
GstPropsEntry *iprops = NULL;
|
||||
|
||||
intersection = gst_props_alloc ();
|
||||
intersection = gst_props_empty_new ();
|
||||
intersection->fixed = TRUE;
|
||||
|
||||
g_return_val_if_fail (props1 != NULL, NULL);
|
||||
|
@ -1697,7 +1748,7 @@ gst_props_normalize (GstProps *props)
|
|||
GstProps *newprops;
|
||||
GList *lentry;
|
||||
|
||||
newprops = gst_props_alloc ();
|
||||
newprops = gst_props_empty_new ();
|
||||
newprops->properties = gst_props_list_copy (props->properties);
|
||||
lentry = g_list_find_custom (newprops->properties, GINT_TO_POINTER (list_entry->propid), props_find_func);
|
||||
if (lentry) {
|
||||
|
@ -1940,7 +1991,7 @@ gst_props_load_thyself (xmlNodePtr parent)
|
|||
xmlNodePtr field = parent->xmlChildrenNode;
|
||||
gchar *prop;
|
||||
|
||||
props = gst_props_alloc ();
|
||||
props = gst_props_empty_new ();
|
||||
|
||||
while (field) {
|
||||
if (!strcmp (field->name, "list")) {
|
||||
|
|
|
@ -87,6 +87,7 @@ void _gst_props_initialize (void);
|
|||
|
||||
GstProps* gst_props_new (const gchar *firstname, ...);
|
||||
GstProps* gst_props_newv (const gchar *firstname, va_list var_args);
|
||||
GstProps* gst_props_empty_new (void);
|
||||
|
||||
void gst_props_unref (GstProps *props);
|
||||
void gst_props_ref (GstProps *props);
|
||||
|
@ -110,9 +111,12 @@ gboolean gst_props_has_property (GstProps *props, const gchar *name);
|
|||
gboolean gst_props_has_property_typed (GstProps *props, const gchar *name, GstPropsType type);
|
||||
gboolean gst_props_has_fixed_property (GstProps *props, const gchar *name);
|
||||
|
||||
const GstPropsEntry* gst_props_get_entry (GstProps *props, const gchar *name);
|
||||
void gst_props_add_entry (GstProps *props, GstPropsEntry *entry);
|
||||
|
||||
/* working with props entries */
|
||||
const GstPropsEntry* gst_props_get_entry (GstProps *props, const gchar *name);
|
||||
GstPropsEntry* gst_props_entry_new (const gchar *name, ...);
|
||||
|
||||
GstPropsType gst_props_entry_get_type (const GstPropsEntry *entry);
|
||||
const gchar* gst_props_entry_get_name (const GstPropsEntry *entry);
|
||||
gboolean gst_props_entry_is_fixed (const GstPropsEntry *entry);
|
||||
|
|
Loading…
Reference in a new issue