[gst-cvs] gstreamer: tags: API: Add functions to add single tags to GstTagList or GstTagSetter

Sebastian Dröge slomo at kemper.freedesktop.org
Tue May 12 00:02:59 PDT 2009


Module: gstreamer
Branch: master
Commit: ad8a35ff3ec9965cfd761d2cb4408e6a7073d9b8
URL:    http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=ad8a35ff3ec9965cfd761d2cb4408e6a7073d9b8

Author: Sebastian Dröge <sebastian.droege at collabora.co.uk>
Date:   Thu May  7 09:31:01 2009 +0200

tags: API: Add functions to add single tags to GstTagList or GstTagSetter

The new functions are gst_tag_setter_add_tag_value()
and gst_tag_list_add_value()). This fixes bug #581198.

---

 gst/gsttaglist.c   |   23 +++++++++++++++++++++++
 gst/gsttaglist.h   |    4 ++++
 gst/gsttagsetter.c |   27 +++++++++++++++++++++++++++
 gst/gsttagsetter.h |    5 +++++
 4 files changed, 59 insertions(+), 0 deletions(-)

diff --git a/gst/gsttaglist.c b/gst/gsttaglist.c
index f37b1c1..01f2e5f 100644
--- a/gst/gsttaglist.c
+++ b/gst/gsttaglist.c
@@ -896,6 +896,29 @@ gst_tag_list_add_valist_values (GstTagList * list, GstTagMergeMode mode,
 }
 
 /**
+ * gst_tag_list_add_value:
+ * @list: list to set tags in
+ * @mode: the mode to use
+ * @tag: tag
+ * @value: GValue for this tag
+ *
+ * Sets the GValue for a given tag using the specified mode.
+ *
+ * Since: 0.10.24
+ */
+void
+gst_tag_list_add_value (GstTagList * list, GstTagMergeMode mode,
+    const gchar * tag, const GValue * value)
+{
+  g_return_if_fail (GST_IS_TAG_LIST (list));
+  g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
+  g_return_if_fail (tag != NULL);
+
+  gst_tag_list_add_value_internal (list, mode, g_quark_from_string (tag),
+      value);
+}
+
+/**
  * gst_tag_list_remove_tag:
  * @list: list to remove tag from
  * @tag: tag to remove
diff --git a/gst/gsttaglist.h b/gst/gsttaglist.h
index abf1eab..7be74fd 100644
--- a/gst/gsttaglist.h
+++ b/gst/gsttaglist.h
@@ -226,6 +226,10 @@ void         gst_tag_list_add_valist_values (GstTagList       * list,
                                              GstTagMergeMode    mode,
                                              const gchar      * tag,
                                              va_list            var_args);
+void         gst_tag_list_add_value         (GstTagList       * list,
+                                             GstTagMergeMode    mode,
+                                             const gchar      * tag,
+                                             const GValue     * value);
 void         gst_tag_list_remove_tag        (GstTagList       * list,
                                              const gchar      * tag);
 void         gst_tag_list_foreach           (const GstTagList * list,
diff --git a/gst/gsttagsetter.c b/gst/gsttagsetter.c
index 62d933d..487c7e8 100644
--- a/gst/gsttagsetter.c
+++ b/gst/gsttagsetter.c
@@ -301,6 +301,33 @@ gst_tag_setter_add_tag_valist_values (GstTagSetter * setter,
 }
 
 /**
+ * gst_tag_setter_add_tag_value:
+ * @setter: a #GstTagSetter
+ * @mode: the mode to use
+ * @tag: tag to set
+ * @value: GValue to set for the tag
+ *
+ * Adds the given tag / GValue pair on the setter using the given merge mode.
+ *
+ * Since: 0.10.24
+ */
+void
+gst_tag_setter_add_tag_value (GstTagSetter * setter,
+    GstTagMergeMode mode, const gchar * tag, const GValue * value)
+{
+  GstTagData *data;
+
+  g_return_if_fail (GST_IS_TAG_SETTER (setter));
+  g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
+
+  data = gst_tag_setter_get_data (setter);
+  if (!data->list)
+    data->list = gst_tag_list_new ();
+
+  gst_tag_list_add_value (data->list, mode, tag, value);
+}
+
+/**
  * gst_tag_setter_get_tag_list:
  * @setter: a #GstTagSetter
  *
diff --git a/gst/gsttagsetter.h b/gst/gsttagsetter.h
index 95d4199..c7b21df 100644
--- a/gst/gsttagsetter.h
+++ b/gst/gsttagsetter.h
@@ -83,6 +83,11 @@ void            gst_tag_setter_add_tag_valist_values(GstTagSetter *	setter,
 						     const gchar *	tag,
 						     va_list		var_args);
 
+void		gst_tag_setter_add_tag_value	    (GstTagSetter *	setter,
+						     GstTagMergeMode	mode,
+						     const gchar *	tag,
+						     const GValue *     value);
+
 G_CONST_RETURN GstTagList *
 		gst_tag_setter_get_tag_list	     (GstTagSetter *	setter);
 





More information about the Gstreamer-commits mailing list