<?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:doc="http://www.gtk.org/introspection/doc/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <package name="gexiv2-0.16"/>
  <c:include name="gexiv2/gexiv2.h"/>
  <doc:format name="unknown"/>
  <namespace name="GExiv2"
             version="0.16"
             shared-library="libgexiv2-0.16.so.0.0"
             c:identifier-prefixes="GExiv2"
             c:symbol-prefixes="gexiv2">
    <enumeration name="ByteOrder"
                 glib:type-name="GExiv2ByteOrder"
                 glib:get-type="gexiv2_gexiv2_byte_order_get_type"
                 c:type="GExiv2ByteOrder">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-metadata.h"
           line="103">Options to control the byte order of binary EXIF data exports, in [method@Metadata.get_exif_data].</doc>
      <member name="little"
              value="0"
              c:identifier="GEXIV2_BYTE_ORDER_LITTLE"
              glib:nick="little"
              glib:name="GEXIV2_BYTE_ORDER_LITTLE">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="105">Use little-endian byte order</doc>
      </member>
      <member name="big"
              value="1"
              c:identifier="GEXIV2_BYTE_ORDER_BIG"
              glib:nick="big"
              glib:name="GEXIV2_BYTE_ORDER_BIG">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="106">Use big-endian byte order</doc>
      </member>
    </enumeration>
    <function-macro name="CHECK_VERSION"
                    c:identifier="GEXIV2_CHECK_VERSION"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-version.h"
           line="18">Check if the current gexiv2 library version is greater than or equal to the
supplied version requirement.</doc>
      <source-position filename="gexiv2/gexiv2-version.h" line="29"/>
      <parameters>
        <parameter name="major">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-version.h"
               line="20">the major version to check for</doc>
        </parameter>
        <parameter name="minor">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-version.h"
               line="21">the minor version to check for</doc>
        </parameter>
        <parameter name="micro">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-version.h"
               line="22">the micro version to check for</doc>
        </parameter>
      </parameters>
    </function-macro>
    <callback name="LogHandler" c:type="GExiv2LogHandler">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-log.h"
           line="37">The log handler can be set by [func@GExiv2.log_set_handler].  When set, the log handler will receive
all log messages emitted by Exiv2 and gexiv2.  It's up to the handler to decide where (and if)
the images are displayed or stored.</doc>
      <source-position filename="gexiv2/gexiv2-log.h" line="46"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="level" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-log.h"
               line="39">The #GExiv2LogLevel for the particular message</doc>
          <type name="LogLevel" c:type="GExiv2LogLevel"/>
        </parameter>
        <parameter name="msg" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-log.h"
               line="40">The log message</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="LogLevel"
                 glib:type-name="GExiv2LogLevel"
                 glib:get-type="gexiv2_gexiv2_log_level_get_type"
                 c:type="GExiv2LogLevel">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-log.h"
           line="17">Used in

GExiv2 log levels</doc>
      <member name="debug"
              value="0"
              c:identifier="GEXIV2_LOG_LEVEL_DEBUG"
              glib:nick="debug"
              glib:name="GEXIV2_LOG_LEVEL_DEBUG">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-log.h"
             line="19">Log level for debugging</doc>
      </member>
      <member name="info"
              value="1"
              c:identifier="GEXIV2_LOG_LEVEL_INFO"
              glib:nick="info"
              glib:name="GEXIV2_LOG_LEVEL_INFO">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-log.h"
             line="20">Log level for informational messages</doc>
      </member>
      <member name="warn"
              value="2"
              c:identifier="GEXIV2_LOG_LEVEL_WARN"
              glib:nick="warn"
              glib:name="GEXIV2_LOG_LEVEL_WARN">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-log.h"
             line="21">Log level for warning messages</doc>
      </member>
      <member name="error"
              value="3"
              c:identifier="GEXIV2_LOG_LEVEL_ERROR"
              glib:nick="error"
              glib:name="GEXIV2_LOG_LEVEL_ERROR">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-log.h"
             line="22">Log level for error messages</doc>
      </member>
      <member name="mute"
              value="4"
              c:identifier="GEXIV2_LOG_LEVEL_MUTE"
              glib:nick="mute"
              glib:name="GEXIV2_LOG_LEVEL_MUTE">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-log.h"
             line="23">Suppress all log messages</doc>
      </member>
    </enumeration>
    <constant name="MAJOR_VERSION" value="0" c:type="GEXIV2_MAJOR_VERSION">
      <source-position filename="gexiv2/gexiv2-version.h" line="14"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MICRO_VERSION" value="1" c:type="GEXIV2_MICRO_VERSION">
      <source-position filename="gexiv2/gexiv2-version.h" line="16"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="16" c:type="GEXIV2_MINOR_VERSION">
      <source-position filename="gexiv2/gexiv2-version.h" line="15"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Metadata"
           c:symbol-prefix="metadata"
           c:type="GExiv2Metadata"
           parent="GObject.Object"
           glib:type-name="GExiv2Metadata"
           glib:get-type="gexiv2_metadata_get_type"
           glib:type-struct="MetadataClass">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-metadata.h"
           line="115">An object holding all the Exiv2 metadata. Previews, if present, are also available.

It is a generic object that provides everything from simple aggregated accessors
to common data such as image comments up to fine-grained access to specific tags of a
specfic format, be it EXIF, IPTC or XMP.

As gexiv2 is only a wrapper around Exiv2, it's better to read its documentation to understand
the full scope of what it offers: &lt;http://www.exiv2.org/&gt;

In particular, rather than providing a getter/setter method pair for every metadata value
available for images (of which there are thousands), Exiv2 uses a dotted addressing scheme.
For example, to access a photo's EXIF Orientation field, the caller passes to Exiv2
"Exif.Photo.Orientation".  These *tags* (in Exiv2 parlance) are key to using Exiv2 (and
therefore gexiv2) to its fullest.

A full reference for all supported Exiv2 tags can be found at &lt;http://www.exiv2.org/metadata.html&gt;</doc>
      <source-position filename="gexiv2/gexiv2-metadata.h" line="139"/>
      <constructor name="new" c:identifier="gexiv2_metadata_new">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="143">Create an empty Metadata object.

To use it, either use the many setter functions to popuplate the data from
scratch or use [method@GExiv2.Metadata.open_path] or
[method@GExiv2.Metadata.open_buf] to populate it from an existing file.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="154"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="152">A fully constructed [class@GExiv2.Metadata] ready to be used</doc>
          <type name="Metadata" c:type="GExiv2Metadata*"/>
        </return-value>
      </constructor>
      <function name="get_tag_description"
                c:identifier="gexiv2_metadata_get_tag_description"
                version="0.16.0"
                throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="427">Get Exiv2's description for a tag.

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="440"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="436">The tag's description</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="429">An Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_tag_label"
                c:identifier="gexiv2_metadata_get_tag_label"
                throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="395">Get Exiv2's label for this tag.

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="407"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="404">The tag's label</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="397">An Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_tag_type"
                c:identifier="gexiv2_metadata_get_tag_type"
                version="0.16.0"
                throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="462">Get Exiv2's type name of a tag.

The names of the various Exiv2 tag types can be found at Exiv2::TypeId,
&lt;http://exiv2.org/doc/namespaceExiv2.html#a5153319711f35fe81cbc13f4b852450c&gt;

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="477"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="474">The tag's type name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="464">An Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_xmp_namespace_for_tag"
                c:identifier="gexiv2_metadata_get_xmp_namespace_for_tag"
                version="0.16.0"
                throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1285">Look up the URI for the namespace for @tag</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1297"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1292">%NULL if there was no namespace registered for the tag, the URI of the namespace otherwise.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1287">Full tag name (e.g. "Xmp.dc.subject") or XMP namespace identifier (e.g. "dc")</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="is_exif_tag" c:identifier="gexiv2_metadata_is_exif_tag">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="342">Check whether @tag is from the EXIF domain of tags.

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="352"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="350">TRUE if the Exiv2 tag is for the EXIF domain.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="344">An Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="is_iptc_tag" c:identifier="gexiv2_metadata_is_iptc_tag">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="354">Check whether @tag is from the IPTC domain of tags.

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="364"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="362">TRUE if the Exiv2 tag is for the IPTC domain.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="356">An Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="is_xmp_tag" c:identifier="gexiv2_metadata_is_xmp_tag">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="366">Check whether @tag is from the XMP domain of tags.

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="376"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="374">TRUE if the Exiv2 tag is for the XMP domain.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="368">An Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="register_xmp_namespace"
                c:identifier="gexiv2_metadata_register_xmp_namespace"
                version="0.16.0"
                throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1202">Register an additional XMP namespace.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1214"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1210">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1204">XMP URI name (should end in /)</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="prefix" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1205">XMP namespace prefix</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="try_get_tag_description"
                c:identifier="gexiv2_metadata_try_get_tag_description"
                version="0.12.2"
                deprecated="1"
                deprecated-version="0.16.0"
                throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="409">Get Exiv2's description for a tag.

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <doc-deprecated xml:space="preserve">Use [func@Metadata.get_tag_description] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="425"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="418">The tag's description</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="411">An Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="try_get_tag_label"
                c:identifier="gexiv2_metadata_try_get_tag_label"
                version="0.12.2"
                deprecated="1"
                deprecated-version="0.16.0"
                throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="378">Get Exiv2's label for this tag.

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <doc-deprecated xml:space="preserve">Use [func@Metadata.get_tag_label] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="393"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="387">The tag's label</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="380">An Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="try_get_tag_type"
                c:identifier="gexiv2_metadata_try_get_tag_type"
                version="0.12.2"
                deprecated="1"
                deprecated-version="0.16.0"
                throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="442">Get Exiv2's type name of a tag.

