<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <package name="gtuber-0.0"/>
  <c:include name="gtuber/gtuber.h"/>
  <namespace name="Gtuber"
             version="0.0"
             shared-library="libgtuber-0.0.so.0"
             c:identifier-prefixes="Gtuber"
             c:symbol-prefixes="gtuber">
    <function-macro name="ADAPTIVE_STREAM"
                    c:identifier="GTUBER_ADAPTIVE_STREAM"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-adaptive-stream.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="ADAPTIVE_STREAM_CLASS"
                    c:identifier="GTUBER_ADAPTIVE_STREAM_CLASS"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-adaptive-stream.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="ADAPTIVE_STREAM_GET_CLASS"
                    c:identifier="GTUBER_ADAPTIVE_STREAM_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-adaptive-stream.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="AdaptiveStream"
           c:symbol-prefix="adaptive_stream"
           c:type="GtuberAdaptiveStream"
           parent="Stream"
           glib:type-name="GtuberAdaptiveStream"
           glib:get-type="gtuber_adaptive_stream_get_type"
           glib:type-struct="AdaptiveStreamClass">
      <doc xml:space="preserve"
           filename="gtuber/gtuber-adaptive-stream.h"
           line="38">Contains values of peculiar adaptive media stream.</doc>
      <source-position filename="gtuber/gtuber-adaptive-stream.h" line="44"/>
      <method name="get_index_range"
              c:identifier="gtuber_adaptive_stream_get_index_range">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-adaptive-stream.c"
             line="192">Gets the byte range of stream media segment.</doc>
        <source-position filename="gtuber/gtuber-adaptive-stream.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-adaptive-stream.c"
               line="200">%TRUE if successful, with the out parameters set, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-adaptive-stream.c"
                 line="194">a #GtuberAdaptiveStream</doc>
            <type name="AdaptiveStream" c:type="GtuberAdaptiveStream*"/>
          </instance-parameter>
          <parameter name="start"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-adaptive-stream.c"
                 line="195">the start of stream index range</doc>
            <type name="guint64" c:type="guint64*"/>
          </parameter>
          <parameter name="end"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-adaptive-stream.c"
                 line="196">the end of stream index range</doc>
            <type name="guint64" c:type="guint64*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_init_range"
              c:identifier="gtuber_adaptive_stream_get_init_range">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-adaptive-stream.c"
             line="147">Gets the byte range of stream initialization segment.</doc>
        <source-position filename="gtuber/gtuber-adaptive-stream.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-adaptive-stream.c"
               line="155">%TRUE if successful, with the out parameters set, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-adaptive-stream.c"
                 line="149">a #GtuberAdaptiveStream</doc>
            <type name="AdaptiveStream" c:type="GtuberAdaptiveStream*"/>
          </instance-parameter>
          <parameter name="start"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-adaptive-stream.c"
                 line="150">the start of stream init range</doc>
            <type name="guint64" c:type="guint64*"/>
          </parameter>
          <parameter name="end"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-adaptive-stream.c"
                 line="151">the end of stream init range</doc>
            <type name="guint64" c:type="guint64*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_manifest_type"
              c:identifier="gtuber_adaptive_stream_get_manifest_type"
              glib:get-property="manifest-type">
        <source-position filename="gtuber/gtuber-adaptive-stream.h" line="52"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-adaptive-stream.c"
               line="117">a #GtuberAdaptiveStreamManifest representing
  type of the manifest adaptive stream belongs to.</doc>
          <type name="AdaptiveStreamManifest"
                c:type="GtuberAdaptiveStreamManifest"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-adaptive-stream.c"
                 line="115">a #GtuberAdaptiveStream</doc>
            <type name="AdaptiveStream" c:type="GtuberAdaptiveStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="manifest-type"
                transfer-ownership="none"
                getter="get_manifest_type"
                default-value="GTUBER_ADAPTIVE_STREAM_MANIFEST_UNKNOWN">
        <type name="AdaptiveStreamManifest"/>
      </property>
    </class>
    <record name="AdaptiveStreamClass"
            c:type="GtuberAdaptiveStreamClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="AdaptiveStream">
      <source-position filename="gtuber/gtuber-adaptive-stream.h" line="44"/>
    </record>
    <callback name="AdaptiveStreamFilter" c:type="GtuberAdaptiveStreamFilter">
      <doc xml:space="preserve"
           filename="gtuber/gtuber-manifest-generator.h"
           line="50">A function to be used with gtuber_manifest_generator_set_filter_func()
