<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GLib" version="2.0"/>
  <include name="GModule" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gst" version="0.10"/>
  <include name="GstBase" version="0.10"/>
  <include name="libxml2" version="2.0"/>
  <package name="gstreamer-tag-0.10"/>
  <c:include name="gst/tag/gsttagdemux.h"/>
  <c:include name="gst/tag/tag.h"/>
  <c:include name="gst/tag/xmpwriter.h"/>
  <namespace name="GstTag"
             version="0.10"
             shared-library="libgsttag-0.10.so.2.5"
             c:identifier-prefixes="Gst"
             c:symbol-prefixes="gst">
    <constant name="TAG_CAPTURING_CONTRAST" value="capturing-contrast">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_DIGITAL_ZOOM_RATIO"
              value="capturing-digital-zoom-ratio">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_EXPOSURE_COMPENSATION"
              value="capturing-exposure-compensation">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_EXPOSURE_MODE"
              value="capturing-exposure-mode">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_EXPOSURE_PROGRAM"
              value="capturing-exposure-program">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_FLASH_FIRED" value="capturing-flash-fired">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_FLASH_MODE" value="capturing-flash-mode">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_FOCAL_LENGTH" value="capturing-focal-length">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_FOCAL_RATIO" value="capturing-focal-ratio">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_GAIN_ADJUSTMENT"
              value="capturing-gain-adjustment">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_ISO_SPEED" value="capturing-iso-speed">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_METERING_MODE"
              value="capturing-metering-mode">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_SATURATION" value="capturing-saturation">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_SCENE_CAPTURE_TYPE"
              value="capturing-scene-capture-type">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_SHARPNESS" value="capturing-sharpness">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_SHUTTER_SPEED"
              value="capturing-shutter-speed">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_SOURCE" value="capturing-source">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CAPTURING_WHITE_BALANCE"
              value="capturing-white-balance">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CDDA_CDDB_DISCID" value="discid">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CDDA_CDDB_DISCID_FULL" value="discid-full">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CDDA_MUSICBRAINZ_DISCID" value="musicbrainz-discid">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CDDA_MUSICBRAINZ_DISCID_FULL"
              value="musicbrainz-discid-full">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CMML_CLIP" value="cmml-clip">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CMML_HEAD" value="cmml-head">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_CMML_STREAM" value="cmml-stream">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_IMAGE_HORIZONTAL_PPI" value="image-horizontal-ppi">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_IMAGE_VERTICAL_PPI" value="image-vertical-ppi">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_MUSICBRAINZ_ALBUMARTISTID"
              value="musicbrainz-albumartistid">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_MUSICBRAINZ_ALBUMID" value="musicbrainz-albumid">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_MUSICBRAINZ_ARTISTID" value="musicbrainz-artistid">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_MUSICBRAINZ_TRACKID" value="musicbrainz-trackid">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TAG_MUSICBRAINZ_TRMID" value="musicbrainz-trmid">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="TagDemux"
           c:symbol-prefix="tag_demux"
           c:type="GstTagDemux"
           version="0.10.15"
           parent="Gst.Element"
           abstract="1"
           glib:type-name="GstTagDemux"
           glib:get-type="gst_tag_demux_get_type"
           glib:type-struct="TagDemuxClass">
      <doc xml:whitespace="preserve">&lt;refsect2&gt;