The names of the various Exiv2 tag types can be found at Exiv2::TypeId,
&lt;http://exiv2.org/doc/namespaceExiv2.html#a5153319711f35fe81cbc13f4b852450c&gt;

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <doc-deprecated xml:space="preserve">Use [func@Metadata.get_tag_type] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="460"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="454">The tag's type name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="444">An Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="try_get_xmp_namespace_for_tag"
                c:identifier="gexiv2_metadata_try_get_xmp_namespace_for_tag"
                version="0.14.0"
                deprecated="1"
                deprecated-version="0.16.0"
                throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1299">Look up the URI for the namespace for @tag</doc>
        <doc-deprecated xml:space="preserve">Use [func@Metadata.try_get_xmp_namespace_for_tag] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1312"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1306">%NULL if there was no namespace registered for the tag, the URI of the namespace otherwise.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1301">Full tag name (e.g. "Xmp.dc.subject") or XMP namespace identifier (e.g. "dc")</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="try_register_xmp_namespace"
                c:identifier="gexiv2_metadata_try_register_xmp_namespace"
                version="0.14.0"
                deprecated="1"
                deprecated-version="0.16.0"
                throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1216">Register an additional XMP namespace.</doc>
        <doc-deprecated xml:space="preserve">Use [func@Metadata.register_xmp_namespace] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1230"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1224">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1218">XMP URI name (should end in /)</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="prefix" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1219">XMP namespace prefix</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="try_unregister_all_xmp_namespaces"
                c:identifier="gexiv2_metadata_try_unregister_all_xmp_namespaces"
                version="0.14.0"
                deprecated="1"
                deprecated-version="0.16.0"
                throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1272">Unregister all XMP namespaces that have been previously registered with
[func@Metadata.try_register_xmp_namespace].</doc>
        <doc-deprecated xml:space="preserve">Use [func@Metadata.register_xmp_namespace] instead</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1283"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <function name="try_unregister_xmp_namespace"
                c:identifier="gexiv2_metadata_try_unregister_xmp_namespace"
                version="0.14.0"
                deprecated="1"
                deprecated-version="0.16.0"
                throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1246">Unregister a namespace previously registered with
[func@Metadata.try_register_xmp_namespace].</doc>
        <doc-deprecated xml:space="preserve">Use [func@Metadata.try_unregister_xmp_namespace] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1260"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1254">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1248">XMP URI name (should end in /)</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="unregister_all_xmp_namespaces"
                c:identifier="gexiv2_metadata_unregister_all_xmp_namespaces"
                version="0.16.0"
                throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1262">Unregister all XMP namespaces that have been previously registered with
[func@Metadata.try_register_xmp_namespace].</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1270"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <function name="unregister_xmp_namespace"
                c:identifier="gexiv2_metadata_unregister_xmp_namespace"
                version="0.16.0"
                throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1232">Unregister a namespace previously registered with
[func@Metadata.try_register_xmp_namespace].</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1244"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1240">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1234">XMP URI name (should end in /)</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <method name="as_bytes"
              c:identifier="gexiv2_metadata_as_bytes"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="250">Saves the metadata to the stream by reading the stream into memory, copying this object's
metadata into the image, then writing the image as a stream back out.

if @bytes is %NULL, a copy of the internal image with updated metadata will be returned.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="266"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="261">A newly allocated GBytes object containing the image with new metadata</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="252">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="bytes"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="253">An image buffer to update the metadata on, nor %NULL</doc>
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear" c:identifier="gexiv2_metadata_clear">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="334">Removes all tags for all domains (EXIF, IPTC, and XMP).</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="340"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="336">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="clear_comment"
              c:identifier="gexiv2_metadata_clear_comment">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1613">This is a composite clear method that will clear a number of fields.  See
[method@Metadata.get_comment]  for more information.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1620"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1615">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="clear_exif" c:identifier="gexiv2_metadata_clear_exif">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="927">Clears all EXIF metadata from the loaded image.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="933"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="929">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="clear_iptc" c:identifier="gexiv2_metadata_clear_iptc">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1326">Clears all IPTC metadata from the loaded image.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1332"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1328">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="clear_tag"
              c:identifier="gexiv2_metadata_clear_tag"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="300">Removes the Exiv2 tag from the metadata object.

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="314"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="310">%TRUE if the tag was present.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="302">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="303">Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear_xmp" c:identifier="gexiv2_metadata_clear_xmp">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1124">Clears all XMP metadata from the loaded image.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1130"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1126">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="delete_gps_info"
              c:identifier="gexiv2_metadata_delete_gps_info"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1954">Removes all GPS metadata from the loaded image</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1962"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1956">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="erase_exif_thumbnail"
              c:identifier="gexiv2_metadata_erase_exif_thumbnail"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1072">Removes the EXIF thumbnail from the loaded image.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1080"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1074">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="from_app1_segment"
              c:identifier="gexiv2_metadata_from_app1_segment"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="207">Load only an EXIF buffer, typically stored in a JPEG's APP1 segment.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="219"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="216">Boolean success indicator.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="209">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="210">A buffer containing the data to be read</doc>
            <array length="1" zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="n_data" transfer-ownership="none" skip="1">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="211">The length of the buffer</doc>
            <type name="glong" c:type="glong"/>
          </parameter>
        </parameters>
      </method>
      <method name="from_stream"
              c:identifier="gexiv2_metadata_from_stream"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="195">Read metadata from a [class@Gio.InputStream]. This function is not very
efficient in places since it needs to copy memory to fullfil underlying
requirements by exiv2, which expects everything to be memory-mappable.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="205"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <type name="Gio.InputStream" c:type="GInputStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_xmp_packet"
              c:identifier="gexiv2_metadata_generate_xmp_packet"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1149">Encode the XMP packet as a %NULL-terminated string.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1161"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1158">Encode the XMP packet and return as a %NULL-terminated string.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1151">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="xmp_format_flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1152">One of #GExiv2XmpFormatFlags</doc>
            <type name="XmpFormatFlags" c:type="GExiv2XmpFormatFlags"/>
          </parameter>
          <parameter name="padding" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1153">The padding before the closing `&lt;?xpacket&gt;` tag</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_comment"
              c:identifier="gexiv2_metadata_get_comment"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1517">A composite accessor that uses the first available metadata field from a list of well-known
locations to find the photo's comment (or description).

MWG guidelines refer to these as *Description*: a textual description of a resource's content.

These fields are:

- Exif.Image.ImageDescription  (MWG Guidelines)
- Exif.Photo.UserComment
- Exif.Image.XPComment
- Iptc.Application2.Caption    (MWG Guidelines)
- Xmp.dc.description           (MWG Guidelines)
- Xmp.acdsee.notes             (Commonly requested, read only)

&lt;note&gt;Note that in the EXIF specification Exif.Image.ImageDescription is
described  as "the title of the image".  Also, it does not support
two-byte character codes for encoding.  However, it's still used here for legacy reasons.
&lt;/note&gt;

For fine-grained control, it's recommended to use Exiv2 tags directly rather than this method,
which is more useful for quick or casual use.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1548"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1544">The photo's comment field.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1519">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_exif_data"
              c:identifier="gexiv2_metadata_get_exif_data"
              version="0.12.2"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1095">Returns a binary blob of the contained EXIF data, if the image contains any.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1108"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1103">The content of the EXIF data or %NULL on error</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1097">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="byte_order" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1098">Whether to export the data in little or big endian format</doc>
            <type name="ByteOrder" c:type="GExiv2ByteOrder"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_exif_tag_rational"
              c:identifier="gexiv2_metadata_get_exif_tag_rational"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="984">Fetch EXIF @tag represented by a fraction. @nom will contain the numerator,
