* @GST_TAG_MERGE_COUNT: the number of merge modes
*
* The different tag merging modes are basically replace, overwrite and append,
- * but they can be seen from two directions. Given two taglists: (A) the tags
- * already in the element and (B) the ones that are supplied to
- * gst_tag_setter_merge_tags() or gst_tag_setter_add_tags(), how are these tags
- * merged? In the table below this is shown for the cases that a tag exists in
- * the list (A) or does not exists (!A) and combinations thereof.
+ * but they can be seen from two directions. Given two taglists: (A) the tags
+ * already in the element and (B) the ones that are supplied to the element (
+ * e.g. via gst_tag_setter_merge_tags() / gst_tag_setter_add_tags() or a
+ * %GST_EVENT_TAG), how are these tags merged?
+ * In the table below this is shown for the cases that a tag exists in the list
+ * (A) or does not exists (!A) and combinations thereof.
*
* <table frame="all" colsep="1" rowsep="1">
* <title>merge mode</title>
* @short_description: Element interface that allows setting and retrieval
* of media metadata
*
- * <refsect2>
- * <para>
* Element interface that allows setting of media metadata.
- * </para>
- * <para>
+ *
* Elements that support changing a stream's metadata will implement this
* interface. Examples of such elements are 'vorbisenc', 'theoraenc' and
* 'id3v2mux'.
- * </para>
- * <para>
+ *
* If you just want to retrieve metadata in your application then all you
* need to do is watch for tag messages on your pipeline's bus. This
* interface is only for setting metadata, not for extracting it. To set tags
* from the application, find tagsetter elements and set tags using e.g.
- * gst_tag_setter_merge_tags() or gst_tag_setter_add_tags(). The application
- * should do that before the element goes to %GST_STATE_PAUSED.
- * </para>
- * <para>
+ * gst_tag_setter_merge_tags() or gst_tag_setter_add_tags(). Also consider
+ * setting the #GstTagMergeMode that is used for tag events that arrive at the
+ * tagsetter element (default mode is to keep existing tags).
+ * The application should do that before the element goes to %GST_STATE_PAUSED.
+ *
* Elements implementing the #GstTagSetter interface often have to merge
* any tags received from upstream and the tags set by the application via
* the interface. This can be done like this:
- * </para>
- * <para>
- * <programlisting>
+ *
+ * |[
* GstTagMergeMode merge_mode;
* const GstTagList *application_tags;
* const GstTagList *event_tags;
* tagsetter = GST_TAG_SETTER (element);
*
* merge_mode = gst_tag_setter_get_tag_merge_mode (tagsetter);
- * tagsetter_tags = gst_tag_setter_get_tag_list (tagsetter);
+ * application_tags = gst_tag_setter_get_tag_list (tagsetter);
* event_tags = (const GstTagList *) element->event_tags;
*
* GST_LOG_OBJECT (tagsetter, "merging tags, merge mode = %d", merge_mode);
* result = gst_tag_list_merge (application_tags, event_tags, merge_mode);
*
* GST_LOG_OBJECT (tagsetter, "final tags: %" GST_PTR_FORMAT, result);
- * </programlisting>
- * </para>
- * <para>
+ * ]|
+ *
* Last reviewed on 2006-05-18 (0.10.6)
- * </para>
- * </refsect2>
*/
#ifdef HAVE_CONFIG_H