mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-11 09:55:36 +00:00
taglist: add to_string and new_from_string functions
We want to make GstTagList opaque and not have people use GstStructure API on it. API: gst_tag_list_to_string() API: gst_tag_list_new_from_string()
This commit is contained in:
parent
911c078c2b
commit
606c53fc94
5 changed files with 47 additions and 2 deletions
|
@ -2366,6 +2366,8 @@ gst_tag_is_fixed
|
|||
gst_tag_list_new
|
||||
gst_tag_list_new_full
|
||||
gst_tag_list_new_full_valist
|
||||
gst_tag_list_new_from_string
|
||||
gst_tag_list_to_string
|
||||
gst_is_tag_list
|
||||
gst_tag_list_is_empty
|
||||
gst_tag_list_is_equal
|
||||
|
|
|
@ -697,6 +697,44 @@ gst_tag_list_new_full_valist (va_list var_args)
|
|||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* gst_tag_list_to_string:
|
||||
* @list: a #GstTagList
|
||||
*
|
||||
* Serializes a tag list to a string.
|
||||
*
|
||||
* Returns: a newly-allocated string, or NULL in case of an error. The
|
||||
* string must be freed with g_free() when no longer needed.
|
||||
*
|
||||
* Since: 0.10.36
|
||||
*/
|
||||
gchar *
|
||||
gst_tag_list_to_string (const GstTagList * list)
|
||||
{
|
||||
g_return_val_if_fail (GST_IS_TAG_LIST (list), NULL);
|
||||
|
||||
return gst_structure_to_string (GST_STRUCTURE (list));
|
||||
}
|
||||
|
||||
/**
|
||||
* gst_tag_list_new_from_string:
|
||||
* @str: a string created with gst_tag_list_to_string()
|
||||
*
|
||||
* Deserializes a tag list.
|
||||
*
|
||||
* Returns: a new #GstTagList, or NULL in case of an error.
|
||||
*
|
||||
* Since: 0.10.36
|
||||
*/
|
||||
GstTagList *
|
||||
gst_tag_list_new_from_string (const gchar * str)
|
||||
{
|
||||
g_return_val_if_fail (str != NULL, NULL);
|
||||
g_return_val_if_fail (g_str_has_prefix (str, "taglist"), NULL);
|
||||
|
||||
return GST_TAG_LIST (gst_structure_from_string (str, NULL));
|
||||
}
|
||||
|
||||
/**
|
||||
* gst_tag_list_is_empty:
|
||||
* @list: A #GstTagList.
|
||||
|
|
|
@ -215,6 +215,9 @@ GstTagList * gst_tag_list_new (void);
|
|||
GstTagList * gst_tag_list_new_full (const gchar * tag, ...);
|
||||
GstTagList * gst_tag_list_new_full_valist (va_list var_args);
|
||||
|
||||
gchar * gst_tag_list_to_string (const GstTagList * list);
|
||||
GstTagList * gst_tag_list_new_from_string (const gchar * str);
|
||||
|
||||
gboolean gst_is_tag_list (gconstpointer p);
|
||||
GstTagList * gst_tag_list_copy (const GstTagList * list);
|
||||
gboolean gst_tag_list_is_empty (const GstTagList * list);
|
||||
|
|
|
@ -274,11 +274,11 @@ GST_START_TEST (test_date_tags)
|
|||
tag_list = gst_tag_list_new ();
|
||||
gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND, GST_TAG_DATE, date, NULL);
|
||||
|
||||
str = gst_structure_to_string (tag_list);
|
||||
str = gst_tag_list_to_string (tag_list);
|
||||
fail_if (str == NULL);
|
||||
fail_if (strstr (str, "2005-10-14") == NULL);
|
||||
|
||||
tag_list2 = gst_structure_from_string (str, NULL);
|
||||
tag_list2 = gst_tag_list_new_from_string (str);
|
||||
fail_if (tag_list2 == NULL);
|
||||
fail_if (!gst_tag_list_get_date (tag_list2, GST_TAG_DATE, &date2));
|
||||
fail_unless (gst_tag_list_is_equal (tag_list2, tag_list));
|
||||
|
|
|
@ -1086,10 +1086,12 @@ EXPORTS
|
|||
gst_tag_list_is_equal
|
||||
gst_tag_list_merge
|
||||
gst_tag_list_new
|
||||
gst_tag_list_new_from_string
|
||||
gst_tag_list_new_full
|
||||
gst_tag_list_new_full_valist
|
||||
gst_tag_list_peek_string_index
|
||||
gst_tag_list_remove_tag
|
||||
gst_tag_list_to_string
|
||||
gst_tag_merge_mode_get_type
|
||||
gst_tag_merge_strings_with_comma
|
||||
gst_tag_merge_use_first
|
||||
|
|
Loading…
Reference in a new issue