@den the denominator of the fraction on successful return.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="999"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="995">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="986">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="987">The tag you want the rational value for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="nom"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="988">The numerator</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="den"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="989">The denominator</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_exif_tags"
              c:identifier="gexiv2_metadata_get_exif_tags">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="935">Query @self for a list of available EXIF tags</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="944"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="941">A unique list of the available EXIF tags in the
loaded image</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="937">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_exif_thumbnail"
              c:identifier="gexiv2_metadata_get_exif_thumbnail">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1017">Get the thumbnail stored in the EXIF data of @self</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1027"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1025">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1019">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="buffer"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1020">Where to store the thumbnail data</doc>
            <array length="1" zero-terminated="0" c:type="guint8**">
              <type name="guint8" c:type="guint8*"/>
            </array>
          </parameter>
          <parameter name="size"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     skip="1">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1021">Size of the thumbnail's buffer</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_exposure_time"
              c:identifier="gexiv2_metadata_get_exposure_time"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1622">Returns the exposure time in seconds (shutter speed, *not* date-time of exposure) as a
rational.  See &lt;https://en.wikipedia.org/wiki/Shutter_speed&gt; for more information.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1636"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1632">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1624">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="nom"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1625">The numerator</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="den"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1626">The denominator</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_fnumber"
              c:identifier="gexiv2_metadata_get_fnumber"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1656">See &lt;https://en.wikipedia.org/wiki/F-number&gt; for more information.
If Exif.Photo.FNumber does not exist, it will fall back to calculating the FNumber from
Exif.Photo.ApertureValue (if available)</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1669"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1665">The exposure Fnumber as a gdouble, or -1.0 if tag is not present or invalid.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1658">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_focal_length"
              c:identifier="gexiv2_metadata_get_focal_length"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1688">See &lt;https://en.wikipedia.org/wiki/Flange_focal_distance&gt; for more information.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1699"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1695">The focal length as a gdouble, or -1.0 if tag is not present or invalid.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1690">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gps_altitude"
              c:identifier="gexiv2_metadata_get_gps_altitude"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1821">Convenience function to query the altitude stored in the GPS tags of the
image</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1832"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1829">The altitude value, or -inf on error, or nan if no altitude value.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1823">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gps_info"
              c:identifier="gexiv2_metadata_get_gps_info"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1852">Convenience function to query all available GPS information at once. See the
[method@GExiv2.Metadata.get_gps_longitude], [method@GExiv2.Metadata.get_gps_latitude]
and [method@GExiv2.Metadata.get_gps_altitude] for possible values of the out
parameters.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1868"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1865">Boolean success value. Indicates if any of the queries failed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1854">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="longitude"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1855">Storage for longitude value</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="latitude"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1856">Storage for latitude value</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="altitude"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1857">Storage for altitude value</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_gps_latitude"
              c:identifier="gexiv2_metadata_get_gps_latitude"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1809">Query the latitude stored in the GPS tags of @self</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1819"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1816">The latitude or -inf on error, nan if no altitude value is found.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1811">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gps_longitude"
              c:identifier="gexiv2_metadata_get_gps_longitude"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1797">Query the longitude stored in the GPS tags of @self</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1807"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1804">The longitude value, or -inf on error, or nan if no altitude value.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1799">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_iptc_tags"
              c:identifier="gexiv2_metadata_get_iptc_tags">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1334">Query @self for a list of available IPTC tags</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1342"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1340">A unique list of the available IPTC tags</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1336">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_iso_speed"
              c:identifier="gexiv2_metadata_get_iso_speed"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1716">See &lt;https://en.wikipedia.org/wiki/Iso_speed&gt; for more information.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1727"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1723">The ISO speed rating as a gint, or 0 if tag is not present or invalid.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1718">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_metadata_pixel_height"
              c:identifier="gexiv2_metadata_get_metadata_pixel_height"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1436">Composite accessor to query the pixel with stored in the metadata. This
might differ from the height of image that is available through
[method@Metadata.get_pixel_height]</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1448"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1445">Height of images in pixels as stored in the metadata</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1438">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_metadata_pixel_width"
              c:identifier="gexiv2_metadata_get_metadata_pixel_width"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1404">Composite accessor to query the pixel with stored in the metadata. This
might differ from the width of image that is available through
[method@Metadata.get_pixel_width]</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1417"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1413">Width of images in pixels as stored in the metadata</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1406">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mime_type"
              c:identifier="gexiv2_metadata_get_mime_type">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="552">Query mime type of currently loaded image.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="560"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="558">The MIME type of the loaded image, %NULL if not loaded or unknown.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="554">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_orientation"
              c:identifier="gexiv2_metadata_get_orientation"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1348">The EXIF Orientation field</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1360"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1355">A [enum@GExiv2.Orientation] value representing the EXIF orientation
value.</doc>
          <type name="Orientation" c:type="GExiv2Orientation"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1350">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pixel_height"
              c:identifier="gexiv2_metadata_get_pixel_height">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="574">Get the *actual* unoriented display height in pixels of the loaded image.  This may
be different than the height reported by various metadata tags, i.e. `Exif.Photo.PixelYDimension`.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="583"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="581">Pixel height of current image</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="576">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pixel_width"
              c:identifier="gexiv2_metadata_get_pixel_width">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="562">Get the *actual* unoriented display width in pixels of the loaded
image. May be different than the width reported by various metadata tags,
i.e. `Exif.Photo.PixelXDimension`.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="572"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="570">Pixel width of current image</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="564">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_preview_image"
              c:identifier="gexiv2_metadata_get_preview_image"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1982">Get a preview image from the metadata.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1995"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1990">A #GExiv2PreviewImage instance for the particular
#GExiv2PreviewProperties.</doc>
          <type name="PreviewImage" c:type="GExiv2PreviewImage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1984">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="props" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1985">A #GExiv2PreviewProperties instance</doc>
            <type name="PreviewProperties" c:type="GExiv2PreviewProperties*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_preview_properties"
              c:identifier="gexiv2_metadata_get_preview_properties">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1968">An image may have stored one or more previews, often of different qualities, sometimes of
different image formats than the containing image.  This call returns the properties of all
previews Exiv2 finds within the loaded image.  Use [method@Metadata.get_preview_image] to
load a particular preview into memory.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1980"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1977">An array of
#GExiv2PreviewProperties instances, one for each preview present in the loaded image.</doc>
          <array c:type="GExiv2PreviewProperties**">
            <type name="PreviewProperties" c:type="GExiv2PreviewProperties*"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1970">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_supports_exif"
              c:identifier="gexiv2_metadata_get_supports_exif">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="522">Query whether the currently loaded image supports writing of EXIF metadata.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="530"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="528">%TRUE if the loaded image type supports writing EXIF metadata.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="524">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_supports_iptc"
              c:identifier="gexiv2_metadata_get_supports_iptc">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="532">Query whether the currently loaded image supports writing of IPTC metadata.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="540"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="538">%TRUE if the loaded image type supports writing IPTC metadata.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="534">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_supports_xmp"
              c:identifier="gexiv2_metadata_get_supports_xmp">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="542">Query whether the currently loaded image supports writing of XMP metadata.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="550"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="548">%TRUE if the loaded image type supports writing XMP metadata.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="544">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tag_interpreted_string"
              c:identifier="gexiv2_metadata_get_tag_interpreted_string"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="721">An interpreted string is one fit for user display.  It may display units or use formatting
appropriate to the type of data the tag holds.

Tags that support multiple values are returned as a single string, with elements separated by ", ".

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="737"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="734">The tag's interpreted value as a string</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="723">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="724">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_tag_long"
              c:identifier="gexiv2_metadata_get_tag_long"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="755">The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="766"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="763">The tag's value as a glong</doc>
          <type name="glong" c:type="glong"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="757">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="758">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_tag_multiple"
              c:identifier="gexiv2_metadata_get_tag_multiple"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="839">The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;

In case of error, a GLib warning will be logged. Use instead
[method@Metadata.try_get_tag_multiple] if you want to avoid this and
control if and how the error is outputted.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="858"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="851">The multiple string values of
the tag.  Returns %NULL if parameters are %NULL or @tag does not begin with recognised type of
metadata ("Exif.", "Xmp." or "Iptc.").  For a well formed @tag, returns array[0] = %NULL if @tag
is undefined or is not set in the current metadata.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="841">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="842">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_tag_raw"
              c:identifier="gexiv2_metadata_get_tag_raw"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="897">The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;