&lt;para&gt;
Provides a base class for demuxing tags at the beginning or end of a
stream and handles things like typefinding, querying, seeking, and
different modes of operation (chain-based, pull_range-based, and providing
downstream elements with random access if upstream supports that). The tag
is stripped from the output, and all offsets are adjusted for the tag
sizes, so that to the downstream element the stream will appear as if
there was no tag at all. Also, once the tag has been parsed, GstTagDemux
will try to determine the media type of the resulting stream and add a
source pad with the appropriate caps in order to facilitate auto-plugging.
&lt;/para&gt;
&lt;title&gt;Deriving from GstTagDemux&lt;/title&gt;
&lt;para&gt;
Subclasses have to do four things:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;
In their base init function, they must add a pad template for the sink
pad to the element class, describing the media type they can parse in
the caps of the pad template.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
In their class init function, they must override
GST_TAG_DEMUX_CLASS(demux_klass)-&gt;identify_tag with their own identify
function.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
In their class init function, they must override
GST_TAG_DEMUX_CLASS(demux_klass)-&gt;parse_tag with their own parse
function.
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;
In their class init function, they must also set
GST_TAG_DEMUX_CLASS(demux_klass)-&gt;min_start_size and/or 
GST_TAG_DEMUX_CLASS(demux_klass)-&gt;min_end_size to the minimum size required
for the identify function to decide whether the stream has a supported tag
or not. A class parsing ID3v1 tags, for example, would set min_end_size to
128 bytes.
&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;
&lt;/para&gt;
&lt;/refsect2&gt;</doc>
      <virtual-method name="identify_tag">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <type name="Gst.Buffer" c:type="GstBuffer*"/>
          </parameter>
          <parameter name="start_tag" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="tag_size" transfer-ownership="none">
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="merge_tags">
        <return-value transfer-ownership="full">
          <type name="Gst.TagList" c:type="GstTagList*"/>
        </return-value>
        <parameters>
          <parameter name="start_tags" transfer-ownership="none">
            <type name="Gst.TagList" c:type="GstTagList*"/>
          </parameter>
          <parameter name="end_tags" transfer-ownership="none">
            <type name="Gst.TagList" c:type="GstTagList*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="parse_tag">
        <return-value transfer-ownership="none">
          <type name="TagDemuxResult" c:type="GstTagDemuxResult"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <type name="Gst.Buffer" c:type="GstBuffer*"/>
          </parameter>
          <parameter name="start_tag" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="tag_size" transfer-ownership="none">
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="tags" transfer-ownership="none">
            <type name="Gst.TagList" c:type="GstTagList**"/>
          </parameter>
        </parameters>
      </virtual-method>
      <field name="element">
        <type name="Gst.Element" c:type="GstElement"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="TagDemuxPrivate" c:type="GstTagDemuxPrivate*"/>
      </field>
      <field name="reserved" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="TagDemuxClass"
            c:type="GstTagDemuxClass"
            glib:is-gtype-struct-for="TagDemux"
            version="0.10.15">
      <doc xml:whitespace="preserve">The #GstTagDemuxClass structure.  See documentation at beginning of section