in order to get a manifest only with streams that match certain criteria.</doc>
      <source-position filename="gtuber/gtuber-manifest-generator.h"
                       line="60"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-manifest-generator.h"
             line="58">%TRUE if adaptive stream should be added, %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="stream" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-manifest-generator.h"
               line="52">a #GtuberAdaptiveStream to check</doc>
          <type name="AdaptiveStream" c:type="GtuberAdaptiveStream*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-manifest-generator.h"
               line="53">the user data that has been passed on</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="AdaptiveStreamManifest"
                 glib:type-name="GtuberAdaptiveStreamManifest"
                 glib:get-type="gtuber_adaptive_stream_manifest_get_type"
                 c:type="GtuberAdaptiveStreamManifest">
      <member name="unknown"
              value="0"
              c:identifier="GTUBER_ADAPTIVE_STREAM_MANIFEST_UNKNOWN"
              glib:nick="unknown"
              glib:name="GTUBER_ADAPTIVE_STREAM_MANIFEST_UNKNOWN">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="78">adaptive stream belongs to a manifest which type is unknown.</doc>
      </member>
      <member name="dash"
              value="1"
              c:identifier="GTUBER_ADAPTIVE_STREAM_MANIFEST_DASH"
              glib:nick="dash"
              glib:name="GTUBER_ADAPTIVE_STREAM_MANIFEST_DASH">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="79">adaptive stream belongs to a DASH manifest.</doc>
      </member>
      <member name="hls"
              value="2"
              c:identifier="GTUBER_ADAPTIVE_STREAM_MANIFEST_HLS"
              glib:nick="hls"
              glib:name="GTUBER_ADAPTIVE_STREAM_MANIFEST_HLS">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="80">adaptive stream belongs to a HLS manifest.</doc>
      </member>
    </enumeration>
    <function-macro name="CHECK_VERSION"
                    c:identifier="GTUBER_CHECK_VERSION"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-version.h" line="81"/>
      <parameters>
        <parameter name="major">
        </parameter>
        <parameter name="minor">
        </parameter>
        <parameter name="micro">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CLIENT"
                    c:identifier="GTUBER_CLIENT"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-client.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CLIENT_CLASS"
                    c:identifier="GTUBER_CLIENT_CLASS"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-client.h" line="38"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CLIENT_GET_CLASS"
                    c:identifier="GTUBER_CLIENT_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-client.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Client"
           c:symbol-prefix="client"
           c:type="GtuberClient"
           parent="GObject.Object"
           glib:type-name="GtuberClient"
           glib:get-type="gtuber_client_get_type"
           glib:type-struct="ClientClass">
      <doc xml:space="preserve"
           filename="gtuber/gtuber-client.h"
           line="42">Gtuber web client used to obtain media info.</doc>
      <source-position filename="gtuber/gtuber-client.h" line="48"/>
      <constructor name="new" c:identifier="gtuber_client_new">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-client.c"
             line="107">Creates a new #GtuberClient instance.</doc>
        <source-position filename="gtuber/gtuber-client.h" line="56"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-client.c"
               line="112">a new #GtuberClient instance.</doc>
          <type name="Client" c:type="GtuberClient*"/>
        </return-value>
      </constructor>
      <method name="fetch_media_info"
              c:identifier="gtuber_client_fetch_media_info"
              throws="1"
              glib:async-func="fetch_media_info_async">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-client.c"
             line="120">Synchronously obtains media info for requested URI.</doc>
        <source-position filename="gtuber/gtuber-client.h" line="58"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-client.c"
               line="130">a #GtuberMediaInfo or %NULL on error.</doc>
          <type name="MediaInfo" c:type="GtuberMediaInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-client.c"
                 line="122">a #GtuberClient</doc>
            <type name="Client" c:type="GtuberClient*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-client.c"
                 line="123">a media source URI</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-client.c"
                 line="124">optional #GCancellable object,
    %NULL to ignore</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_media_info_async"
              c:identifier="gtuber_client_fetch_media_info_async"
              glib:finish-func="fetch_media_info_finish"
              glib:sync-func="fetch_media_info">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-client.c"
             line="338">Asynchronously obtains media info for requested URI.

When the operation is finished, @callback will be called.
You can then call gtuber_client_fetch_media_info_finish() to
get the result of the operation.</doc>
        <source-position filename="gtuber/gtuber-client.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-client.c"
                 line="340">a #GtuberClient</doc>
            <type name="Client" c:type="GtuberClient*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-client.c"
                 line="341">a media source URI</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-client.c"
                 line="342">optional #GCancellable object,
    %NULL to ignore</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-client.c"
                 line="344">a #GAsyncReadyCallback to call
    when the request is satisfied</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-client.c"
                 line="346">the data to pass to callback function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_media_info_finish"
              c:identifier="gtuber_client_fetch_media_info_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-client.c"
             line="371">Finishes an asynchronous obtain media info operation started with