Tags that support multiple values may bereturned as a single byte array, with records separated
by 4x INFORMATION SEPARATOR FOUR (ASCII 0x1c)</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="911"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="908">The tag's raw value as a byte array</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="899">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="900">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_tag_string"
              c:identifier="gexiv2_metadata_get_tag_string"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="627">The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;

Tags that support multiple values are returned as a single string, with elements separated by ", ".

In case of error, a GLib warning will be logged. Use instead
[method@Metadata.try_get_tag_string] if you want to avoid this and
control if and how the error is outputted.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="645"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="641">The tag's value as a string</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="629">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="630">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_xmp_packet"
              c:identifier="gexiv2_metadata_get_xmp_packet"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1178">Get the currently encoded XMP packet (after having called [method@GExiv2.Metadata.try_get_xmp_packet])</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1188"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1185">The currently-encoded XMP packet (see [method@Metadata.generate_xmp_packet]).</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1180">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xmp_tags" c:identifier="gexiv2_metadata_get_xmp_tags">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1190">Get the XMP data from the image.

This could contain multiple XML snippets.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1200"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1198">A unique list of the available XMP tags</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1192">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_exif" c:identifier="gexiv2_metadata_has_exif">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="917">Whether the metadata contains EXIF data.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="925"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="923">TRUE if EXIF metadata is present in the loaded image</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="919">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_iptc" c:identifier="gexiv2_metadata_has_iptc">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1316">Whether the image has IPTC metadata</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1324"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1322">TRUE if IPTC metadata is present in the loaded image</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1318">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_tag"
              c:identifier="gexiv2_metadata_has_tag"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="268">Check for presence of a tag.

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="282"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="279">%TRUE if the tag is present.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="270">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="271">Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_xmp" c:identifier="gexiv2_metadata_has_xmp">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1114">Whether the metadata contains XMP data.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1122"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1120">TRUE if XMP metadata is present in the loaded image</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1116">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="open_buf"
              c:identifier="gexiv2_metadata_open_buf"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="173">Populate metadata from a memory buffer.

The buffer must be an image format supported by Exiv2. If called multiple times,
current metadata will be replaced by the content of the last file opened.

When called on an already filled meta-data object (i.e. one that has already
been filled by a previous call of [method@GExiv2.Metadata.open_path]) and the
opening of the new path fails, the object will not revert to its previous
state but be in a similar state after calling [method@GExiv2.Metadata.new].</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="193"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="190">Boolean success indicator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="175">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="176">A buffer containing the data to be read</doc>
            <array length="1" zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="n_data" transfer-ownership="none" skip="1">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="177">The length of the buffer</doc>
            <type name="glong" c:type="glong"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_path"
              c:identifier="gexiv2_metadata_open_path"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="156">Populate metadata from @path.

The file must be an image format supported by Exiv2. If called multiple times,
current metadata will be replaced by the content of the last file opened.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="171"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="167">Boolean success indicator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="158">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="159">Path to the file you want to open</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_external"
              c:identifier="gexiv2_metadata_save_external"
              version="0.10.6"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="221">Saves the metadata to the specified using an XMP sidecar file.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="234"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="229">Boolean success indicator.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="223">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="224">Path to the file you want to save to.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_file"
              c:identifier="gexiv2_metadata_save_file"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="236">Saves the metadata to the specified file by reading the file into memory, copying this object's
metadata into the image, then writing the image back out.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="248"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="245">Boolean success indicator.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="238">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="239">Path to the file you want to save to.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_comment"
              c:identifier="gexiv2_metadata_set_comment"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1585">This is a composite setter that will set a number of fields to the supplied value.  See
[method@Metadata.get_comment] for more information.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1596"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1587">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="comment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1588">Comment string to set. Must not be %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_exif_tag_rational"
              c:identifier="gexiv2_metadata_set_exif_tag_rational"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1001">Set EXIF @tag represented by a fraction, with @nom being the numerator,
@den the denominator of the fraction.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1015"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1012">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1003">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1004">The Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="nom" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1005">Rational numerator</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="den" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1006">Rational denominator</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_exif_thumbnail_from_buffer"
              c:identifier="gexiv2_metadata_set_exif_thumbnail_from_buffer"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1042">Sets or replaces the EXIF thumbnail with the data in @buffer.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1052"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1044">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1045">A buffer containing thumbnail data</doc>
            <array length="1" zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="size" transfer-ownership="none" skip="1">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1046">Size of the thumbnail's buffer</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_exif_thumbnail_from_file"
              c:identifier="gexiv2_metadata_set_exif_thumbnail_from_file"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1029">Sets or replaces the EXIF thumbnail with the image in the file</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1040"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1037">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1031">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1032">Path of image file</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_gps_info"
              c:identifier="gexiv2_metadata_set_gps_info"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1890">Convenience function to create a new set of simple GPS data. Warning: Will remove any other
GPS information that is currently set. See [method@Metadata.update_gps_info] for
just modifying the GPS data.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1905"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1902">Boolean success value.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1892">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1893">Longitude value to set or replace current value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1894">Latitude value to set or replace current value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="altitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1895">Altitude value to set or replace current value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_metadata_pixel_height"
              c:identifier="gexiv2_metadata_set_metadata_pixel_height"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1492">Update the image's metadata with @height</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1501"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1494">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1495">The width of the image as it should be put into the metadata.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_metadata_pixel_width"
              c:identifier="gexiv2_metadata_set_metadata_pixel_width"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1467">Composite setter to update the image's metadata with @width</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1476"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1469">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1470">The width of the image as it should be put into the metadata</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_orientation"
              c:identifier="gexiv2_metadata_set_orientation"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1378">The orientation must be valid and cannot be [enum@GExiv2.Orientation.UNSPECIFIED].</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1388"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1380">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="orientation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1381">The new [enum@GExiv2.Orientation] for the image.</doc>
            <type name="Orientation" c:type="GExiv2Orientation"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tag_long"
              c:identifier="gexiv2_metadata_set_tag_long"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="785">The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="797"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="794">TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="787">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="788">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="789">The value to set or replace the existing value</doc>
            <type name="glong" c:type="glong"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tag_multiple"
              c:identifier="gexiv2_metadata_set_tag_multiple"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="860">The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;

All previous @tag values are erased. For multiple value tags, each of the non %NULL
entries in @values is stored. For single value tags, only the last non %NULL value
is assigned.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="876"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="873">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="862">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="863">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="values" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="864">An array of values to set or replace the existing value(s)</doc>
            <array c:type="const gchar**">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="set_tag_string"
              c:identifier="gexiv2_metadata_set_tag_string"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="647">The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;

If a tag supports multiple values, then @value is added to any existing values. For single
value tags, @value replaces the value.

In case of error, a GLib warning will be logged. Use instead
[method@Metadata.try_set_tag_string] if you want to avoid this and
control if and how the error is outputted.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="667"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="663">TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="649">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="650">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="651">The value to set or replace the existing value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_xmp_tag_struct"
              c:identifier="gexiv2_metadata_set_xmp_tag_struct"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="686">The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="698"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="695">TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="688">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="689">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="690">The GExiv2StructureType specifying the type of structure</doc>
            <type name="StructureType" c:type="GExiv2StructureType"/>
          </parameter>
        </parameters>
      </method>
      <method name="tag_supports_multiple_values"
              c:identifier="gexiv2_metadata_tag_supports_multiple_values"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="501">Check whether a tag supports multiple values.

Multiple value tags are Xmp tags of type "XmpAlt", "XmpBag", "XmpSeq" or "LangAlt", or Iptc
tags marked as Repeatable (which can be of any Iptc type). There are no multiple value Exif
tags.

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="520"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="515">Whether @tag is capable of storing multiple values or not. If @tag is undefined
(i.e. not built-in and not added to @self), then @error is set and %FALSE is returned.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="503">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="504">An Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_clear_tag"
              c:identifier="gexiv2_metadata_try_clear_tag"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.14.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="316">Removes the Exiv2 tag from the metadata object.

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.clear_tag] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="332"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="326">TRUE if the tag was present.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="318">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="319">Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_delete_gps_info"
              c:identifier="gexiv2_metadata_try_delete_gps_info"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1941">Removes all GPS metadata from the loaded image</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.delete_gps_info] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1952"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1943">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="try_erase_exif_thumbnail"
              c:identifier="gexiv2_metadata_try_erase_exif_thumbnail"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1082">Removes the EXIF thumbnail from the loaded image.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.erase_exif_thumbnail] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1093"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1084">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="try_generate_xmp_packet"
              c:identifier="gexiv2_metadata_try_generate_xmp_packet"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1132">Encode the XMP packet as a %NULL-terminated string.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.try_generate_xmp_packet] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1147"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1141">Encode the XMP packet and return as a %NULL-terminated string.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1134">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="xmp_format_flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1135">One of #GExiv2XmpFormatFlags</doc>
            <type name="XmpFormatFlags" c:type="GExiv2XmpFormatFlags"/>
          </parameter>
          <parameter name="padding" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1136">The padding before the closing `&lt;?xpacket&gt;` tag</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_get_comment"
              c:identifier="gexiv2_metadata_try_get_comment"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1550">A composite accessor that uses the first available metadata field from a list of well-known
