gst/: Update GstTagSetter and GstTagMergeMode documentation. Mention that tags can come from events and from applicat...

Original commit message from CVS:
* gst/gsttaglist.h:
* gst/gsttagsetter.c:
Update GstTagSetter and GstTagMergeMode documentation. Mention
that tags can come from events and from application. Fix example.
This commit is contained in:
Stefan Kost 2008-12-16 07:07:36 +00:00
parent 85c0fc3260
commit f085768807
3 changed files with 25 additions and 24 deletions

View file

@ -1,3 +1,10 @@
2008-12-15 Stefan Kost <ensonic@users.sf.net>
* gst/gsttaglist.h:
* gst/gsttagsetter.c:
Update GstTagSetter and GstTagMergeMode documentation. Mention
that tags can come from events and from application. Fix example.
2008-12-15 Wim Taymans <wim.taymans@collabora.co.uk>
* docs/design/part-TODO.txt:

View file

@ -40,11 +40,12 @@ G_BEGIN_DECLS
* @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>

View file

@ -24,30 +24,26 @@
* @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;
@ -57,7 +53,7 @@
* 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);
@ -67,12 +63,9 @@
* 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