gtuber_client_fetch_media_info_async().</doc>
        <source-position filename="gtuber/gtuber-client.h" line="63"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-client.c"
               line="380">a #GtuberMediaInfo or %NULL on error.</doc>
          <type name="MediaInfo" c:type="GtuberMediaInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-client.c"
                 line="373">a #GtuberClient</doc>
            <type name="Client" c:type="GtuberClient*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-client.c"
                 line="374">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="ClientClass"
            c:type="GtuberClientClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="Client">
      <source-position filename="gtuber/gtuber-client.h" line="48"/>
    </record>
    <enumeration name="ClientError"
                 glib:type-name="GtuberClientError"
                 glib:get-type="gtuber_client_error_get_type"
                 c:type="GtuberClientError"
                 glib:error-domain="gtuberclient-error-quark">
      <member name="no_plugin"
              value="0"
              c:identifier="GTUBER_CLIENT_ERROR_NO_PLUGIN"
              glib:nick="no-plugin"
              glib:name="GTUBER_CLIENT_ERROR_NO_PLUGIN">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="91">none of the installed plugins could handle URI.</doc>
      </member>
      <member name="missing_info"
              value="1"
              c:identifier="GTUBER_CLIENT_ERROR_MISSING_INFO"
              glib:nick="missing-info"
              glib:name="GTUBER_CLIENT_ERROR_MISSING_INFO">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="92">plugin did not fill the media info.</doc>
      </member>
      <function name="quark" c:identifier="gtuber_client_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <bitfield name="CodecFlags"
              glib:type-name="GtuberCodecFlags"
              glib:get-type="gtuber_codec_flags_get_type"
              c:type="GtuberCodecFlags">
      <member name="unknown_video"
              value="1"
              c:identifier="GTUBER_CODEC_UNKNOWN_VIDEO"
              glib:nick="unknown-video"
              glib:name="GTUBER_CODEC_UNKNOWN_VIDEO">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="54">an unknown video codec.</doc>
      </member>
      <member name="avc"
              value="2"
              c:identifier="GTUBER_CODEC_AVC"
              glib:nick="avc"
              glib:name="GTUBER_CODEC_AVC">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="55">AVC video codec (usually H.264).</doc>
      </member>
      <member name="hevc"
              value="4"
              c:identifier="GTUBER_CODEC_HEVC"
              glib:nick="hevc"
              glib:name="GTUBER_CODEC_HEVC">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="56">HEVC video codec.</doc>
      </member>
      <member name="vp9"
              value="8"
              c:identifier="GTUBER_CODEC_VP9"
              glib:nick="vp9"
              glib:name="GTUBER_CODEC_VP9">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="57">VP9 video codec.</doc>
      </member>
      <member name="av1"
              value="16"
              c:identifier="GTUBER_CODEC_AV1"
              glib:nick="av1"
              glib:name="GTUBER_CODEC_AV1">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="58">AV1 video codec.</doc>
      </member>
      <member name="unknown_audio"
              value="1024"
              c:identifier="GTUBER_CODEC_UNKNOWN_AUDIO"
              glib:nick="unknown-audio"
              glib:name="GTUBER_CODEC_UNKNOWN_AUDIO">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="59">an unknown audio codec.</doc>
      </member>
      <member name="mp4a"
              value="2048"
              c:identifier="GTUBER_CODEC_MP4A"
              glib:nick="mp4a"
              glib:name="GTUBER_CODEC_MP4A">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="60">audio codec in a MP4A format (usually AAC).</doc>
      </member>
      <member name="opus"
              value="4096"
              c:identifier="GTUBER_CODEC_OPUS"
              glib:nick="opus"
              glib:name="GTUBER_CODEC_OPUS">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="61">Opus audio codec.</doc>
      </member>
    </bitfield>
    <function-macro name="ENCODE_VERSION"
                    c:identifier="GTUBER_ENCODE_VERSION"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-version.h" line="70"/>
      <parameters>
        <parameter name="major">
        </parameter>
        <parameter name="minor">
        </parameter>
        <parameter name="micro">
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="Flow"
                 glib:type-name="GtuberFlow"
                 glib:get-type="gtuber_flow_get_type"
                 c:type="GtuberFlow">
      <member name="ok"
              value="0"
              c:identifier="GTUBER_FLOW_OK"
              glib:nick="ok"
              glib:name="GTUBER_FLOW_OK">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="137">continue parsing.</doc>
      </member>
      <member name="error"
              value="1"
              c:identifier="GTUBER_FLOW_ERROR"
              glib:nick="error"
              glib:name="GTUBER_FLOW_ERROR">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="138">give up.</doc>
      </member>
      <member name="restart"
              value="2"
              c:identifier="GTUBER_FLOW_RESTART"
              glib:nick="restart"
              glib:name="GTUBER_FLOW_RESTART">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="139">start from first step again.</doc>
      </member>
      <member name="reconfigure"
              value="3"
              c:identifier="GTUBER_FLOW_RECONFIGURE"
              glib:nick="reconfigure"
              glib:name="GTUBER_FLOW_RECONFIGURE">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="140">change URI and do a clean restart.</doc>
      </member>
    </enumeration>
    <callback name="Func" c:type="GtuberFunc">
      <source-position filename="gtuber/gtuber-types.h" line="30"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="src"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="HeartbeatError"
                 glib:type-name="GtuberHeartbeatError"
                 glib:get-type="gtuber_heartbeat_error_get_type"
                 c:type="GtuberHeartbeatError">
      <member name="ping_failed"
              value="0"
              c:identifier="GTUBER_HEARTBEAT_ERROR_PING_FAILED"
              glib:nick="ping-failed"
              glib:name="GTUBER_HEARTBEAT_ERROR_PING_FAILED">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="124">ping action on website failed.</doc>
      </member>
      <member name="pong_failed"
              value="1"
              c:identifier="GTUBER_HEARTBEAT_ERROR_PONG_FAILED"
              glib:nick="pong-failed"
              glib:name="GTUBER_HEARTBEAT_ERROR_PONG_FAILED">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="125">pong action from website failed.</doc>
      </member>
      <member name="other"
              value="2"
              c:identifier="GTUBER_HEARTBEAT_ERROR_OTHER"
              glib:nick="other"
              glib:name="GTUBER_HEARTBEAT_ERROR_OTHER">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="126">some other error occured.</doc>
      </member>
    </enumeration>
    <function-macro name="IS_ADAPTIVE_STREAM"
                    c:identifier="GTUBER_IS_ADAPTIVE_STREAM"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-adaptive-stream.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_ADAPTIVE_STREAM_CLASS"
                    c:identifier="GTUBER_IS_ADAPTIVE_STREAM_CLASS"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-adaptive-stream.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CLIENT"
                    c:identifier="GTUBER_IS_CLIENT"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-client.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CLIENT_CLASS"
                    c:identifier="GTUBER_IS_CLIENT_CLASS"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-client.h" line="35"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MANIFEST_GENERATOR"
                    c:identifier="GTUBER_IS_MANIFEST_GENERATOR"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-manifest-generator.h"
                       line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MANIFEST_GENERATOR_CLASS"
                    c:identifier="GTUBER_IS_MANIFEST_GENERATOR_CLASS"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-manifest-generator.h"
                       line="35"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MEDIA_INFO"
                    c:identifier="GTUBER_IS_MEDIA_INFO"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-media-info.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MEDIA_INFO_CLASS"
                    c:identifier="GTUBER_IS_MEDIA_INFO_CLASS"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-media-info.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM"
                    c:identifier="GTUBER_IS_STREAM"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-stream.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_CLASS"
                    c:identifier="GTUBER_IS_STREAM_CLASS"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-stream.h" line="35"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="MAJOR_VERSION" value="0" c:type="GTUBER_MAJOR_VERSION">
      <doc xml:space="preserve"
           filename="gtuber/gtuber-version.h"
           line="35">Gtuber major version component</doc>
      <source-position filename="gtuber/gtuber-version.h" line="40"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="MANIFEST_GENERATOR"
                    c:identifier="GTUBER_MANIFEST_GENERATOR"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-manifest-generator.h"
                       line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MANIFEST_GENERATOR_CLASS"
                    c:identifier="GTUBER_MANIFEST_GENERATOR_CLASS"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-manifest-generator.h"
                       line="38"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MANIFEST_GENERATOR_GET_CLASS"
                    c:identifier="GTUBER_MANIFEST_GENERATOR_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-manifest-generator.h"
                       line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MEDIA_INFO"
                    c:identifier="GTUBER_MEDIA_INFO"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-media-info.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MEDIA_INFO_CLASS"
                    c:identifier="GTUBER_MEDIA_INFO_CLASS"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-media-info.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MEDIA_INFO_GET_CLASS"
                    c:identifier="GTUBER_MEDIA_INFO_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-media-info.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="MICRO_VERSION" value="0" c:type="GTUBER_MICRO_VERSION">
      <doc xml:space="preserve"
           filename="gtuber/gtuber-version.h"
           line="49">Gtuber micro version component</doc>
      <source-position filename="gtuber/gtuber-version.h" line="54"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="4" c:type="GTUBER_MINOR_VERSION">
      <doc xml:space="preserve"
           filename="gtuber/gtuber-version.h"
           line="42">Gtuber minor version component</doc>
      <source-position filename="gtuber/gtuber-version.h" line="47"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="ManifestGenerator"
           c:symbol-prefix="manifest_generator"
           c:type="GtuberManifestGenerator"
           parent="GObject.Object"
           glib:type-name="GtuberManifestGenerator"
           glib:get-type="gtuber_manifest_generator_get_type"
           glib:type-struct="ManifestGeneratorClass">
      <doc xml:space="preserve"
           filename="gtuber/gtuber-manifest-generator.h"
           line="42">Gtuber manifest generator</doc>
      <source-position filename="gtuber/gtuber-manifest-generator.h"
                       line="48"/>
      <constructor name="new" c:identifier="gtuber_manifest_generator_new">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-manifest-generator.c"
             line="1042">Creates a new #GtuberManifestGenerator instance.</doc>
        <source-position filename="gtuber/gtuber-manifest-generator.h"
                         line="68"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-manifest-generator.c"
               line="1047">a new #GtuberManifestGenerator instance.</doc>
          <type name="ManifestGenerator" c:type="GtuberManifestGenerator*"/>
        </return-value>
      </constructor>
      <method name="get_indent"
              c:identifier="gtuber_manifest_generator_get_indent"
              glib:get-property="indent">
        <source-position filename="gtuber/gtuber-manifest-generator.h"
                         line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-manifest-generator.c"
               line="1088">amount of indent in spaces for prettifying.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="gen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-manifest-generator.c"
                 line="1086">a #GtuberManifestGenerator</doc>
            <type name="ManifestGenerator" c:type="GtuberManifestGenerator*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_manifest_type"
              c:identifier="gtuber_manifest_generator_get_manifest_type"
              glib:get-property="manifest-type">
        <source-position filename="gtuber/gtuber-manifest-generator.h"
                         line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-manifest-generator.c"
               line="1117">a #GtuberAdaptiveStreamManifest representing
  requested type of the manifest to generate.</doc>
          <type name="AdaptiveStreamManifest"
                c:type="GtuberAdaptiveStreamManifest"/>
        </return-value>
        <parameters>
          <instance-parameter name="gen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-manifest-generator.c"
                 line="1115">a #GtuberManifestGenerator</doc>
            <type name="ManifestGenerator" c:type="GtuberManifestGenerator*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pretty"
              c:identifier="gtuber_manifest_generator_get_pretty"
              glib:get-property="pretty">
        <source-position filename="gtuber/gtuber-manifest-generator.h"
                         line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-manifest-generator.c"
               line="1059">%TRUE if pretty printing is enabled, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="gen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-manifest-generator.c"
                 line="1057">a #GtuberManifestGenerator</doc>
            <type name="ManifestGenerator" c:type="GtuberManifestGenerator*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_filter_func"
              c:identifier="gtuber_manifest_generator_set_filter_func">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-manifest-generator.c"
             line="1173">Sets the #GtuberAdaptiveStream filtering function.