locations to find the photo's comment (or description).

MWG guidelines refer to these as *Description*: a textual description of a resource's content.

These fields are:

- Exif.Image.ImageDescription  (MWG Guidelines)
- Exif.Photo.UserComment
- Exif.Image.XPComment
- Iptc.Application2.Caption    (MWG Guidelines)
- Xmp.dc.description           (MWG Guidelines)
- Xmp.acdsee.notes             (Commonly requested, read only)

&lt;note&gt;Note that in the EXIF specification Exif.Image.ImageDescription is
described  as "the title of the image".  Also, it does not support
two-byte character codes for encoding.  However, it's still used here for legacy reasons.
&lt;/note&gt;

For fine-grained control, it's recommended to use Exiv2 tags directly rather than this method,
which is more useful for quick or casual use.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_comment] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1583"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1577">The photo's comment field.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1552">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="try_get_exif_tag_rational"
              c:identifier="gexiv2_metadata_try_get_exif_tag_rational"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="946">Fetch EXIF @tag represented by a fraction. @nom will contain the numerator,
@den the denominator of the fraction on successful return.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_exif_tag_rational] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="963"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="957">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="948">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="949">The tag you want the rational value for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="nom"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="950">The numerator</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="den"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="951">The denominator</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_get_exposure_time"
              c:identifier="gexiv2_metadata_try_get_exposure_time"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1638">Returns the exposure time in seconds (shutter speed, *not* date-time of exposure) as a
rational.  See &lt;https://en.wikipedia.org/wiki/Shutter_speed&gt; for more information.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_exposure_time] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1654"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1648">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1640">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="nom"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1641">The numerator</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="den"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1642">The denominator</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_get_fnumber"
              c:identifier="gexiv2_metadata_try_get_fnumber"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1671">See &lt;https://en.wikipedia.org/wiki/F-number&gt; for more information.
If Exif.Photo.FNumber does not exist, it will fall back to calculating the FNumber from
Exif.Photo.ApertureValue (if available);</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_fnumber] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1686"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1680">The exposure Fnumber as a gdouble, or -1.0 if tag is not present or invalid.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1673">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="try_get_focal_length"
              c:identifier="gexiv2_metadata_try_get_focal_length"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1701">See &lt;https://en.wikipedia.org/wiki/Flange_focal_distance&gt; for more information.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_focal_length] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1714"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1708">The focal length as a gdouble, or -1.0 if tag is not present or invalid.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1703">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="try_get_gps_altitude"
              c:identifier="gexiv2_metadata_try_get_gps_altitude"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1780">Convenience function to query the altitude stored in the GPS tags of the
image</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_gps_latitude] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1795"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1789">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1782">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="altitude"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1783">Variable to store the altitude value</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_get_gps_info"
              c:identifier="gexiv2_metadata_try_get_gps_info"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1834">Convenience function to query all available GPS information at once.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_gps_info] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1850"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1844">Boolean success value.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1836">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="longitude"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1837">Storage for longitude value</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="latitude"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1838">Storage for latitude value</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="altitude"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1839">Storage for altitude value</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_get_gps_latitude"
              c:identifier="gexiv2_metadata_try_get_gps_latitude"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1764">Query the latitude stored in the GPS tags of @self</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_gps_altitude] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1778"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1772">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1766">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="latitude"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1767">Variable to store the latitude value</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_get_gps_longitude"
              c:identifier="gexiv2_metadata_try_get_gps_longitude"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1748">Query the longitude stored in the GPS tags of @self</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_gps_longitude] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1762"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1756">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1750">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="longitude"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1751">Variable to store the longitude value</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_get_iso_speed"
              c:identifier="gexiv2_metadata_try_get_iso_speed"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1729">See &lt;https://en.wikipedia.org/wiki/Iso_speed&gt; for more information.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_iso_speed] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1742"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1736">The ISO speed rating as a gint, or 0 if tag is not present or invalid.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1731">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="try_get_metadata_pixel_height"
              c:identifier="gexiv2_metadata_try_get_metadata_pixel_height"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1450">Composite accessor to query the pixel with stored in the metadata. This
might differ from the height of image that is available through
[method@Metadata.get_pixel_height]</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_metadata_pixel_height] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1465"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1459">Height of images in pixels as stored in the metadata</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1452">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="try_get_metadata_pixel_width"
              c:identifier="gexiv2_metadata_try_get_metadata_pixel_width"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1419">Composite accessor to query the pixel with stored in the metadata. This
might differ from the width of image that is available through
[method@Metadata.get_pixel_width]</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_metadata_pixel_width] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1434"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1428">Width of images in pixels as stored in the metadata</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1421">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="try_get_orientation"
              c:identifier="gexiv2_metadata_try_get_orientation"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1362">The EXIF Orientation field</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_orientation] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1376"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1369">A [enum@GExiv2.Orientation] value representing the EXIF orientation
value.</doc>
          <type name="Orientation" c:type="GExiv2Orientation"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1364">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="try_get_preview_image"
              c:identifier="gexiv2_metadata_try_get_preview_image"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1997">Get a preview image from the metadata.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_preview_image] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="2012"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="2005">A #GExiv2PreviewImage instance for the particular
#GExiv2PreviewProperties.</doc>
          <type name="PreviewImage" c:type="GExiv2PreviewImage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1999">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="props" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="2000">A #GExiv2PreviewProperties instance</doc>
            <type name="PreviewProperties" c:type="GExiv2PreviewProperties*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_get_tag_interpreted_string"
              c:identifier="gexiv2_metadata_try_get_tag_interpreted_string"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="700">An interpreted string is one fit for user display.  It may display units or use formatting
appropriate to the type of data the tag holds.

Tags that support multiple values are returned as a single string, with elements separated by ", ".

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_tag_interpreted_string] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="719"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="713">The tag's interpreted value as a string</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="702">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="703">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_get_tag_long"
              c:identifier="gexiv2_metadata_try_get_tag_long"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.12.2"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="739">The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_tag_long] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="753"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="747">The tag's value as a glong</doc>
          <type name="glong" c:type="glong"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="741">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="742">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_get_tag_multiple"
              c:identifier="gexiv2_metadata_try_get_tag_multiple"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="799">The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_tag_multiple] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="816"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="807">The multiple string values of
@tag.  Returns %NULL if parameters are %NULL or @tag does not begin with recognised type of
metadata ("Exif.", "Xmp." or "Iptc.").  For a well formed @tag, returns array[0] = %NULL if @tag
is undefined or is not set in the current metadata.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="801">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="802">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_get_tag_raw"
              c:identifier="gexiv2_metadata_try_get_tag_raw"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="878">The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;

Tags that support multiple values may be returned as a single byte array, with records separated
by 4x INFORMATION SEPARATOR FOUR (ASCII 0x1c)</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_tag_raw] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="895"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="889">The tag's raw value as a byte array</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="880">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="881">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_get_tag_string"
              c:identifier="gexiv2_metadata_try_get_tag_string"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="585">Get a string representationf a tag.

Tags that support multiple values are returned as a single string, with elements separated by ", ".

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.get_tag_string] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="603"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="597">The tag's value as a string</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="587">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="588">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_get_xmp_packet"
              c:identifier="gexiv2_metadata_try_get_xmp_packet"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1163">Get the currently encoded XMP packet (after having called [method@GExiv2.Metadata.try_generate_xmp_packet])</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.try_get_xmp_packet] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1176"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1170">%NULL if no packet was generated previously, the XMP packet contents otherwise</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1165">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="try_has_tag"
              c:identifier="gexiv2_metadata_try_has_tag"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="284">The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.has_tag] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="298"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="292">TRUE if the tag is present.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="286">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="287">Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_set_comment"
              c:identifier="gexiv2_metadata_try_set_comment"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1598">This is a composite setter that will set a number of fields to the supplied value.  See
[method@Metadata.get_comment] for more information.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.set_comment] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1611"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1600">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="comment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1601">Comment string to set. Must not be %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_set_exif_tag_rational"
              c:identifier="gexiv2_metadata_try_set_exif_tag_rational"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="965">Set EXIF @tag represented by a fraction, with @nom being the numerator,
