2008-12-16 Stefan Kost <ensonic@users.sf.net>
+ * docs/gst/gstreamer-sections.txt:
+ * gst/gsttagsetter.c:
+ * gst/gsttagsetter.h:
+ Add function to reset tagsetter for element reuse.
+ API: gst_tag_setter_flush()
+
+2008-12-16 Stefan Kost <ensonic@users.sf.net>
+
* gst/gsttaglist.c:
Avoid copy of empty taglist.
{
GstTagMergeMode mode;
GstTagList *list;
-}
-GstTagData;
+} GstTagData;
GType
gst_tag_setter_get_type (void)
return tag_setter_type;
}
+
static void
gst_tag_data_free (gpointer p)
{
g_free (data);
}
+
static GstTagData *
gst_tag_setter_get_data (GstTagSetter * setter)
{
}
/**
+ * gst_tag_setter_flush:
+ * @setter: a #GstTagSetter
+ *
+ * Reset the internal taglist. Elements should call this from within the
+ * state-change handler.
+ */
+void
+gst_tag_setter_flush (GstTagSetter * setter)
+{
+ GstTagData *data;
+
+ g_return_if_fail (GST_IS_TAG_SETTER (setter));
+
+ data = gst_tag_setter_get_data (setter);
+ if (data->list) {
+ gst_tag_list_free (data->list);
+ data->list = NULL;
+ }
+}
+
+/**
* gst_tag_setter_merge_tags:
* @setter: a #GstTagSetter
* @list: a tag list to merge from
GType gst_tag_setter_get_type (void);
+void gst_tag_setter_flush (GstTagSetter * setter);
+
void gst_tag_setter_merge_tags (GstTagSetter * setter,
const GstTagList * list,
GstTagMergeMode mode);