The filter function will be called for each #GtuberAdaptiveStream
that generator considers adding during manifest generation.</doc>
        <source-position filename="gtuber/gtuber-manifest-generator.h"
                         line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="gen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-manifest-generator.c"
                 line="1175">a #GtuberManifestGenerator</doc>
            <type name="ManifestGenerator" c:type="GtuberManifestGenerator*"/>
          </instance-parameter>
          <parameter name="filter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-manifest-generator.c"
                 line="1176">the filter function to use</doc>
            <type name="AdaptiveStreamFilter"
                  c:type="GtuberAdaptiveStreamFilter"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-manifest-generator.c"
                 line="1177">user data passed to the filter function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-manifest-generator.c"
                 line="1178">destroy notifier for @user_data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_indent"
              c:identifier="gtuber_manifest_generator_set_indent"
              glib:set-property="indent">
        <source-position filename="gtuber/gtuber-manifest-generator.h"
                         line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="gen" transfer-ownership="none">
            <type name="ManifestGenerator" c:type="GtuberManifestGenerator*"/>
          </instance-parameter>
          <parameter name="indent" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_manifest_type"
              c:identifier="gtuber_manifest_generator_set_manifest_type"
              glib:set-property="manifest-type">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-manifest-generator.c"
             line="1129">Sets the adaptive stream manifest type to use for generation.

Generator will only try to generate data of the requested type.
Adaptive streams array must include streams supporting this
type for generation to be successful.

Setting this option to %GTUBER_ADAPTIVE_STREAM_MANIFEST_UNKNOWN,
results in auto behavior (i.e. any possible manifest type will be generated).
Do that if your app does not distinguish (supports all) types.</doc>
        <source-position filename="gtuber/gtuber-manifest-generator.h"
                         line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="gen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-manifest-generator.c"
                 line="1131">a #GtuberManifestGenerator</doc>
            <type name="ManifestGenerator" c:type="GtuberManifestGenerator*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-manifest-generator.c"
                 line="1132">a #GtuberAdaptiveStreamManifest</doc>
            <type name="AdaptiveStreamManifest"
                  c:type="GtuberAdaptiveStreamManifest"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_media_info"
              c:identifier="gtuber_manifest_generator_set_media_info">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-manifest-generator.c"
             line="1153">Set media info used to generate the manifest data.
Generator will take a reference on the passed media info object.</doc>
        <source-position filename="gtuber/gtuber-manifest-generator.h"
                         line="82"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="gen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-manifest-generator.c"
                 line="1155">a #GtuberManifestGenerator</doc>
            <type name="ManifestGenerator" c:type="GtuberManifestGenerator*"/>
          </instance-parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-manifest-generator.c"
                 line="1156">a #GtuberMediaInfo</doc>
            <type name="MediaInfo" c:type="GtuberMediaInfo*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pretty"
              c:identifier="gtuber_manifest_generator_set_pretty"
              glib:set-property="pretty">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-manifest-generator.c"
             line="1069">Sets the pretty printing mode.</doc>
        <source-position filename="gtuber/gtuber-manifest-generator.h"
                         line="72"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="gen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-manifest-generator.c"
                 line="1071">a #GtuberManifestGenerator</doc>
            <type name="ManifestGenerator" c:type="GtuberManifestGenerator*"/>
          </instance-parameter>
          <parameter name="pretty" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-manifest-generator.c"
                 line="1072">%TRUE to enable pretty printing, %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_data" c:identifier="gtuber_manifest_generator_to_data">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-manifest-generator.c"
             line="1200">Generates manifest data from #GtuberMediaInfo currently set
in #GtuberManifestGenerator and returns it as a buffer.</doc>
        <source-position filename="gtuber/gtuber-manifest-generator.h"
                         line="86"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-manifest-generator.c"
               line="1207">a newly allocated string holding manifest data.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="gen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-manifest-generator.c"
                 line="1202">a #GtuberManifestGenerator</doc>
            <type name="ManifestGenerator" c:type="GtuberManifestGenerator*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="to_file"
              c:identifier="gtuber_manifest_generator_to_file"
              throws="1">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-manifest-generator.c"
             line="1215">Generates manifest data from #GtuberMediaInfo currently set
in #GtuberManifestGenerator and puts it inside `filename`,
overwriting the file's current contents.

This operation is atomic, in the sense that the data is written to
a temporary file which is then renamed to the given `filename`.</doc>
        <source-position filename="gtuber/gtuber-manifest-generator.h"
                         line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-manifest-generator.c"
               line="1228">%TRUE if saving was successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="gen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-manifest-generator.c"
                 line="1217">a #GtuberManifestGenerator</doc>
            <type name="ManifestGenerator" c:type="GtuberManifestGenerator*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-manifest-generator.c"
                 line="1218">the path to the target file</doc>
            <type name="filename" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="indent"
                writable="1"
                transfer-ownership="none"
                setter="set_indent"
                getter="get_indent"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="manifest-type"
                writable="1"
                transfer-ownership="none"
                setter="set_manifest_type"
                getter="get_manifest_type"
                default-value="GTUBER_ADAPTIVE_STREAM_MANIFEST_UNKNOWN">
        <type name="AdaptiveStreamManifest"/>
      </property>
      <property name="pretty"
                writable="1"
                transfer-ownership="none"
                setter="set_pretty"
                getter="get_pretty"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
    </class>
    <record name="ManifestGeneratorClass"
            c:type="GtuberManifestGeneratorClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="ManifestGenerator">
      <source-position filename="gtuber/gtuber-manifest-generator.h"
                       line="48"/>
    </record>
    <enumeration name="ManifestGeneratorError"
                 glib:type-name="GtuberManifestGeneratorError"
                 glib:get-type="gtuber_manifest_generator_error_get_type"
                 c:type="GtuberManifestGeneratorError"
                 glib:error-domain="gtubermanifestgenerator-error-quark">
      <member name="data"
              value="0"
              c:identifier="GTUBER_MANIFEST_GENERATOR_ERROR_NO_DATA"
              glib:nick="data"
              glib:name="GTUBER_MANIFEST_GENERATOR_ERROR_NO_DATA">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="102">no data was generated.</doc>
      </member>
      <function name="quark"
                c:identifier="gtuber_manifest_generator_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <class name="MediaInfo"
           c:symbol-prefix="media_info"
           c:type="GtuberMediaInfo"
           parent="GObject.Object"
           glib:type-name="GtuberMediaInfo"
           glib:get-type="gtuber_media_info_get_type"
           glib:type-struct="MediaInfoClass">
      <doc xml:space="preserve"
           filename="gtuber/gtuber-media-info.h"
           line="38">Contains result with parsed media info.</doc>
      <source-position filename="gtuber/gtuber-media-info.h" line="44"/>
      <method name="get_adaptive_streams"
              c:identifier="gtuber_media_info_get_adaptive_streams">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-media-info.c"
             line="433">Get a #GPtrArray of #GtuberAdaptiveStream instances. When no adaptive streams are
  available, an empty array is returned. Use gtuber_media_info_get_has_adaptive_streams()
  to check if array will be empty.</doc>
        <source-position filename="gtuber/gtuber-media-info.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-media-info.c"
               line="441">a #GPtrArray of
  available #GtuberAdaptiveStream instances.</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="AdaptiveStream"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-media-info.c"
                 line="435">a #GtuberMediaInfo</doc>
            <type name="MediaInfo" c:type="GtuberMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_chapters"
              c:identifier="gtuber_media_info_get_chapters">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-media-info.c"
             line="351">Get a #GHashTable with chapter start time and name pairs.</doc>
        <source-position filename="gtuber/gtuber-media-info.h" line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-media-info.c"
               line="357">a #GHashTable with chapters, or %NULL when none.</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-media-info.c"
                 line="353">a #GtuberMediaInfo</doc>
            <type name="MediaInfo" c:type="GtuberMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="gtuber_media_info_get_description"
              glib:get-property="description">
        <source-position filename="gtuber/gtuber-media-info.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-media-info.c"
               line="272">media description or %NULL when undetermined.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-media-info.c"
                 line="270">a #GtuberMediaInfo</doc>
            <type name="MediaInfo" c:type="GtuberMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_duration"
              c:identifier="gtuber_media_info_get_duration"
              glib:get-property="duration">
        <source-position filename="gtuber/gtuber-media-info.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-media-info.c"
               line="304">media duration in seconds or 0 when undetermined.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-media-info.c"
                 line="302">a #GtuberMediaInfo</doc>
            <type name="MediaInfo" c:type="GtuberMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_has_adaptive_streams"
              c:identifier="gtuber_media_info_get_has_adaptive_streams"
              glib:get-property="has-adaptive-streams">
        <source-position filename="gtuber/gtuber-media-info.h" line="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-media-info.c"
               line="423">%TRUE if info has adaptive streams, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-media-info.c"
                 line="421">a #GtuberMediaInfo</doc>
            <type name="MediaInfo" c:type="GtuberMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_has_streams"
              c:identifier="gtuber_media_info_get_has_streams"
              glib:get-property="has-streams">
        <source-position filename="gtuber/gtuber-media-info.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-media-info.c"
               line="371">%TRUE if info has streams, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-media-info.c"
                 line="369">a #GtuberMediaInfo</doc>
            <type name="MediaInfo" c:type="GtuberMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id"
              c:identifier="gtuber_media_info_get_id"
              glib:get-property="id">
        <source-position filename="gtuber/gtuber-media-info.h" line="52"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-media-info.c"
               line="208">media ID or %NULL when undetermined.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-media-info.c"
                 line="206">a #GtuberMediaInfo</doc>
            <type name="MediaInfo" c:type="GtuberMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_request_headers"
              c:identifier="gtuber_media_info_get_request_headers">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-media-info.c"
             line="471">Get a #GHashTable with request headers name and key pairs.

Users should use those headers for any future HTTP requests
to URIs within specific #GtuberMediaInfo object.</doc>
        <source-position filename="gtuber/gtuber-media-info.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-media-info.c"
               line="480">a #GHashTable with recommended request headers.</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-media-info.c"
                 line="473">a #GtuberMediaInfo</doc>
            <type name="MediaInfo" c:type="GtuberMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_streams" c:identifier="gtuber_media_info_get_streams">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-media-info.c"
             line="381">Get a #GPtrArray of #GtuberStream instances. When no streams are available,
  an empty array is returned. Use gtuber_media_info_get_has_streams()
  to check if array will be empty.</doc>
        <source-position filename="gtuber/gtuber-media-info.h" line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-media-info.c"
               line="389">a #GPtrArray of
  available #GtuberStream instances.</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Stream"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-media-info.c"
                 line="383">a #GtuberMediaInfo</doc>
            <type name="MediaInfo" c:type="GtuberMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title"
              c:identifier="gtuber_media_info_get_title"
              glib:get-property="title">
        <source-position filename="gtuber/gtuber-media-info.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-media-info.c"
               line="240">media title or %NULL when undetermined.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-media-info.c"
                 line="238">a #GtuberMediaInfo</doc>
            <type name="MediaInfo" c:type="GtuberMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="description"
                transfer-ownership="none"
                getter="get_description"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="duration"
                transfer-ownership="none"
                getter="get_duration"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="has-adaptive-streams"
                transfer-ownership="none"
                getter="get_has_adaptive_streams"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="has-streams"
                transfer-ownership="none"
                getter="get_has_streams"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="id"
                transfer-ownership="none"
                getter="get_id"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title"
                transfer-ownership="none"
                getter="get_title"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="MediaInfoClass"
            c:type="GtuberMediaInfoClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="MediaInfo">
      <source-position filename="gtuber/gtuber-media-info.h" line="44"/>
    </record>
    <function-macro name="STREAM"
                    c:identifier="GTUBER_STREAM"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-stream.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_CLASS"
                    c:identifier="GTUBER_STREAM_CLASS"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-stream.h" line="38"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_GET_CLASS"
                    c:identifier="GTUBER_STREAM_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtuber/gtuber-stream.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Stream"
           c:symbol-prefix="stream"
           c:type="GtuberStream"
           parent="GObject.Object"
           glib:type-name="GtuberStream"
           glib:get-type="gtuber_stream_get_type"
           glib:type-struct="StreamClass">
      <doc xml:space="preserve"
           filename="gtuber/gtuber-stream.h"
           line="40">Contains values of peculiar media stream.</doc>
      <source-position filename="gtuber/gtuber-stream.h" line="46"/>
      <method name="get_audio_codec"
              c:identifier="gtuber_stream_get_audio_codec"
              glib:get-property="audio-codec">
        <source-position filename="gtuber/gtuber-stream.h" line="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-stream.c"
               line="425">the stream audio codec.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-stream.c"
                 line="423">a #GtuberStream</doc>
            <type name="Stream" c:type="GtuberStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bitrate"
              c:identifier="gtuber_stream_get_bitrate"
              glib:get-property="bitrate">
        <source-position filename="gtuber/gtuber-stream.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-stream.c"
               line="550">bitrate of stream or 0 when undetermined.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-stream.c"
                 line="548">a #GtuberStream</doc>
            <type name="Stream" c:type="GtuberStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_codec_flags"
              c:identifier="gtuber_stream_get_codec_flags"
              glib:get-property="codec-flags">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-stream.c"
             line="296">Get flags indicating which codecs were detected in stream.</doc>
        <source-position filename="gtuber/gtuber-stream.h" line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-stream.c"
               line="302">#GtuberCodecFlags flags</doc>
          <type name="CodecFlags" c:type="GtuberCodecFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-stream.c"
                 line="298">a #GtuberStream</doc>
            <type name="Stream" c:type="GtuberStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fps"
              c:identifier="gtuber_stream_get_fps"
              glib:get-property="fps">
        <source-position filename="gtuber/gtuber-stream.h" line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-stream.c"
               line="519">framerate of video or 0 when undetermined.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-stream.c"
                 line="517">a #GtuberStream</doc>
            <type name="Stream" c:type="GtuberStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_height"
              c:identifier="gtuber_stream_get_height"
              glib:get-property="height">
        <source-position filename="gtuber/gtuber-stream.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-stream.c"
               line="488">height of video or 0 when undetermined.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-stream.c"
                 line="486">a #GtuberStream</doc>
            <type name="Stream" c:type="GtuberStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_itag"
              c:identifier="gtuber_stream_get_itag"
              glib:get-property="itag">
        <source-position filename="gtuber/gtuber-stream.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-stream.c"
               line="237">itag of the stream or 0 when undetermined.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-stream.c"
                 line="235">a #GtuberStream</doc>
            <type name="Stream" c:type="GtuberStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mime_type"
              c:identifier="gtuber_stream_get_mime_type"
              glib:get-property="mime-type">
        <source-position filename="gtuber/gtuber-stream.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-stream.c"
               line="268">a #GtuberStreamMimeType representing
  MIME type of the stream.</doc>
          <type name="StreamMimeType" c:type="GtuberStreamMimeType"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-stream.c"
                 line="266">a #GtuberStream</doc>
            <type name="Stream" c:type="GtuberStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri"
              c:identifier="gtuber_stream_get_uri"
              glib:get-property="uri">
        <source-position filename="gtuber/gtuber-stream.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-stream.c"
               line="205">URI of the stream.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-stream.c"
                 line="203">a #GtuberStream</doc>
            <type name="Stream" c:type="GtuberStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_video_codec"
              c:identifier="gtuber_stream_get_video_codec"
              glib:get-property="video-codec">
        <source-position filename="gtuber/gtuber-stream.h" line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-stream.c"
               line="393">the stream video codec.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-stream.c"
                 line="391">a #GtuberStream</doc>
            <type name="Stream" c:type="GtuberStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width"
              c:identifier="gtuber_stream_get_width"
              glib:get-property="width">
        <source-position filename="gtuber/gtuber-stream.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-stream.c"
               line="457">width of video or 0 when undetermined.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-stream.c"
                 line="455">a #GtuberStream</doc>
            <type name="Stream" c:type="GtuberStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="obtain_codecs_string"
              c:identifier="gtuber_stream_obtain_codecs_string">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-stream.c"
             line="339">Obtains a single string with all codecs used to encode the stream.
Multiple codecs will be separated by commas.</doc>
        <source-position filename="gtuber/gtuber-stream.h" line="62"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-stream.c"
               line="346">codecs string or %NULL when none.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtuber/gtuber-stream.c"
                 line="341">a #GtuberStream</doc>
            <type name="Stream" c:type="GtuberStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="audio-codec"
                transfer-ownership="none"
                getter="get_audio_codec"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="bitrate"
                transfer-ownership="none"
                getter="get_bitrate"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="codec-flags"
                transfer-ownership="none"
                getter="get_codec_flags"
                default-value="0">
        <type name="CodecFlags"/>
      </property>
      <property name="fps"
                transfer-ownership="none"
                getter="get_fps"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="height"
                transfer-ownership="none"
                getter="get_height"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="itag"
                transfer-ownership="none"
                getter="get_itag"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="mime-type"
                transfer-ownership="none"
                getter="get_mime_type"
                default-value="GTUBER_STREAM_MIME_TYPE_UNKNOWN">
        <type name="StreamMimeType"/>
      </property>
      <property name="uri"
                transfer-ownership="none"
                getter="get_uri"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="video-codec"
                transfer-ownership="none"
                getter="get_video_codec"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="width"
                transfer-ownership="none"
                getter="get_width"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
    </class>
    <record name="StreamClass"
            c:type="GtuberStreamClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="Stream">
      <source-position filename="gtuber/gtuber-stream.h" line="46"/>
    </record>
    <enumeration name="StreamMimeType"
                 glib:type-name="GtuberStreamMimeType"
                 glib:get-type="gtuber_stream_mime_type_get_type"
                 c:type="GtuberStreamMimeType">
      <member name="unknown"
              value="0"
              c:identifier="GTUBER_STREAM_MIME_TYPE_UNKNOWN"
              glib:nick="unknown"
              glib:name="GTUBER_STREAM_MIME_TYPE_UNKNOWN">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="37">MIME type is not specified.</doc>
      </member>
      <member name="video_mp4"
              value="1"
              c:identifier="GTUBER_STREAM_MIME_TYPE_VIDEO_MP4"
              glib:nick="video-mp4"
              glib:name="GTUBER_STREAM_MIME_TYPE_VIDEO_MP4">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="38">video/mp4.</doc>
      </member>
      <member name="audio_mp4"
              value="2"
              c:identifier="GTUBER_STREAM_MIME_TYPE_AUDIO_MP4"
              glib:nick="audio-mp4"
              glib:name="GTUBER_STREAM_MIME_TYPE_AUDIO_MP4">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="40">audio/mp4.</doc>
      </member>
      <member name="video_webm"
              value="3"
              c:identifier="GTUBER_STREAM_MIME_TYPE_VIDEO_WEBM"
              glib:nick="video-webm"
              glib:name="GTUBER_STREAM_MIME_TYPE_VIDEO_WEBM">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="39">video/webm.</doc>
      </member>
      <member name="audio_webm"
              value="4"
              c:identifier="GTUBER_STREAM_MIME_TYPE_AUDIO_WEBM"
              glib:nick="audio-webm"
              glib:name="GTUBER_STREAM_MIME_TYPE_AUDIO_WEBM">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="41">audio/webm.</doc>
      </member>
    </enumeration>
    <constant name="VERSION_S" value="0.4.0" c:type="GTUBER_VERSION_S">
      <doc xml:space="preserve"
           filename="gtuber/gtuber-version.h"
           line="63">Gtuber version, encoded as a string</doc>
      <source-position filename="gtuber/gtuber-version.h" line="68"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <enumeration name="WebsiteError"
                 glib:type-name="GtuberWebsiteError"
                 glib:get-type="gtuber_website_error_get_type"
                 c:type="GtuberWebsiteError">
      <member name="request_create_failed"
              value="0"
              c:identifier="GTUBER_WEBSITE_ERROR_REQUEST_CREATE_FAILED"
              glib:nick="request-create-failed"
              glib:name="GTUBER_WEBSITE_ERROR_REQUEST_CREATE_FAILED">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="111">could not create soup message.</doc>
      </member>
      <member name="parse_failed"
              value="1"
              c:identifier="GTUBER_WEBSITE_ERROR_PARSE_FAILED"
              glib:nick="parse-failed"
              glib:name="GTUBER_WEBSITE_ERROR_PARSE_FAILED">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="112">parsing of website response failed.</doc>
      </member>
      <member name="other"
              value="2"
              c:identifier="GTUBER_WEBSITE_ERROR_OTHER"
              glib:nick="other"
              glib:name="GTUBER_WEBSITE_ERROR_OTHER">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-enums.h"
             line="113">some other error occured.</doc>
      </member>
    </enumeration>
    <function name="client_error_quark"
              c:identifier="gtuber_client_error_quark"
              moved-to="ClientError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="get_supported_schemes"
              c:identifier="gtuber_get_supported_schemes">
      <doc xml:space="preserve"
           filename="gtuber/gtuber-misc-functions.c"
           line="79">Get the list of all supported URI schemes by currently available plugins.</doc>
      <source-position filename="gtuber/gtuber-misc-functions.h" line="31"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-misc-functions.c"
             line="84">Supported URI schemes.</doc>
        <array c:type="const gchar* const*">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <docsection name="gtuber-version">
      <doc xml:space="preserve"
           filename="gtuber/gtuber-version.h"
           line="26">Gtuber provides macros to check the version of the library at
compile-time</doc>
    </docsection>
    <function name="has_plugin_for_uri"
              c:identifier="gtuber_has_plugin_for_uri">
      <doc xml:space="preserve"
           filename="gtuber/gtuber-misc-functions.c"
           line="33">Checks if any among installed plugins advertises support for given URI.

You can use this to check plugin support without actually trying to download
any data, otherwise just use %GtuberClient to fetch media info directly.</doc>
      <source-position filename="gtuber/gtuber-misc-functions.h" line="30"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtuber/gtuber-misc-functions.c"
             line="44">%TRUE when URI is supported with out parameters set, %FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-misc-functions.c"
               line="35">a media source URI</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="filename"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtuber/gtuber-misc-functions.c"
               line="36">return location
  for plugin filename that handles given URI, or %NULL</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="manifest_generator_error_quark"
              c:identifier="gtuber_manifest_generator_error_quark"
              moved-to="ManifestGeneratorError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