@den the denominator of the fraction.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.set_exif_tag_rational] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="982"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="976">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="967">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="968">The Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="nom" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="969">Rational numerator</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="den" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="970">Rational denominator</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_set_exif_thumbnail_from_buffer"
              c:identifier="gexiv2_metadata_try_set_exif_thumbnail_from_buffer"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1054">Sets or replaces the EXIF thumbnail with the data in @buffer.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.set_exif_thumbnail_from_buffer] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1067"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1056">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1057">A buffer containing thumbnail data</doc>
            <array length="1" zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="size" transfer-ownership="none" skip="1">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1058">Size of the thumbnail's buffer</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_set_gps_info"
              c:identifier="gexiv2_metadata_try_set_gps_info"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1870">Convenience function to create a new set of simple GPS data. Warning: Will remove any other
GPS information that is currently set. See [method@Metadata.update_gps_info] for
just modifying the GPS data.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.set_gps_info] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1888"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1882">Boolean success value.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1872">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1873">Longitude value to set or replace current value.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1874">Latitude value to set or replace current value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="altitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1875">Altitude value to set or replace current value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_set_metadata_pixel_height"
              c:identifier="gexiv2_metadata_try_set_metadata_pixel_height"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1503">Update the image's metadata with @height</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.set_metadata_pixel_height] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1515"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1505">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1506">The width of the image as it should be put into the metadata.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_set_metadata_pixel_width"
              c:identifier="gexiv2_metadata_try_set_metadata_pixel_width"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1478">Composite setter to update the image's metadata with @width</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.set_metadata_pixel_width] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1490"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1480">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1481">The width of the image as it should be put into the metadata</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_set_orientation"
              c:identifier="gexiv2_metadata_try_set_orientation"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1390">The orientation must be valid and cannot be [enum@GExiv2.Orientation.UNSPECIFIED.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.set_orientation] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1402"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1392">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="orientation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1393">The new [enum@GExiv2.Orientation] for the image.</doc>
            <type name="Orientation" c:type="GExiv2Orientation"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_set_tag_long"
              c:identifier="gexiv2_metadata_try_set_tag_long"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="768">The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.set_tag_long] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="783"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="777">TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="770">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="771">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="772">The value to set or replace the existing value</doc>
            <type name="glong" c:type="glong"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_set_tag_multiple"
              c:identifier="gexiv2_metadata_try_set_tag_multiple"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="818">The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;

All previous @tag values are erased. For multiple value tags, each of the non %NULL
entries in @values is stored. For single value tags, only the last non %NULL value
is assigned.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.set_tag_multiple] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="837"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="831">Boolean success value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="820">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="821">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="values" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="822">An array of values to set or replace the existing value(s)</doc>
            <array c:type="const gchar**">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="try_set_tag_string"
              c:identifier="gexiv2_metadata_try_set_tag_string"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="605">Set the value of a tag using a string.

If a tag supports multiple values, then @value is added to any existing values. For single
tags, @value replaces the value.

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.set_tag_string] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="625"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="619">TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="607">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="608">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="609">The value to set or replace the existing value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_set_xmp_tag_struct"
              c:identifier="gexiv2_metadata_try_set_xmp_tag_struct"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="669">The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.set_xmp_tag_struct] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="684"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="678">TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="671">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="672">Exiv2 tag name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="673">The GExiv2StructureType specifying the type of structure</doc>
            <type name="StructureType" c:type="GExiv2StructureType"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_tag_supports_multiple_values"
              c:identifier="gexiv2_metadata_try_tag_supports_multiple_values"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0."
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="479">Check whether a tag supports multiple values.

Multiple value tags are Xmp tags of type "XmpAlt", "XmpBag", "XmpSeq" or "LangAlt", or Iptc
tags marked as Repeatable (which can be of any Iptc type). There are no multiple value Exif
tags.

The Exiv2 Tag Reference can be found at &lt;http://exiv2.org/metadata.html&gt;</doc>
        <doc-deprecated xml:space="preserve">Use [method@GExiv2.Metadata.tag_supports_multiple_values] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="499"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="493">Whether @tag is capable of storing multiple values or not. If @tag is undefined
(i.e. not built-in and not added to @self), then @error is set and %FALSE is returned.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="481">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="482">An Exiv2 tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_update_gps_info"
              c:identifier="gexiv2_metadata_try_update_gps_info"
              version="0.12.2"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1907">Convenience function to update longitude, latitude and altitude at once.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Metadata.update_gps_info] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1923"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1917">Boolean success value.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1909">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1910">Longitude value to set or replace current value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1911">Latitude value to set or replace current value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="altitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1912">Altitude value to set or replace current value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_gps_info"
              c:identifier="gexiv2_metadata_update_gps_info"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="1925">Convenience function to update longitude, latitude and altitude at once.</doc>
        <source-position filename="gexiv2/gexiv2-metadata.h" line="1939"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-metadata.h"
               line="1935">Boolean success value.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1927">An instance of [class@GExiv2.Metadata]</doc>
            <type name="Metadata" c:type="GExiv2Metadata*"/>
          </instance-parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1928">Longitude value to set or replace current value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1929">Latitude value to set or replace current value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="altitude" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-metadata.h"
                 line="1930">Altitude value to set or replace current value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="MetadataClass"
            c:type="GExiv2MetadataClass"
            glib:is-gtype-struct-for="Metadata">
      <source-position filename="gexiv2/gexiv2-metadata.h" line="139"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="Orientation"
                 glib:type-name="GExiv2Orientation"
                 glib:get-type="gexiv2_gexiv2_orientation_get_type"
                 c:type="GExiv2Orientation">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-metadata.h"
           line="25">The orientation of an image is defined as the location of it's x,y origin.  More than rotation,
orientation allows for every variation of rotation, flips, and mirroring to be described in
3 bits of data.

A handy primer to orientation can be found at
&lt;http://jpegclub.org/exif_orientation.html&gt;</doc>
      <member name="unspecified"
              value="0"
              c:identifier="GEXIV2_ORIENTATION_UNSPECIFIED"
              glib:nick="unspecified"
              glib:name="GEXIV2_ORIENTATION_UNSPECIFIED">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="27">The orientation of the image is unknown</doc>
      </member>
      <member name="normal"
              value="1"
              c:identifier="GEXIV2_ORIENTATION_NORMAL"
              glib:nick="normal"
              glib:name="GEXIV2_ORIENTATION_NORMAL">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="28">The orientation of the image is without any rotation.</doc>
      </member>
      <member name="hflip"
              value="2"
              c:identifier="GEXIV2_ORIENTATION_HFLIP"
              glib:nick="hflip"
              glib:name="GEXIV2_ORIENTATION_HFLIP">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="29">The image is flipped on its horizontal axis</doc>
      </member>
      <member name="rot_180"
              value="3"
              c:identifier="GEXIV2_ORIENTATION_ROT_180"
              glib:nick="rot-180"
              glib:name="GEXIV2_ORIENTATION_ROT_180">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="30">The image is rotated by 180 degrees</doc>
      </member>
      <member name="vflip"
              value="4"
              c:identifier="GEXIV2_ORIENTATION_VFLIP"
              glib:nick="vflip"
              glib:name="GEXIV2_ORIENTATION_VFLIP">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="31">The Image is flipped on its vertical axis</doc>
      </member>
      <member name="rot_90_hflip"
              value="5"
              c:identifier="GEXIV2_ORIENTATION_ROT_90_HFLIP"
              glib:nick="rot-90-hflip"
              glib:name="GEXIV2_ORIENTATION_ROT_90_HFLIP">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="32">The image is rotated by 90 degrees clockwise and flipped on its horizontal axis</doc>
      </member>
      <member name="rot_90"
              value="6"
              c:identifier="GEXIV2_ORIENTATION_ROT_90"
              glib:nick="rot-90"
              glib:name="GEXIV2_ORIENTATION_ROT_90">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="33">The image is rotated by 90 degrees clockwise</doc>
      </member>
      <member name="rot_90_vflip"
              value="7"
              c:identifier="GEXIV2_ORIENTATION_ROT_90_VFLIP"
              glib:nick="rot-90-vflip"
              glib:name="GEXIV2_ORIENTATION_ROT_90_VFLIP">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="34">The image is rotated by 90 degrees clockwise and flipped on its vertical axis</doc>
      </member>
      <member name="rot_270"
              value="8"
              c:identifier="GEXIV2_ORIENTATION_ROT_270"
              glib:nick="rot-270"
              glib:name="GEXIV2_ORIENTATION_ROT_270">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="35">The image is rotated 270 degrees clockwise</doc>
      </member>
    </enumeration>
    <class name="PreviewImage"
           c:symbol-prefix="preview_image"
           c:type="GExiv2PreviewImage"
           parent="GObject.Object"
           glib:type-name="GExiv2PreviewImage"
           glib:get-type="gexiv2_preview_image_get_type"
           glib:type-struct="PreviewImageClass">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-preview-image.h"
           line="22">An accessor to the preview images contained in the image's metadata.

