taglist: Stop inlining gst_tag_list_copy

This way it gets exposed to bindings through GObject Introspection.

Same logic as with d1b2d3429c

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/561>
This commit is contained in:
Thibault Saunier 2020-07-09 07:57:01 -04:00
parent 4b6245597c
commit 1627222aa5
2 changed files with 25 additions and 22 deletions

View file

@ -2062,3 +2062,24 @@ gst_tag_list_get_sample_index (const GstTagList * list,
*sample = g_value_dup_boxed (v); *sample = g_value_dup_boxed (v);
return (*sample != NULL); return (*sample != NULL);
} }
/**
* gst_tag_list_copy:
* @taglist: a #GstTagList.
*
* Creates a new #GstTagList as a copy of the old @taglist. The new taglist
* will have a refcount of 1, owned by the caller, and will be writable as
* a result.
*
* Note that this function is the semantic equivalent of a gst_tag_list_ref()
* followed by a gst_tag_list_make_writable(). If you only want to hold on to a
* reference to the data, you should use gst_tag_list_ref().
*
* When you are finished with the taglist, call gst_tag_list_unref() on it.
*
* Returns: the new #GstTagList
*/
GstTagList *(gst_tag_list_copy) (const GstTagList * taglist)
{
return GST_TAG_LIST (gst_mini_object_copy (GST_MINI_OBJECT_CAST (taglist)));
}

View file

@ -453,28 +453,10 @@ gst_clear_tag_list (GstTagList ** taglist_ptr)
gst_clear_mini_object ((GstMiniObject **) taglist_ptr); gst_clear_mini_object ((GstMiniObject **) taglist_ptr);
} }
/** GST_API
* gst_tag_list_copy: (skip) GstTagList* gst_tag_list_copy(const GstTagList* taglist);
* @taglist: a #GstTagList.
* #define gst_tag_list_copy(taglist) GST_TAG_LIST (gst_mini_object_copy (GST_MINI_OBJECT_CAST (taglist)))
* Creates a new #GstTagList as a copy of the old @taglist. The new taglist
* will have a refcount of 1, owned by the caller, and will be writable as
* a result.
*
* Note that this function is the semantic equivalent of a gst_tag_list_ref()
* followed by a gst_tag_list_make_writable(). If you only want to hold on to a
* reference to the data, you should use gst_tag_list_ref().
*
* When you are finished with the taglist, call gst_tag_list_unref() on it.
*
* Returns: the new #GstTagList
*/
static inline GstTagList* gst_tag_list_copy(const GstTagList* taglist);
static inline GstTagList *
gst_tag_list_copy (const GstTagList * taglist)
{
return GST_TAG_LIST (gst_mini_object_copy (GST_MINI_OBJECT_CAST (taglist)));
}
/** /**
* gst_tag_list_replace: * gst_tag_list_replace: