+ g_return_if_fail (name != NULL);
+ g_return_if_fail (nick != NULL);
+ g_return_if_fail (blurb != NULL);
+ g_return_if_fail (type != 0 && type != GST_TYPE_LIST);
+
+ gst_tag_register_static (g_intern_string (name), flag, type,
+ g_intern_string (nick), g_intern_string (blurb), func);
+}
+
+/**
+ * gst_tag_register_static: (skip)
+ * @name: the name or identifier string (string constant)
+ * @flag: a flag describing the type of tag info
+ * @type: the type this data is in
+ * @nick: human-readable name or short description (string constant)
+ * @blurb: a human-readable description for this tag (string constant)
+ * @func: (allow-none): function for merging multiple values of this tag, or %NULL
+ *
+ * Registers a new tag type for the use with GStreamer's type system.
+ *
+ * Same as gst_tag_register(), but @name, @nick, and @blurb must be
+ * static strings or inlined strings, as they will not be copied. (GStreamer
+ * plugins will be made resident once loaded, so this function can be used
+ * even from dynamically loaded plugins.)
+ */
+void
+gst_tag_register_static (const gchar * name, GstTagFlag flag, GType type,
+ const gchar * nick, const gchar * blurb, GstTagMergeFunc func)
+{