This could be anything from a thumbnail to a full-sized camera development
of a RAW image.

The `GExiv2PreviewImage` is obtained by calling gexiv2_metadata_get_preview_image()
with an instance of #GExiv2PreviewProperties that are describing the image
to be fetched.

```c
GExiv2PreviewProperties **properties, **it;
properties = it = gexiv2_metadata_get_preview_properties(metadata);

while (*it) {
  preview_image = gexiv2_metadata_get_preview_image(metadata, *it);
  it++;
}
```</doc>
      <source-position filename="gexiv2/gexiv2-preview-image.h" line="20"/>
      <method name="get_data" c:identifier="gexiv2_preview_image_get_data">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-preview-image.h"
             line="50">Get a pointer to the image data of the preview image. The returned data is
owned by the preview image and must not be freed.</doc>
        <source-position filename="gexiv2/gexiv2-preview-image.h" line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-preview-image.h"
               line="58">The raw image data</doc>
          <array length="0" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-preview-image.h"
                 line="52">An instance of [class@GExiv2.PreviewImage]</doc>
            <type name="PreviewImage" c:type="GExiv2PreviewImage*"/>
          </instance-parameter>
          <parameter name="size"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     skip="1">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-preview-image.h"
                 line="53">The size of the buffer holding the data</doc>
            <type name="guint32" c:type="guint32*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_extension"
              c:identifier="gexiv2_preview_image_get_extension">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-preview-image.h"
             line="72">Get the file extension commonly associated with the preview image</doc>
        <source-position filename="gexiv2/gexiv2-preview-image.h" line="80"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-preview-image.h"
               line="78">The preview image's recommended file extension.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-preview-image.h"
                 line="74">An instance of [class@GExiv2.PreviewImage]</doc>
            <type name="PreviewImage" c:type="GExiv2PreviewImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_height" c:identifier="gexiv2_preview_image_get_height">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-preview-image.h"
             line="92">Get the height in pixels</doc>
        <source-position filename="gexiv2/gexiv2-preview-image.h" line="100"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-preview-image.h"
               line="98">The preview image's display height in pixels.</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-preview-image.h"
                 line="94">An instance of [class@GExiv2.PreviewImage]</doc>
            <type name="PreviewImage" c:type="GExiv2PreviewImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mime_type"
              c:identifier="gexiv2_preview_image_get_mime_type">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-preview-image.h"
             line="62">Get the MIME type associated with the preview image.</doc>
        <source-position filename="gexiv2/gexiv2-preview-image.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-preview-image.h"
               line="68">The preview image's MIME type.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-preview-image.h"
                 line="64">An instance of [class@GExiv2.PreviewImage]</doc>
            <type name="PreviewImage" c:type="GExiv2PreviewImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width" c:identifier="gexiv2_preview_image_get_width">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-preview-image.h"
             line="82">Get the width in pixels</doc>
        <source-position filename="gexiv2/gexiv2-preview-image.h" line="90"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-preview-image.h"
               line="88">The preview image's display width in pixels.</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-preview-image.h"
                 line="84">An instance of [class@GExiv2.PreviewImage]</doc>
            <type name="PreviewImage" c:type="GExiv2PreviewImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="try_write_file"
              c:identifier="gexiv2_preview_image_try_write_file"
              version="0.14.0"
              deprecated="1"
              deprecated-version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-preview-image.h"
             line="116">Write the preview image to a file in @path</doc>
        <doc-deprecated xml:space="preserve">Use [method@GExiv2.PreviewImage.write_file] instead.</doc-deprecated>
        <source-position filename="gexiv2/gexiv2-preview-image.h" line="131"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-preview-image.h"
               line="124">The number of bytes written to the file.</doc>
          <type name="glong" c:type="glong"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-preview-image.h"
                 line="118">An instance of [class@GExiv2.PreviewImage]</doc>
            <type name="PreviewImage" c:type="GExiv2PreviewImage*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-preview-image.h"
                 line="119">The file path to write the preview image to.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_file"
              c:identifier="gexiv2_preview_image_write_file"
              version="0.16.0"
              throws="1">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-preview-image.h"
             line="102">Write the preview image to a file in @path</doc>
        <source-position filename="gexiv2/gexiv2-preview-image.h" line="114"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-preview-image.h"
               line="110">The number of bytes written to the file.</doc>
          <type name="gsize" c:type="size_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-preview-image.h"
                 line="104">An instance of [class@GExiv2.PreviewImage]</doc>
            <type name="PreviewImage" c:type="GExiv2PreviewImage*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-preview-image.h"
                 line="105">The file path to write the preview image to.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="PreviewImageClass"
            c:type="GExiv2PreviewImageClass"
            glib:is-gtype-struct-for="PreviewImage">
      <source-position filename="gexiv2/gexiv2-preview-image.h" line="20"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="PreviewProperties"
           c:symbol-prefix="preview_properties"
           c:type="GExiv2PreviewProperties"
           parent="GObject.Object"
           glib:type-name="GExiv2PreviewProperties"
           glib:get-type="gexiv2_preview_properties_get_type"
           glib:type-struct="PreviewPropertiesClass">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-preview-properties.h"
           line="22">Properties of a preview image.

Metadata can contain multiple preview images. [class@GExiv2.PreviewProperties] are
used to describe the available image without the need of fetching the whole
image from the metadata.</doc>
      <source-position filename="gexiv2/gexiv2-preview-properties.h"
                       line="20"/>
      <method name="get_extension"
              c:identifier="gexiv2_preview_properties_get_extension">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-preview-properties.h"
             line="44">Get the recommended file extension for the preview image.</doc>
        <source-position filename="gexiv2/gexiv2-preview-properties.h"
                         line="52"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-preview-properties.h"
               line="50">The recommended file extension for the preview image.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-preview-properties.h"
                 line="46">An instance of [class@GExiv2.PreviewProperties]</doc>
            <type name="PreviewProperties" c:type="GExiv2PreviewProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_height"
              c:identifier="gexiv2_preview_properties_get_height">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-preview-properties.h"
             line="74">Get the preview image's display height in pixels.</doc>
        <source-position filename="gexiv2/gexiv2-preview-properties.h"
                         line="82"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-preview-properties.h"
               line="80">The preview image's display height in pixels.</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-preview-properties.h"
                 line="76">An instance of [class@GExiv2.PreviewProperties]</doc>
            <type name="PreviewProperties" c:type="GExiv2PreviewProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mime_type"
              c:identifier="gexiv2_preview_properties_get_mime_type">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-preview-properties.h"
             line="34">Get the preview image's content-type.</doc>
        <source-position filename="gexiv2/gexiv2-preview-properties.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-preview-properties.h"
               line="40">The preview image's MIME type.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-preview-properties.h"
                 line="36">An instance of [class@GExiv2.PreviewProperties]</doc>
            <type name="PreviewProperties" c:type="GExiv2PreviewProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size"
              c:identifier="gexiv2_preview_properties_get_size">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-preview-properties.h"
             line="54">Returns the size of the preview image in bytes.</doc>
        <source-position filename="gexiv2/gexiv2-preview-properties.h"
                         line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-preview-properties.h"
               line="60">The preview image size in bytes.</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-preview-properties.h"
                 line="56">An instance of [class@GExiv2.PreviewProperties]</doc>
            <type name="PreviewProperties" c:type="GExiv2PreviewProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width"
              c:identifier="gexiv2_preview_properties_get_width">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-preview-properties.h"
             line="64">Get the preview image's display width in pixels</doc>
        <source-position filename="gexiv2/gexiv2-preview-properties.h"
                         line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-preview-properties.h"
               line="70">The preview image's display width in pixels.</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gexiv2/gexiv2-preview-properties.h"
                 line="66">An instance of [class@GExiv2.PreviewProperties]</doc>
            <type name="PreviewProperties" c:type="GExiv2PreviewProperties*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="PreviewPropertiesClass"
            c:type="GExiv2PreviewPropertiesClass"
            glib:is-gtype-struct-for="PreviewProperties">
      <source-position filename="gexiv2/gexiv2-preview-properties.h"
                       line="20"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="StructureType"
                 glib:type-name="GExiv2StructureType"
                 glib:get-type="gexiv2_gexiv2_structure_type_get_type"
                 c:type="GExiv2StructureType">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-metadata.h"
           line="61">Used in [method@Metadata.set_xmp_tag_struct] to determine the array type</doc>
      <member name="none"
              value="0"
              c:identifier="GEXIV2_STRUCTURE_XA_NONE"
              glib:nick="none"
              glib:name="GEXIV2_STRUCTURE_XA_NONE">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="63">Structure is not an array</doc>
      </member>
      <member name="alt"
              value="20"
              c:identifier="GEXIV2_STRUCTURE_XA_ALT"
              glib:nick="alt"
              glib:name="GEXIV2_STRUCTURE_XA_ALT">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="64">A list of alternative values</doc>
      </member>
      <member name="bag"
              value="21"
              c:identifier="GEXIV2_STRUCTURE_XA_BAG"
              glib:nick="bag"
              glib:name="GEXIV2_STRUCTURE_XA_BAG">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="65">An unordered list of values</doc>
      </member>
      <member name="seq"
              value="22"
              c:identifier="GEXIV2_STRUCTURE_XA_SEQ"
              glib:nick="seq"
              glib:name="GEXIV2_STRUCTURE_XA_SEQ">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="66">An ordered list of values</doc>
      </member>
      <member name="lang"
              value="23"
              c:identifier="GEXIV2_STRUCTURE_XA_LANG"
              glib:nick="lang"
              glib:name="GEXIV2_STRUCTURE_XA_LANG">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="67">Not supported. For completeness only</doc>
      </member>
    </enumeration>
    <bitfield name="XmpFormatFlags"
              glib:type-name="GExiv2XmpFormatFlags"
              glib:get-type="gexiv2_gexiv2_xmp_format_flags_get_type"
              c:type="GExiv2XmpFormatFlags">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-metadata.h"
           line="79">Options to control the format of the serialized XMP packet