for details about what subclasses need to override and do.</doc>
      <field name="parent_class">
        <type name="Gst.ElementClass" c:type="GstElementClass"/>
      </field>
      <field name="min_start_size">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="min_end_size">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="identify_tag">
        <callback name="identify_tag">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="demux" transfer-ownership="none">
              <type name="TagDemux" c:type="GstTagDemux*"/>
            </parameter>
            <parameter name="buffer" transfer-ownership="none">
              <type name="Gst.Buffer" c:type="GstBuffer*"/>
            </parameter>
            <parameter name="start_tag" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="tag_size" transfer-ownership="none">
              <type name="guint" c:type="guint*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="parse_tag">
        <callback name="parse_tag">
          <return-value transfer-ownership="none">
            <type name="TagDemuxResult" c:type="GstTagDemuxResult"/>
          </return-value>
          <parameters>
            <parameter name="demux" transfer-ownership="none">
              <type name="TagDemux" c:type="GstTagDemux*"/>
            </parameter>
            <parameter name="buffer" transfer-ownership="none">
              <type name="Gst.Buffer" c:type="GstBuffer*"/>
            </parameter>
            <parameter name="start_tag" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="tag_size" transfer-ownership="none">
              <type name="guint" c:type="guint*"/>
            </parameter>
            <parameter name="tags" transfer-ownership="none">
              <type name="Gst.TagList" c:type="GstTagList**"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="merge_tags">
        <callback name="merge_tags">
          <return-value transfer-ownership="full">
            <type name="Gst.TagList" c:type="GstTagList*"/>
          </return-value>
          <parameters>
            <parameter name="demux" transfer-ownership="none">
              <type name="TagDemux" c:type="GstTagDemux*"/>
            </parameter>
            <parameter name="start_tags" transfer-ownership="none">
              <type name="Gst.TagList" c:type="GstTagList*"/>
            </parameter>
            <parameter name="end_tags" transfer-ownership="none">
              <type name="Gst.TagList" c:type="GstTagList*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="reserved" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="TagDemuxPrivate" c:type="GstTagDemuxPrivate" disguised="1">
    </record>
    <enumeration name="TagDemuxResult"
                 version="0.10.15"
                 glib:type-name="GstTagDemuxResult"
                 glib:get-type="gst_tag_demux_result_get_type"
                 c:type="GstTagDemuxResult">
      <doc xml:whitespace="preserve">Result values from the parse_tag virtual function.</doc>
      <member name="broken_tag"
              value="0"
              c:identifier="GST_TAG_DEMUX_RESULT_BROKEN_TAG"
              glib:nick="broken-tag"/>
      <member name="again"
              value="1"
              c:identifier="GST_TAG_DEMUX_RESULT_AGAIN"
              glib:nick="again"/>
      <member name="ok"
              value="2"
              c:identifier="GST_TAG_DEMUX_RESULT_OK"
              glib:nick="ok"/>
    </enumeration>
    <enumeration name="TagImageType"
                 version="0.10.9"
                 glib:type-name="GstTagImageType"
                 glib:get-type="gst_tag_image_type_get_type"
                 c:type="GstTagImageType">
      <doc xml:whitespace="preserve">Type of image contained in an image tag (specified as field in
the image buffer's caps structure)</doc>
      <member name="none"
              value="-1"
              c:identifier="GST_TAG_IMAGE_TYPE_NONE"
              glib:nick="none"/>
      <member name="undefined"
              value="0"
              c:identifier="GST_TAG_IMAGE_TYPE_UNDEFINED"
              glib:nick="undefined"/>
      <member name="front_cover"
              value="1"
              c:identifier="GST_TAG_IMAGE_TYPE_FRONT_COVER"
              glib:nick="front-cover"/>
      <member name="back_cover"
              value="2"
              c:identifier="GST_TAG_IMAGE_TYPE_BACK_COVER"
              glib:nick="back-cover"/>
      <member name="leaflet_page"
              value="3"
              c:identifier="GST_TAG_IMAGE_TYPE_LEAFLET_PAGE"
              glib:nick="leaflet-page"/>
      <member name="medium"
              value="4"
              c:identifier="GST_TAG_IMAGE_TYPE_MEDIUM"
              glib:nick="medium"/>
      <member name="lead_artist"
              value="5"
              c:identifier="GST_TAG_IMAGE_TYPE_LEAD_ARTIST"
              glib:nick="lead-artist"/>
      <member name="artist"
              value="6"
              c:identifier="GST_TAG_IMAGE_TYPE_ARTIST"
              glib:nick="artist"/>
      <member name="conductor"
              value="7"
              c:identifier="GST_TAG_IMAGE_TYPE_CONDUCTOR"
              glib:nick="conductor"/>
      <member name="band_orchestra"
              value="8"
              c:identifier="GST_TAG_IMAGE_TYPE_BAND_ORCHESTRA"
              glib:nick="band-orchestra"/>
      <member name="composer"
              value="9"
              c:identifier="GST_TAG_IMAGE_TYPE_COMPOSER"
              glib:nick="composer"/>
      <member name="lyricist"
              value="10"
              c:identifier="GST_TAG_IMAGE_TYPE_LYRICIST"
              glib:nick="lyricist"/>
      <member name="recording_location"
              value="11"
              c:identifier="GST_TAG_IMAGE_TYPE_RECORDING_LOCATION"
              glib:nick="recording-location"/>
      <member name="during_recording"
              value="12"
              c:identifier="GST_TAG_IMAGE_TYPE_DURING_RECORDING"
              glib:nick="during-recording"/>
      <member name="during_performance"
              value="13"
              c:identifier="GST_TAG_IMAGE_TYPE_DURING_PERFORMANCE"
              glib:nick="during-performance"/>
      <member name="video_capture"
              value="14"
              c:identifier="GST_TAG_IMAGE_TYPE_VIDEO_CAPTURE"
              glib:nick="video-capture"/>
      <member name="fish"
              value="15"
              c:identifier="GST_TAG_IMAGE_TYPE_FISH"
              glib:nick="fish"/>
      <member name="illustration"
              value="16"
              c:identifier="GST_TAG_IMAGE_TYPE_ILLUSTRATION"
              glib:nick="illustration"/>
      <member name="artist_logo"
              value="17"
              c:identifier="GST_TAG_IMAGE_TYPE_BAND_ARTIST_LOGO"
              glib:nick="artist-logo"/>
      <member name="publisher_studio_logo"
              value="18"
              c:identifier="GST_TAG_IMAGE_TYPE_PUBLISHER_STUDIO_LOGO"
              glib:nick="publisher-studio-logo"/>
    </enumeration>
    <interface name="TagXmpWriter"
               c:symbol-prefix="tag_xmp_writer"
               c:type="GstTagXmpWriter"
               glib:type-name="GstTagXmpWriter"
               glib:get-type="gst_tag_xmp_writer_get_type"
               glib:type-struct="TagXmpWriterInterface">
      <prerequisite name="Gst.Element"/>
      <method name="add_all_schemas"
              c:identifier="gst_tag_xmp_writer_add_all_schemas"
              version="0.10.33">
        <doc xml:whitespace="preserve">Adds all available XMP schemas to the configuration. Meaning that
all will be used.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="add_schema"
              c:identifier="gst_tag_xmp_writer_add_schema"
              version="0.10.33">
        <doc xml:whitespace="preserve">Adds @schema to the list schemas</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="schema" transfer-ownership="none">
            <doc xml:whitespace="preserve">the schema to be added</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_schema"
              c:identifier="gst_tag_xmp_writer_has_schema"
              version="0.10.33">
        <doc xml:whitespace="preserve">Checks if @schema is going to be used</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if it is going to be used</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="schema" transfer-ownership="none">
            <doc xml:whitespace="preserve">the schema to test</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_all_schemas"
              c:identifier="gst_tag_xmp_writer_remove_all_schemas"
              version="0.10.33">
        <doc xml:whitespace="preserve">Removes all schemas from the list of schemas to use. Meaning that no
XMP will be generated.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="remove_schema"
              c:identifier="gst_tag_xmp_writer_remove_schema"
              version="0.10.33">
        <doc xml:whitespace="preserve">Removes a schema from the list of schemas to use. Nothing is done if
the schema wasn't in the list</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="schema" transfer-ownership="none">
            <doc xml:whitespace="preserve">the schema to remove</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="tag_list_to_xmp_buffer"
              c:identifier="gst_tag_xmp_writer_tag_list_to_xmp_buffer"
              introspectable="0">
        <return-value>
          <type name="Gst.Buffer" c:type="GstBuffer*"/>
        </return-value>
        <parameters>
          <parameter name="taglist" transfer-ownership="none">
            <type name="Gst.TagList" c:type="GstTagList*"/>
          </parameter>
          <parameter name="read_only" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="TagXmpWriterInterface"
            c:type="GstTagXmpWriterInterface"
            glib:is-gtype-struct-for="TagXmpWriter">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
    </record>
    <function name="tag_freeform_string_to_utf8"
              c:identifier="gst_tag_freeform_string_to_utf8"
              version="0.10.13">
      <doc xml:whitespace="preserve">Convenience function to read a string with unknown character encoding. If
the string is already in UTF-8 encoding, it will be returned right away.
If not it tries to detect byte-order-mark for UTF-16/32 cases and use that.
Otherwise, the environment will be searched for a number of environment
variables (whose names are specified in the NULL-terminated string array
are specified, the current locale will be tried. If that also doesn't work,
WINDOWS-1252/ISO-8859-1 is assumed (which will almost always succeed).</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">a newly-allocated string in UTF-8 encoding, or NULL</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <doc xml:whitespace="preserve">string data</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:whitespace="preserve">length of string data, or -1 if the string is NUL-terminated</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="env_vars" transfer-ownership="none">
          <doc xml:whitespace="preserve">a NULL-terminated string array of environment variable names, or NULL</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_from_id3_tag" c:identifier="gst_tag_from_id3_tag">
      <doc xml:whitespace="preserve">Looks up the GStreamer tag for a ID3v2 tag.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">The corresponding GStreamer tag or NULL if none exists.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="id3_tag" transfer-ownership="none">
          <doc xml:whitespace="preserve">ID3v2 tag to convert to GStreamer tag</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_from_id3_user_tag"
              c:identifier="gst_tag_from_id3_user_tag">
      <doc xml:whitespace="preserve">Looks up the GStreamer tag for an ID3v2 user tag (e.g. description in
TXXX frame or owner in UFID frame).</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">The corresponding GStreamer tag or NULL if none exists.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:whitespace="preserve">the type of ID3v2 user tag (e.g. "TXXX" or "UDIF")</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="id3_user_tag" transfer-ownership="none">
          <doc xml:whitespace="preserve">ID3v2 user tag to convert to GStreamer tag</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_from_vorbis_tag"
              c:identifier="gst_tag_from_vorbis_tag">
      <doc xml:whitespace="preserve">Looks up the GStreamer tag for a vorbiscomment tag.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">The corresponding GStreamer tag or NULL if none exists.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="vorbis_tag" transfer-ownership="none">
          <doc xml:whitespace="preserve">vorbiscomment tag to convert to GStreamer tag</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_get_language_code_iso_639_1"
              c:identifier="gst_tag_get_language_code_iso_639_1"
              version="0.10.26">
      <doc xml:whitespace="preserve">Returns two-letter ISO-639-1 language code given a three-letter ISO-639-2
language code or two-letter ISO-639-1 language code (both are accepted for
convenience).
Language codes are case-sensitive and expected to be lower case.
or NULL if no mapping is known. The returned string must not be
modified or freed.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">two-letter ISO-639-1 language code string that maps to @lang_code,</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="lang_code" transfer-ownership="none">
          <doc xml:whitespace="preserve">ISO-639 language code (e.g. "deu" or "ger" or "de")</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_get_language_code_iso_639_2B"
              c:identifier="gst_tag_get_language_code_iso_639_2B"
              version="0.10.26">
      <doc xml:whitespace="preserve">Returns three-letter ISO-639-2 "bibliographic" language code given a
two-letter ISO-639-1 language code or a three-letter ISO-639-2 language
code (both are accepted for convenience).
The "bibliographic" code is derived from the English name of the language
(e.g. "ger" for German instead of "de" or "deu"). In most scenarios, the
"terminological" codes are prefered.
Language codes are case-sensitive and expected to be lower case.
or NULL if no mapping is known. The returned string must not be
modified or freed.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">three-letter ISO-639-2 language code string that maps to @lang_code,</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="lang_code" transfer-ownership="none">
          <doc xml:whitespace="preserve">ISO-639 language code (e.g. "deu" or "ger" or "de")</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_get_language_code_iso_639_2T"
              c:identifier="gst_tag_get_language_code_iso_639_2T"
              version="0.10.26">
      <doc xml:whitespace="preserve">Returns three-letter ISO-639-2 "terminological" language code given a
two-letter ISO-639-1 language code or a three-letter ISO-639-2 language
code (both are accepted for convenience).
The "terminological" code is derived from the local name of the language
(e.g. "deu" for German instead of "ger"). In most scenarios, the
"terminological" codes are prefered over the "bibliographic" ones.
Language codes are case-sensitive and expected to be lower case.
or NULL if no mapping is known. The returned string must not be
modified or freed.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">three-letter ISO-639-2 language code string that maps to @lang_code,</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="lang_code" transfer-ownership="none">
          <doc xml:whitespace="preserve">ISO-639 language code (e.g. "deu" or "ger" or "de")</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_get_language_codes"
              c:identifier="gst_tag_get_language_codes"
              version="0.10.26"
              introspectable="0">
      <doc xml:whitespace="preserve">Returns a list of known language codes (in form of two-letter ISO-639-1
codes). This is useful for UIs to build a list of available languages for
tagging purposes (e.g. to tag an audio track appropriately in a video or
audio editor).
with g_strfreev() when no longer needed.</doc>
      <return-value>
        <doc xml:whitespace="preserve">NULL-terminated string array with two-letter language codes. Free</doc>
        <array c:type="gchar**">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="tag_get_language_name"
              c:identifier="gst_tag_get_language_name"
              version="0.10.26">
      <doc xml:whitespace="preserve">Returns the name of the language given an ISO-639 language code, such
as often found in a GST_TAG_LANGUAGE tag. The name will be translated
according to the current locale (if the library was built against the
iso-codes package, otherwise the English name will be returned).
Language codes are case-sensitive and expected to be lower case.
not be mapped to a language name. The returned string must not be
modified and does not need to freed; it will stay valid until the
application is terminated.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">language name in UTF-8 format, or NULL if @language_code could</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="language_code" transfer-ownership="none">
          <doc xml:whitespace="preserve">two or three-letter ISO-639 language code</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_id3_genre_count"
              c:identifier="gst_tag_id3_genre_count">
      <doc xml:whitespace="preserve">Gets the number of ID3v1 genres that can be identified. Winamp genres are 
included.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">the number of ID3v1 genres that can be identified</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <function name="tag_id3_genre_get" c:identifier="gst_tag_id3_genre_get">
      <doc xml:whitespace="preserve">Gets the ID3v1 genre name for a given ID.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">the genre or NULL if no genre is associated with that ID.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="id" transfer-ownership="none">
          <doc xml:whitespace="preserve">ID of genre to query</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_image_data_to_image_buffer"
              c:identifier="gst_tag_image_data_to_image_buffer"
              version="0.10.20"
              introspectable="0">
      <doc xml:whitespace="preserve">Helper function for tag-reading plugins to create a #GstBuffer suitable to
add to a #GstTagList as an image tag (such as #GST_TAG_IMAGE or
#GST_TAG_PREVIEW_IMAGE) from the encoded image data and an (optional) image
type.
blob of binary image data, often accompanied by a MIME type or some other
content type string (e.g. 'png', 'jpeg', 'jpg'). Sometimes there is also an
'image type' to indicate what kind of image this is (e.g. front cover,
back cover, artist, etc.). The image data may also be an URI to the image
rather than the image itself.
In GStreamer, image tags are #GstBuffer&lt;!-- --&gt;s containing the raw image
data, with the buffer caps describing the content type of the image
(e.g. image/jpeg, image/png, text/uri-list). The buffer caps may contain
an additional 'image-type' field of #GST_TYPE_TAG_IMAGE_TYPE to describe
the type of image (front cover, back cover etc.). #GST_TAG_PREVIEW_IMAGE
tags should not carry an image type, their type is already indicated via
the special tag name.
This function will do various checks and typefind the encoded image
data (we can't trust the declared mime type).</doc>
      <return-value>
        <doc xml:whitespace="preserve">a newly-allocated image buffer for use in tag lists, or NULL</doc>
        <type name="Gst.Buffer" c:type="GstBuffer*"/>
      </return-value>
      <parameters>
        <parameter name="image_data" transfer-ownership="none">
          <doc xml:whitespace="preserve">the (encoded) image</doc>
          <type name="guint8" c:type="guint8*"/>
        </parameter>
        <parameter name="image_data_len" transfer-ownership="none">
          <doc xml:whitespace="preserve">the length of the encoded image data at @image_data</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="image_type" transfer-ownership="none">
          <doc xml:whitespace="preserve">type of the image, or #GST_TAG_IMAGE_TYPE_UNDEFINED. Pass #GST_TAG_IMAGE_TYPE_NONE if no image type should be set at all (e.g. for preview images)</doc>
          <type name="TagImageType" c:type="GstTagImageType"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_list_add_id3_image"
              c:identifier="gst_tag_list_add_id3_image"
              version="0.10.20">
      <doc xml:whitespace="preserve">Adds an image from an ID3 APIC frame (or similar, such as used in FLAC)
to the given tag list. Also see gst_tag_image_data_to_image_buffer() for
more information on image tags in GStreamer.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">%TRUE if the image was processed, otherwise %FALSE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tag_list" transfer-ownership="none">
          <doc xml:whitespace="preserve">a tag list</doc>
          <type name="Gst.TagList" c:type="GstTagList*"/>
        </parameter>
        <parameter name="image_data" transfer-ownership="none">
          <doc xml:whitespace="preserve">the (encoded) image</doc>
          <type name="guint8" c:type="guint8*"/>
        </parameter>
        <parameter name="image_data_len" transfer-ownership="none">
          <doc xml:whitespace="preserve">the length of the encoded image data at @image_data</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="id3_picture_type" transfer-ownership="none">
          <doc xml:whitespace="preserve">picture type as per the ID3 (v2.4.0) specification for the APIC frame (0 = unknown/other)</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_list_from_exif_buffer"
              c:identifier="gst_tag_list_from_exif_buffer"
              version="0.10.30">
      <doc xml:whitespace="preserve">Parses the IFD and IFD tags data contained in the buffer and puts it
on a taglist. The base_offset is used to subtract from the offset in
the tag entries and be able to get the offset relative to the buffer
start</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">The parsed taglist</doc>
        <type name="Gst.TagList" c:type="GstTagList*"/>
      </return-value>
      <parameters>
        <parameter name="buffer" transfer-ownership="none">
          <doc xml:whitespace="preserve">The exif buffer</doc>
          <type name="Gst.Buffer" c:type="GstBuffer*"/>
        </parameter>
        <parameter name="byte_order" transfer-ownership="none">
          <doc xml:whitespace="preserve">byte order of the data</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="base_offset" transfer-ownership="none">
          <doc xml:whitespace="preserve">Offset from the tiff header to this buffer</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_list_from_exif_buffer_with_tiff_header"
              c:identifier="gst_tag_list_from_exif_buffer_with_tiff_header"
              version="0.10.30">
      <doc xml:whitespace="preserve">Parses the exif tags starting with a tiff header structure.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">The taglist</doc>
        <type name="Gst.TagList" c:type="GstTagList*"/>
      </return-value>
      <parameters>
        <parameter name="buffer" transfer-ownership="none">
          <doc xml:whitespace="preserve">The exif buffer</doc>
          <type name="Gst.Buffer" c:type="GstBuffer*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_list_from_vorbiscomment_buffer"
              c:identifier="gst_tag_list_from_vorbiscomment_buffer">
      <doc xml:whitespace="preserve">Creates a new tag list that contains the information parsed out of a
vorbiscomment packet.
given vorbiscomment buffer or NULL on error.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">A new #GstTagList with all tags that could be extracted from the</doc>
        <type name="Gst.TagList" c:type="GstTagList*"/>
      </return-value>
      <parameters>
        <parameter name="buffer" transfer-ownership="none">
          <doc xml:whitespace="preserve">buffer to convert</doc>
          <type name="Gst.Buffer" c:type="GstBuffer*"/>
        </parameter>
        <parameter name="id_data" transfer-ownership="none">
          <doc xml:whitespace="preserve">identification data at start of stream</doc>
          <type name="guint8" c:type="guint8*"/>
        </parameter>
        <parameter name="id_data_length" transfer-ownership="none">
          <doc xml:whitespace="preserve">length of identification data</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="vendor_string" transfer-ownership="none">
          <doc xml:whitespace="preserve">pointer to a string that should take the vendor string of this vorbis comment or NULL if you don't need it.</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_list_from_xmp_buffer"
              c:identifier="gst_tag_list_from_xmp_buffer"
              version="0.10.29">
      <doc xml:whitespace="preserve">Parse a xmp packet into a taglist.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">new taglist or %NULL, free the list when done</doc>
        <type name="Gst.TagList" c:type="GstTagList*"/>
      </return-value>
      <parameters>
        <parameter name="buffer" transfer-ownership="none">
          <doc xml:whitespace="preserve">buffer</doc>
          <type name="Gst.Buffer" c:type="GstBuffer*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_list_new_from_id3v1"
              c:identifier="gst_tag_list_new_from_id3v1">
      <doc xml:whitespace="preserve">Parses the data containing an ID3v1 tag and returns a #GstTagList from the
parsed data.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">A new tag list or NULL if the data was not an ID3v1 tag.</doc>
        <type name="Gst.TagList" c:type="GstTagList*"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <doc xml:whitespace="preserve">128 bytes of data containing the ID3v1 tag</doc>
          <type name="guint8" c:type="guint8*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_list_to_exif_buffer"
              c:identifier="gst_tag_list_to_exif_buffer"
              version="0.10.30"
              introspectable="0">
      <doc xml:whitespace="preserve">Formats the tags in taglist on exif format. The resulting buffer contains
the tags IFD and is followed by the data pointed by the tag entries.</doc>
      <return-value>
        <doc xml:whitespace="preserve">A GstBuffer containing the tag entries followed by the tag data</doc>
        <type name="Gst.Buffer" c:type="GstBuffer*"/>
      </return-value>
      <parameters>
        <parameter name="taglist" transfer-ownership="none">
          <doc xml:whitespace="preserve">The taglist</doc>
          <type name="Gst.TagList" c:type="GstTagList*"/>
        </parameter>
        <parameter name="byte_order" transfer-ownership="none">
          <doc xml:whitespace="preserve">byte order used in writing (G_LITTLE_ENDIAN or G_BIG_ENDIAN)</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="base_offset" transfer-ownership="none">
          <doc xml:whitespace="preserve">Offset from the tiff header first byte</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_list_to_exif_buffer_with_tiff_header"
              c:identifier="gst_tag_list_to_exif_buffer_with_tiff_header"
              version="0.10.30"
              introspectable="0">
      <doc xml:whitespace="preserve">Formats the tags in taglist into exif structure, a tiff header
is put in the beginning of the buffer.</doc>
      <return-value>
        <doc xml:whitespace="preserve">A GstBuffer containing the data</doc>
        <type name="Gst.Buffer" c:type="GstBuffer*"/>
      </return-value>
      <parameters>
        <parameter name="taglist" transfer-ownership="none">
          <doc xml:whitespace="preserve">The taglist</doc>
          <type name="Gst.TagList" c:type="GstTagList*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_list_to_vorbiscomment_buffer"
              c:identifier="gst_tag_list_to_vorbiscomment_buffer"
              introspectable="0">
      <doc xml:whitespace="preserve">Creates a new vorbiscomment buffer from a tag list.
that could be converted from the given tag list.</doc>
      <return-value>
        <doc xml:whitespace="preserve">A new #GstBuffer containing a vorbiscomment buffer with all tags</doc>
        <type name="Gst.Buffer" c:type="GstBuffer*"/>
      </return-value>
      <parameters>
        <parameter name="list" transfer-ownership="none">
          <doc xml:whitespace="preserve">tag list to convert</doc>
          <type name="Gst.TagList" c:type="GstTagList*"/>
        </parameter>
        <parameter name="id_data" transfer-ownership="none">
          <doc xml:whitespace="preserve">identification data at start of stream</doc>
          <type name="guint8" c:type="guint8*"/>
        </parameter>
        <parameter name="id_data_length" transfer-ownership="none">
          <doc xml:whitespace="preserve">length of identification data, may be 0 if @id_data is NULL</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="vendor_string" transfer-ownership="none">
          <doc xml:whitespace="preserve">string that describes the vendor string or NULL</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_list_to_xmp_buffer"
              c:identifier="gst_tag_list_to_xmp_buffer"
              version="0.10.29"
              introspectable="0">
      <doc xml:whitespace="preserve">Formats a taglist as a xmp packet.</doc>
      <return-value>
        <doc xml:whitespace="preserve">new buffer or %NULL, unref the buffer when done</doc>
        <type name="Gst.Buffer" c:type="GstBuffer*"/>
      </return-value>
      <parameters>
        <parameter name="list" transfer-ownership="none">
          <doc xml:whitespace="preserve">tags</doc>
          <type name="Gst.TagList" c:type="GstTagList*"/>
        </parameter>
        <parameter name="read_only" transfer-ownership="none">
          <doc xml:whitespace="preserve">does the container forbid inplace editing</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_list_to_xmp_buffer_full"
              c:identifier="gst_tag_list_to_xmp_buffer_full"
              version="0.10.33"
              introspectable="0">
      <doc xml:whitespace="preserve">Formats a taglist as a xmp packet using only the selected
schemas. An empty list (%NULL) means that all schemas should
be used</doc>
      <return-value>
        <doc xml:whitespace="preserve">new buffer or %NULL, unref the buffer when done</doc>
        <type name="Gst.Buffer" c:type="GstBuffer*"/>
      </return-value>
      <parameters>
        <parameter name="list" transfer-ownership="none">
          <doc xml:whitespace="preserve">tags</doc>
          <type name="Gst.TagList" c:type="GstTagList*"/>
        </parameter>
        <parameter name="read_only" transfer-ownership="none">
          <doc xml:whitespace="preserve">does the container forbid inplace editing</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="schemas" transfer-ownership="none">
          <doc xml:whitespace="preserve">%NULL terminated array of schemas to be used on serialization</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_parse_extended_comment"
              c:identifier="gst_tag_parse_extended_comment"
              version="0.10.10">
      <doc xml:whitespace="preserve">Convenience function to parse a GST_TAG_EXTENDED_COMMENT string and
separate it into its components.
If successful, @key, @lang and/or @value will be set to newly allocated
strings that you need to free with g_free() when done. @key and @lang
may also be set to NULL by this function if there is no key or no language
code in the extended comment string.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">TRUE if the string could be parsed, otherwise FALSE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="ext_comment" transfer-ownership="none">
          <doc xml:whitespace="preserve">an extended comment string, see #GST_TAG_EXTENDED_COMMENT</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:whitespace="preserve">return location for the comment description key, or NULL</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="lang" transfer-ownership="none">
          <doc xml:whitespace="preserve">return location for the comment ISO-639 language code, or NULL</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:whitespace="preserve">return location for the actual comment string, or NULL</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="fail_if_no_key" transfer-ownership="none">
          <doc xml:whitespace="preserve">whether to fail if strings are not in key=value form</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_register_musicbrainz_tags"
              c:identifier="gst_tag_register_musicbrainz_tags">
      <doc xml:whitespace="preserve">Registers additional musicbrainz-specific tags with the GStreamer tag
system. Plugins and applications that use these tags should call this
function before using them. Can be called multiple times.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="tag_to_id3_tag" c:identifier="gst_tag_to_id3_tag">
      <doc xml:whitespace="preserve">Looks up the ID3v2 tag for a GStreamer tag.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">The corresponding ID3v2 tag or NULL if none exists.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="gst_tag" transfer-ownership="none">
          <doc xml:whitespace="preserve">GStreamer tag to convert to vorbiscomment tag</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_to_vorbis_comments"
              c:identifier="gst_tag_to_vorbis_comments"
              introspectable="0">
      <doc xml:whitespace="preserve">Creates a new tag list that contains the information parsed out of a
vorbiscomment packet.
g_list_foreach (list, (GFunc) g_free, NULL) plus g_list_free (list)</doc>
      <return-value>
        <doc xml:whitespace="preserve">A #GList of newly-allowcated key=value strings. Free with</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="list" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GstTagList</doc>
          <type name="Gst.TagList" c:type="GstTagList*"/>
        </parameter>
        <parameter name="tag" transfer-ownership="none">
          <doc xml:whitespace="preserve">a GStreamer tag identifier, such as #GST_TAG_ARTIST</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_to_vorbis_tag" c:identifier="gst_tag_to_vorbis_tag">
      <doc xml:whitespace="preserve">Looks up the vorbiscomment tag for a GStreamer tag.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">The corresponding vorbiscomment tag or NULL if none exists.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="gst_tag" transfer-ownership="none">
          <doc xml:whitespace="preserve">GStreamer tag to convert to vorbiscomment tag</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_xmp_list_schemas"
              c:identifier="gst_tag_xmp_list_schemas"
              version="0.10.33"
              introspectable="0">
      <doc xml:whitespace="preserve">Gets the list of supported schemas in the xmp lib</doc>
      <return-value>
        <doc xml:whitespace="preserve">a %NULL terminated array of strings with the schema names</doc>
        <array c:type="gchar**">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="vorbis_tag_add" c:identifier="gst_vorbis_tag_add">
      <doc xml:whitespace="preserve">Convenience function using gst_tag_from_vorbis_tag(), parsing
a vorbis comment string into the right type and adding it to the
given taglist @list.
Unknown vorbiscomment tags will be added to the tag list in form
of a #GST_TAG_EXTENDED_COMMENT (since 0.10.10 at least).</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="list" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GstTagList</doc>
          <type name="Gst.TagList" c:type="GstTagList*"/>
        </parameter>
        <parameter name="tag" transfer-ownership="none">
          <doc xml:whitespace="preserve">a vorbiscomment tag string (key in key=value), must be valid UTF-8</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:whitespace="preserve">a vorbiscomment value string (value in key=value), must be valid UTF-8</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