Taken from: exiv2/src/xmp.hpp</doc>
      <member name="omit_packet_wrapper"
              value="16"
              c:identifier="GEXIV2_OMIT_PACKET_WRAPPER"
              glib:nick="omit-packet-wrapper"
              glib:name="GEXIV2_OMIT_PACKET_WRAPPER">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="81">Omit the XML packet wrapper.</doc>
      </member>
      <member name="read_only_packet"
              value="32"
              c:identifier="GEXIV2_READ_ONLY_PACKET"
              glib:nick="read-only-packet"
              glib:name="GEXIV2_READ_ONLY_PACKET">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="82">Default is a writeable packet.</doc>
      </member>
      <member name="use_compact_format"
              value="64"
              c:identifier="GEXIV2_USE_COMPACT_FORMAT"
              glib:nick="use-compact-format"
              glib:name="GEXIV2_USE_COMPACT_FORMAT">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="83">Use a compact form of RDF.</doc>
      </member>
      <member name="include_thumbnail_pad"
              value="256"
              c:identifier="GEXIV2_INCLUDE_THUMBNAIL_PAD"
              glib:nick="include-thumbnail-pad"
              glib:name="GEXIV2_INCLUDE_THUMBNAIL_PAD">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="84">Include a padding allowance for a thumbnail image.</doc>
      </member>
      <member name="exact_packet_length"
              value="512"
              c:identifier="GEXIV2_EXACT_PACKET_LENGTH"
              glib:nick="exact-packet-length"
              glib:name="GEXIV2_EXACT_PACKET_LENGTH">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="85">The padding parameter is the overall packet length.</doc>
      </member>
      <member name="write_alias_comments"
              value="1024"
              c:identifier="GEXIV2_WRITE_ALIAS_COMMENTS"
              glib:nick="write-alias-comments"
              glib:name="GEXIV2_WRITE_ALIAS_COMMENTS">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="86">Show aliases as XML comments.</doc>
      </member>
      <member name="omit_all_formatting"
              value="2048"
              c:identifier="GEXIV2_OMIT_ALL_FORMATTING"
              glib:nick="omit-all-formatting"
              glib:name="GEXIV2_OMIT_ALL_FORMATTING">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-metadata.h"
             line="87">Omit all formatting whitespace.</doc>
      </member>
    </bitfield>
    <function name="get_version" c:identifier="gexiv2_get_version">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-version.h"
           line="35">The gexiv2 library's version number as a formatted decimal XXYYZZ.

XX is the major version, YY is the minor version, and ZZ is the micro version

For example, version 0.6.1 will be returned as 000601.</doc>
      <source-position filename="gexiv2/gexiv2-version.h" line="46"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-version.h"
             line="44">Integer representing the current version.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
    </function>
    <function name="initialize" c:identifier="gexiv2_initialize">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-startup.h"
           line="23">Initializes GExiv2.

GExiv2 requires initialization before its methods are used.  In particular, this call must be
made in a thread-safe fashion.  Best practice is to call from the application's main thread and
not to use any Gexiv2 code until it has returned.</doc>
      <source-position filename="gexiv2/gexiv2-startup.h" line="35"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-startup.h"
             line="32">%TRUE if initialized.  If %FALSE, GExiv2 should not be used (unable to initialize
properly).</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="log_get_default_handler"
              c:identifier="gexiv2_log_get_default_handler"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-log.h"
           line="82">Get the default [callback@GExiv2.LogHandler], which uses Exiv2's built-in
handler.  Exiv2 will send the message to stderr.</doc>
      <source-position filename="gexiv2/gexiv2-log.h" line="90"/>
      <return-value>
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-log.h"
             line="88">The default log handler.</doc>
        <type name="LogHandler" c:type="GExiv2LogHandler"/>
      </return-value>
    </function>
    <function name="log_get_handler"
              c:identifier="gexiv2_log_get_handler"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-log.h"
           line="70">Get the current [callback@GExiv2.LogHandler]

Will return the default handler if none was set.  See
[func@GExiv2.log_get_default_handler].</doc>
      <source-position filename="gexiv2/gexiv2-log.h" line="80"/>
      <return-value>
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-log.h"
             line="78">The current log handler.</doc>
        <type name="LogHandler" c:type="GExiv2LogHandler"/>
      </return-value>
    </function>
    <function name="log_get_level" c:identifier="gexiv2_log_get_level">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-log.h"
           line="48">Get the current [enum@GExiv2.LogLevel].

Messages below this level will not be logged.</doc>
      <source-position filename="gexiv2/gexiv2-log.h" line="57"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gexiv2/gexiv2-log.h"
             line="55">The current level.</doc>
        <type name="LogLevel" c:type="GExiv2LogLevel"/>
      </return-value>
    </function>
    <function name="log_set_handler"
              c:identifier="gexiv2_log_set_handler"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-log.h"
           line="92">Replace the default handler with a custom log handler.

This method is not thread-safe.  It's best to set this before beginning to use gexiv2.</doc>
      <source-position filename="gexiv2/gexiv2-log.h" line="100"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="handler" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-log.h"
               line="94">A [callback@GExiv2.LogHandler] callback to begin receiving log messages from Exiv2 and gexiv2</doc>
          <type name="LogHandler" c:type="GExiv2LogHandler"/>
        </parameter>
      </parameters>
    </function>
    <function name="log_set_level" c:identifier="gexiv2_log_set_level">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-log.h"
           line="59">Set the current [enum@GExiv2.LogLevel].


Messages below this level will not be logged.</doc>
      <source-position filename="gexiv2/gexiv2-log.h" line="68"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="level" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gexiv2/gexiv2-log.h"
               line="61">The [enum@GExiv2.LogLevel] gexiv2 should respect.</doc>
          <type name="LogLevel" c:type="GExiv2LogLevel"/>
        </parameter>
      </parameters>
    </function>
    <function name="log_use_glib_logging"
              c:identifier="gexiv2_log_use_glib_logging">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-log.h"
           line="102">Make GExiv2 use GLib's logging mechanism.

When called, gexiv2 will install it's own [callback@GExiv2.LogHandler] which
redirects all Exiv2 and gexiv2 log messages to GLib's logging calls
([func@GLib.debug], [func@GLib.message], [func@GLib.warning], and
[func@GLib.critical] for the respective [enum@GExiv2.LogLevel] value).
[enum@GExiv2.LogLevel.MUTE] log messages are dropped.

One advantage to using this is that GLib's logging control and handlers can be used rather than
GExiv2's ad hoc scheme.  It also means an application can use GLib logging and have all its
messages routed through the same calls.</doc>
      <source-position filename="gexiv2/gexiv2-log.h" line="117"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="shutdown" c:identifier="gexiv2_shutdown" version="0.16.0">
      <doc xml:space="preserve"
           filename="gexiv2/gexiv2-startup.h"
           line="37">Shutdown GExiv2.

Shutdown GExiv2. Should be called in the same thread as gexiv2_initialize().</doc>
      <source-position filename="gexiv2/gexiv2-startup.h" line="46"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
  </namespace>
</repository>
