<?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 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" version="1.2">
  <include name="Gst" version="1.0"/>
  <include name="GstNet" version="1.0"/>
  <include name="GstRtsp" version="1.0"/>
  <package name="gstreamer-rtsp-server-1.0"/>
  <c:include name="gst/rtsp-server/rtsp-server.h"/>
  <namespace name="GstRtspServer" version="1.0" shared-library="libgstrtspserver-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst">
    <function-macro name="IS_RTSP_ADDRESS_POOL" c:identifier="GST_IS_RTSP_ADDRESS_POOL" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_ADDRESS_POOL_CLASS" c:identifier="GST_IS_RTSP_ADDRESS_POOL_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_AUTH" c:identifier="GST_IS_RTSP_AUTH" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_AUTH_CLASS" c:identifier="GST_IS_RTSP_AUTH_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_CLIENT" c:identifier="GST_IS_RTSP_CLIENT" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_CLIENT_CLASS" c:identifier="GST_IS_RTSP_CLIENT_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_MEDIA" c:identifier="GST_IS_RTSP_MEDIA" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_MEDIA_CLASS" c:identifier="GST_IS_RTSP_MEDIA_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_MEDIA_FACTORY" c:identifier="GST_IS_RTSP_MEDIA_FACTORY" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_MEDIA_FACTORY_CLASS" c:identifier="GST_IS_RTSP_MEDIA_FACTORY_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_MEDIA_FACTORY_URI" c:identifier="GST_IS_RTSP_MEDIA_FACTORY_URI" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_MEDIA_FACTORY_URI_CLASS" c:identifier="GST_IS_RTSP_MEDIA_FACTORY_URI_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_MOUNT_POINTS" c:identifier="GST_IS_RTSP_MOUNT_POINTS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_MOUNT_POINTS_CLASS" c:identifier="GST_IS_RTSP_MOUNT_POINTS_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_ONVIF_CLIENT" c:identifier="GST_IS_RTSP_ONVIF_CLIENT" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_ONVIF_CLIENT_CLASS" c:identifier="GST_IS_RTSP_ONVIF_CLIENT_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_ONVIF_MEDIA" c:identifier="GST_IS_RTSP_ONVIF_MEDIA" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_ONVIF_MEDIA_CLASS" c:identifier="GST_IS_RTSP_ONVIF_MEDIA_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_ONVIF_MEDIA_FACTORY" c:identifier="GST_IS_RTSP_ONVIF_MEDIA_FACTORY" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_ONVIF_MEDIA_FACTORY_CLASS" c:identifier="GST_IS_RTSP_ONVIF_MEDIA_FACTORY_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_ONVIF_SERVER" c:identifier="GST_IS_RTSP_ONVIF_SERVER" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_ONVIF_SERVER_CLASS" c:identifier="GST_IS_RTSP_ONVIF_SERVER_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_PERMISSIONS" c:identifier="GST_IS_RTSP_PERMISSIONS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_SERVER" c:identifier="GST_IS_RTSP_SERVER" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_SERVER_CLASS" c:identifier="GST_IS_RTSP_SERVER_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_SESSION" c:identifier="GST_IS_RTSP_SESSION" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_SESSION_CLASS" c:identifier="GST_IS_RTSP_SESSION_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_SESSION_MEDIA" c:identifier="GST_IS_RTSP_SESSION_MEDIA" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_SESSION_MEDIA_CLASS" c:identifier="GST_IS_RTSP_SESSION_MEDIA_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_SESSION_POOL" c:identifier="GST_IS_RTSP_SESSION_POOL" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_SESSION_POOL_CLASS" c:identifier="GST_IS_RTSP_SESSION_POOL_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_STREAM" c:identifier="GST_IS_RTSP_STREAM" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_STREAM_CLASS" c:identifier="GST_IS_RTSP_STREAM_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_STREAM_TRANSPORT" c:identifier="GST_IS_RTSP_STREAM_TRANSPORT" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_STREAM_TRANSPORT_CLASS" c:identifier="GST_IS_RTSP_STREAM_TRANSPORT_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_THREAD" c:identifier="GST_IS_RTSP_THREAD" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_THREAD_POOL" c:identifier="GST_IS_RTSP_THREAD_POOL" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_THREAD_POOL_CLASS" c:identifier="GST_IS_RTSP_THREAD_POOL_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RTSP_TOKEN" c:identifier="GST_IS_RTSP_TOKEN" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <record name="RTSPAddress" c:type="GstRTSPAddress" glib:type-name="GstRTSPAddress" glib:get-type="gst_rtsp_address_get_type" c:symbol-prefix="rtsp_address">
      <doc xml:space="preserve">An address</doc>
      
      <field name="pool" writable="1">
        <doc xml:space="preserve">the #GstRTSPAddressPool owner of this address</doc>
        <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/>
      </field>
      <field name="address" writable="1">
        <doc xml:space="preserve">the address</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="port" writable="1">
        <doc xml:space="preserve">the port number</doc>
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="n_ports" writable="1">
        <doc xml:space="preserve">number of ports</doc>
        <type name="gint" c:type="gint"/>
      </field>
      <field name="ttl" writable="1">
        <doc xml:space="preserve">TTL or 0 for unicast addresses</doc>
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <method name="copy" c:identifier="gst_rtsp_address_copy">
        <doc xml:space="preserve">Make a copy of @addr.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of @addr.</doc>
          <type name="RTSPAddress" c:type="GstRTSPAddress*"/>
        </return-value>
        <parameters>
          <instance-parameter name="addr" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAddress</doc>
            <type name="RTSPAddress" c:type="GstRTSPAddress*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gst_rtsp_address_free">
        <doc xml:space="preserve">Free @addr and releasing it back into the pool when owned by a
pool.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="addr" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAddress</doc>
            <type name="RTSPAddress" c:type="GstRTSPAddress*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <bitfield name="RTSPAddressFlags" c:type="GstRTSPAddressFlags">
      <doc xml:space="preserve">Flags used to control allocation of addresses</doc>
      
      <member name="none" value="0" c:identifier="GST_RTSP_ADDRESS_FLAG_NONE">
        <doc xml:space="preserve">no flags</doc>
      </member>
      <member name="ipv4" value="1" c:identifier="GST_RTSP_ADDRESS_FLAG_IPV4">
        <doc xml:space="preserve">an IPv4 address</doc>
      </member>
      <member name="ipv6" value="2" c:identifier="GST_RTSP_ADDRESS_FLAG_IPV6">
        <doc xml:space="preserve">and IPv6 address</doc>
      </member>
      <member name="even_port" value="4" c:identifier="GST_RTSP_ADDRESS_FLAG_EVEN_PORT">
        <doc xml:space="preserve">address with an even port</doc>
      </member>
      <member name="multicast" value="8" c:identifier="GST_RTSP_ADDRESS_FLAG_MULTICAST">
        <doc xml:space="preserve">a multicast address</doc>
      </member>
      <member name="unicast" value="16" c:identifier="GST_RTSP_ADDRESS_FLAG_UNICAST">
        <doc xml:space="preserve">a unicast address</doc>
      </member>
    </bitfield>
    <class name="RTSPAddressPool" c:symbol-prefix="rtsp_address_pool" c:type="GstRTSPAddressPool" parent="GObject.Object" glib:type-name="GstRTSPAddressPool" glib:get-type="gst_rtsp_address_pool_get_type" glib:type-struct="RTSPAddressPoolClass">
      <doc xml:space="preserve">An address pool, all member are private</doc>
      
      <constructor name="new" c:identifier="gst_rtsp_address_pool_new">
        <doc xml:space="preserve">Make a new #GstRTSPAddressPool.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPAddressPool</doc>
          <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/>
        </return-value>
      </constructor>
      <method name="acquire_address" c:identifier="gst_rtsp_address_pool_acquire_address">
        <doc xml:space="preserve">Take an address and ports from @pool. @flags can be used to control the
allocation. @n_ports consecutive ports will be allocated of which the first
one can be found in @port.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #GstRTSPAddress that should be freed with
gst_rtsp_address_free after use or %NULL when no address could be
acquired.</doc>
          <type name="RTSPAddress" c:type="GstRTSPAddress*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAddressPool</doc>
            <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags</doc>
            <type name="RTSPAddressFlags" c:type="GstRTSPAddressFlags"/>
          </parameter>
          <parameter name="n_ports" transfer-ownership="none">
            <doc xml:space="preserve">the amount of ports</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_range" c:identifier="gst_rtsp_address_pool_add_range">
        <doc xml:space="preserve">Adds the addresses from @min_addess to @max_address (inclusive)
to @pool. The valid port range for the addresses will be from @min_port to
@max_port inclusive.

When @ttl is 0, @min_address and @max_address should be unicast addresses.
@min_address and @max_address can be set to
#GST_RTSP_ADDRESS_POOL_ANY_IPV4 or #GST_RTSP_ADDRESS_POOL_ANY_IPV6 to bind
to all available IPv4 or IPv6 addresses.

When @ttl &gt; 0, @min_address and @max_address should be multicast addresses.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the addresses could be added.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAddressPool</doc>
            <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/>
          </instance-parameter>
          <parameter name="min_address" transfer-ownership="none">
            <doc xml:space="preserve">a minimum address to add</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="max_address" transfer-ownership="none">
            <doc xml:space="preserve">a maximum address to add</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="min_port" transfer-ownership="none">
            <doc xml:space="preserve">the minimum port</doc>
            <type name="guint16" c:type="guint16"/>
          </parameter>
          <parameter name="max_port" transfer-ownership="none">
            <doc xml:space="preserve">the maximum port</doc>
            <type name="guint16" c:type="guint16"/>
          </parameter>
          <parameter name="ttl" transfer-ownership="none">
            <doc xml:space="preserve">a TTL or 0 for unicast addresses</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear" c:identifier="gst_rtsp_address_pool_clear">
        <doc xml:space="preserve">Clear all addresses in @pool. There should be no outstanding
allocations.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAddressPool</doc>
            <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="dump" c:identifier="gst_rtsp_address_pool_dump">
        <doc xml:space="preserve">Dump the free and allocated addresses to stdout.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAddressPool</doc>
            <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_unicast_addresses" c:identifier="gst_rtsp_address_pool_has_unicast_addresses">
        <doc xml:space="preserve">Used to know if the pool includes any unicast addresses.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the pool includes any unicast addresses, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAddressPool</doc>
            <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="reserve_address" c:identifier="gst_rtsp_address_pool_reserve_address">
        <doc xml:space="preserve">Take a specific address and ports from @pool. @n_ports consecutive
ports will be allocated of which the first one can be found in
@port.

If @ttl is 0, @address should be a unicast address. If @ttl &gt; 0, @address
should be a valid multicast address.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_ADDRESS_POOL_OK if an address was reserved. The address
is returned in @address and should be freed with gst_rtsp_address_free
after use.</doc>
          <type name="RTSPAddressPoolResult" c:type="GstRTSPAddressPoolResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAddressPool</doc>
            <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/>
          </instance-parameter>
          <parameter name="ip_address" transfer-ownership="none">
            <doc xml:space="preserve">The IP address to reserve</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="port" transfer-ownership="none">
            <doc xml:space="preserve">The first port to reserve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="n_ports" transfer-ownership="none">
            <doc xml:space="preserve">The number of ports</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="ttl" transfer-ownership="none">
            <doc xml:space="preserve">The requested ttl</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="address" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">storage for a #GstRTSPAddress</doc>
            <type name="RTSPAddress" c:type="GstRTSPAddress**"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <doc xml:space="preserve">the parent GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RTSPAddressPoolPrivate" c:type="GstRTSPAddressPoolPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="RTSPAddressPoolClass" c:type="GstRTSPAddressPoolClass" glib:is-gtype-struct-for="RTSPAddressPool">
      <doc xml:space="preserve">Opaque Address pool class.</doc>
      
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="RTSPAddressPoolPrivate" c:type="GstRTSPAddressPoolPrivate" disguised="1">
      
    </record>
    <enumeration name="RTSPAddressPoolResult" c:type="GstRTSPAddressPoolResult">
      <doc xml:space="preserve">Result codes from RTSP address pool functions.</doc>
      
      <member name="ok" value="0" c:identifier="GST_RTSP_ADDRESS_POOL_OK">
        <doc xml:space="preserve">no error</doc>
      </member>
      <member name="einval" value="-1" c:identifier="GST_RTSP_ADDRESS_POOL_EINVAL">
        <doc xml:space="preserve">invalid arguments were provided to a function</doc>
      </member>
      <member name="ereserved" value="-2" c:identifier="GST_RTSP_ADDRESS_POOL_ERESERVED">
        <doc xml:space="preserve">the addres has already been reserved</doc>
      </member>
      <member name="erange" value="-3" c:identifier="GST_RTSP_ADDRESS_POOL_ERANGE">
        <doc xml:space="preserve">the address is not in the pool</doc>
      </member>
      <member name="elast" value="-4" c:identifier="GST_RTSP_ADDRESS_POOL_ELAST">
        <doc xml:space="preserve">last error</doc>
      </member>
    </enumeration>
    <class name="RTSPAuth" c:symbol-prefix="rtsp_auth" c:type="GstRTSPAuth" parent="GObject.Object" glib:type-name="GstRTSPAuth" glib:get-type="gst_rtsp_auth_get_type" glib:type-struct="RTSPAuthClass">
      <doc xml:space="preserve">The authentication structure.</doc>
      
      <constructor name="new" c:identifier="gst_rtsp_auth_new">
        <doc xml:space="preserve">Create a new #GstRTSPAuth instance.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPAuth</doc>
          <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
        </return-value>
      </constructor>
      <function name="check" c:identifier="gst_rtsp_auth_check">
        <doc xml:space="preserve">Check if @check is allowed in the current context.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">FALSE if check failed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="check" transfer-ownership="none">
            <doc xml:space="preserve">the item to check</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="make_basic" c:identifier="gst_rtsp_auth_make_basic">
        <doc xml:space="preserve">Construct a Basic authorisation token from @user and @pass.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the base64 encoding of the string @user:@pass.
g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a userid</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="pass" transfer-ownership="none">
            <doc xml:space="preserve">a password</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="accept_certificate">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
          <parameter name="connection" transfer-ownership="none">
            <type name="Gio.TlsConnection" c:type="GTlsConnection*"/>
          </parameter>
          <parameter name="peer_cert" transfer-ownership="none">
            <type name="Gio.TlsCertificate" c:type="GTlsCertificate*"/>
          </parameter>
          <parameter name="errors" transfer-ownership="none">
            <type name="Gio.TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="authenticate">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="check">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
          <parameter name="check" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="generate_authenticate_header">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_basic" c:identifier="gst_rtsp_auth_add_basic">
        <doc xml:space="preserve">Add a basic token for the default authentication algorithm that
enables the client with privileges listed in @token.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAuth</doc>
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
          <parameter name="basic" transfer-ownership="none">
            <doc xml:space="preserve">the basic token</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="token" transfer-ownership="none">
            <doc xml:space="preserve">authorisation token</doc>
            <type name="RTSPToken" c:type="GstRTSPToken*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_digest" c:identifier="gst_rtsp_auth_add_digest" version="1.12">
        <doc xml:space="preserve">Add a digest @user and @pass for the default authentication algorithm that
enables the client with privileges listed in @token.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAuth</doc>
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
          <parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the digest user name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="pass" transfer-ownership="none">
            <doc xml:space="preserve">the digest password</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="token" transfer-ownership="none">
            <doc xml:space="preserve">authorisation token</doc>
            <type name="RTSPToken" c:type="GstRTSPToken*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_token" c:identifier="gst_rtsp_auth_get_default_token">
        <doc xml:space="preserve">Get the default token for @auth. This token will be used for unauthenticated
users.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GstRTSPToken of @auth. gst_rtsp_token_unref() after
usage.</doc>
          <type name="RTSPToken" c:type="GstRTSPToken*"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAuth</doc>
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_realm" c:identifier="gst_rtsp_auth_get_realm" version="1.16">
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the @realm of @auth</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_supported_methods" c:identifier="gst_rtsp_auth_get_supported_methods" version="1.12">
        <doc xml:space="preserve">Gets the supported authentication methods of @auth.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The supported authentication methods</doc>
          <type name="GstRtsp.RTSPAuthMethod" c:type="GstRTSPAuthMethod"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAuth</doc>
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tls_authentication_mode" c:identifier="gst_rtsp_auth_get_tls_authentication_mode">
        <doc xml:space="preserve">Get the #GTlsAuthenticationMode.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the #GTlsAuthenticationMode.</doc>
          <type name="Gio.TlsAuthenticationMode" c:type="GTlsAuthenticationMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAuth</doc>
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tls_certificate" c:identifier="gst_rtsp_auth_get_tls_certificate">
        <doc xml:space="preserve">Get the #GTlsCertificate used for negotiating TLS @auth.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GTlsCertificate of @auth. g_object_unref() after
usage.</doc>
          <type name="Gio.TlsCertificate" c:type="GTlsCertificate*"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAuth</doc>
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tls_database" c:identifier="gst_rtsp_auth_get_tls_database" version="1.6">
        <doc xml:space="preserve">Get the #GTlsDatabase used for verifying client certificate.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GTlsDatabase of @auth. g_object_unref() after
usage.</doc>
          <type name="Gio.TlsDatabase" c:type="GTlsDatabase*"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAuth</doc>
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="parse_htdigest" c:identifier="gst_rtsp_auth_parse_htdigest" version="1.16">
        <doc xml:space="preserve">Parse the contents of the file at @path and enable the privileges
listed in @token for the users it describes.

The format of the file is expected to match the format described by
&lt;https://en.wikipedia.org/wiki/Digest_access_authentication#The_.htdigest_file&gt;,
as output by the `htdigest` command.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the file was successfully parsed, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve">Path to the htdigest file</doc>
            <type name="filename" c:type="const gchar*"/>
          </parameter>
          <parameter name="token" transfer-ownership="none">
            <doc xml:space="preserve">authorisation token</doc>
            <type name="RTSPToken" c:type="GstRTSPToken*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_basic" c:identifier="gst_rtsp_auth_remove_basic">
        <doc xml:space="preserve">Removes @basic authentication token.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAuth</doc>
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
          <parameter name="basic" transfer-ownership="none">
            <doc xml:space="preserve">the basic token</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_digest" c:identifier="gst_rtsp_auth_remove_digest" version="1.12">
        <doc xml:space="preserve">Removes a digest user.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAuth</doc>
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
          <parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the digest user name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_default_token" c:identifier="gst_rtsp_auth_set_default_token">
        <doc xml:space="preserve">Set the default #GstRTSPToken to @token in @auth. The default token will
be used for unauthenticated users.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAuth</doc>
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
          <parameter name="token" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPToken</doc>
            <type name="RTSPToken" c:type="GstRTSPToken*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_realm" c:identifier="gst_rtsp_auth_set_realm" version="1.16">
        <doc xml:space="preserve">Set the @realm of @auth</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
          <parameter name="realm" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_supported_methods" c:identifier="gst_rtsp_auth_set_supported_methods" version="1.12">
        <doc xml:space="preserve">Sets the supported authentication @methods for @auth.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAuth</doc>
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
          <parameter name="methods" transfer-ownership="none">
            <doc xml:space="preserve">supported methods</doc>
            <type name="GstRtsp.RTSPAuthMethod" c:type="GstRTSPAuthMethod"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tls_authentication_mode" c:identifier="gst_rtsp_auth_set_tls_authentication_mode" version="1.6">
        <doc xml:space="preserve">The #GTlsAuthenticationMode to set on the underlying GTlsServerConnection.
When set to another value than %G_TLS_AUTHENTICATION_NONE,
#GstRTSPAuth::accept-certificate signal will be emitted and must be handled.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAuth</doc>
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">a #GTlsAuthenticationMode</doc>
            <type name="Gio.TlsAuthenticationMode" c:type="GTlsAuthenticationMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tls_certificate" c:identifier="gst_rtsp_auth_set_tls_certificate">
        <doc xml:space="preserve">Set the TLS certificate for the auth. Client connections will only
be accepted when TLS is negotiated.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAuth</doc>
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
          <parameter name="cert" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GTlsCertificate</doc>
            <type name="Gio.TlsCertificate" c:type="GTlsCertificate*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tls_database" c:identifier="gst_rtsp_auth_set_tls_database" version="1.6">
        <doc xml:space="preserve">Sets the certificate database that is used to verify peer certificates.
If set to %NULL (the default), then peer certificate validation will always
set the %G_TLS_CERTIFICATE_UNKNOWN_CA error.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="auth" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPAuth</doc>
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </instance-parameter>
          <parameter name="database" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GTlsDatabase</doc>
            <type name="Gio.TlsDatabase" c:type="GTlsDatabase*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RTSPAuthPrivate" c:type="GstRTSPAuthPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <glib:signal name="accept-certificate" when="last" version="1.6">
        <doc xml:space="preserve">Emitted during the TLS handshake after the client certificate has
been received. See also gst_rtsp_auth_set_tls_authentication_mode().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE to accept @peer_cert (which will also
immediately end the signal emission). %FALSE to allow the signal
emission to continue, which will cause the handshake to fail if
no one else overrides it.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:space="preserve">a #GTlsConnection</doc>
            <type name="Gio.TlsConnection"/>
          </parameter>
          <parameter name="peer_cert" transfer-ownership="none">
            <doc xml:space="preserve">the peer's #GTlsCertificate</doc>
            <type name="Gio.TlsCertificate"/>
          </parameter>
          <parameter name="errors" transfer-ownership="none">
            <doc xml:space="preserve">the problems with @peer_cert.</doc>
            <type name="Gio.TlsCertificateFlags"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="RTSPAuthClass" c:type="GstRTSPAuthClass" glib:is-gtype-struct-for="RTSPAuth">
      <doc xml:space="preserve">The authentication class.</doc>
      
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="authenticate">
        <callback name="authenticate">
          
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="auth" transfer-ownership="none">
              <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="check">
        <callback name="check">
          
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="auth" transfer-ownership="none">
              <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
            <parameter name="check" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="generate_authenticate_header">
        <callback name="generate_authenticate_header">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="auth" transfer-ownership="none">
              <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="accept_certificate">
        <callback name="accept_certificate">
          
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="auth" transfer-ownership="none">
              <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
            </parameter>
            <parameter name="connection" transfer-ownership="none">
              <type name="Gio.TlsConnection" c:type="GTlsConnection*"/>
            </parameter>
            <parameter name="peer_cert" transfer-ownership="none">
              <type name="Gio.TlsCertificate" c:type="GTlsCertificate*"/>
            </parameter>
            <parameter name="errors" transfer-ownership="none">
              <type name="Gio.TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="3">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="RTSPAuthPrivate" c:type="GstRTSPAuthPrivate" disguised="1">
      
    </record>
    <class name="RTSPClient" c:symbol-prefix="rtsp_client" c:type="GstRTSPClient" parent="GObject.Object" glib:type-name="GstRTSPClient" glib:get-type="gst_rtsp_client_get_type" glib:type-struct="RTSPClientClass">
      <doc xml:space="preserve">The client object represents the connection and its state with a client.</doc>
      
      <constructor name="new" c:identifier="gst_rtsp_client_new">
        <doc xml:space="preserve">Create a new #GstRTSPClient instance.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPClient</doc>
          <type name="RTSPClient" c:type="GstRTSPClient*"/>
        </return-value>
      </constructor>
      <virtual-method name="adjust_play_mode">
        
        <return-value transfer-ownership="none">
          <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
          <parameter name="range" transfer-ownership="none">
            <type name="GstRtsp.RTSPTimeRange" c:type="GstRTSPTimeRange**"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="Gst.SeekFlags" c:type="GstSeekFlags*"/>
          </parameter>
          <parameter name="rate" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="trickmode_interval" transfer-ownership="none">
            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
          </parameter>
          <parameter name="enable_rate_control" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="adjust_play_response">
        
        <return-value transfer-ownership="none">
          <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="announce_request">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="check_requirements">
        
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
          <parameter name="arr" transfer-ownership="none">
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="closed">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="configure_client_media">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </parameter>
          <parameter name="stream" transfer-ownership="none">
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="configure_client_transport">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
          <parameter name="ct" transfer-ownership="none">
            <type name="GstRtsp.RTSPTransport" c:type="GstRTSPTransport*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_sdp">
        
        <return-value transfer-ownership="full">
          <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="describe_request">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_parameter_request">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="handle_response">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="handle_sdp">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
          <parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </parameter>
          <parameter name="sdp" transfer-ownership="none">
            <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="make_path_from_uri">
        
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="new_session">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="session" transfer-ownership="none">
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="options_request">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="params_get">
        
        <return-value transfer-ownership="none">
          <type name="GstRtsp.RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="params_set">
        
        <return-value transfer-ownership="none">
          <type name="GstRtsp.RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pause_request">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="play_request">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pre_announce_request">
        
        <return-value transfer-ownership="none">
          <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pre_describe_request">
        
        <return-value transfer-ownership="none">
          <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pre_get_parameter_request">
        
        <return-value transfer-ownership="none">
          <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pre_options_request">
        
        <return-value transfer-ownership="none">
          <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pre_pause_request">
        
        <return-value transfer-ownership="none">
          <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pre_play_request">
        
        <return-value transfer-ownership="none">
          <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pre_record_request">
        
        <return-value transfer-ownership="none">
          <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pre_set_parameter_request">
        
        <return-value transfer-ownership="none">
          <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pre_setup_request">
        
        <return-value transfer-ownership="none">
          <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pre_teardown_request">
        
        <return-value transfer-ownership="none">
          <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="record_request">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="send_message">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
          <parameter name="response" transfer-ownership="none">
            <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_parameter_request">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="setup_request">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="teardown_request">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="tunnel_http_response">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="request" transfer-ownership="none">
            <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
          <parameter name="response" transfer-ownership="none">
            <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="attach" c:identifier="gst_rtsp_client_attach">
        <doc xml:space="preserve">Attaches @client to @context. When the mainloop for @context is run, the
client will be dispatched. When @context is %NULL, the default context will be
used).

This function should be called when the client properties and urls are fully
configured and the client is ready to start.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the ID (greater than 0) for the source within the GMainContext.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GMainContext</doc>
            <type name="GLib.MainContext" c:type="GMainContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="close" c:identifier="gst_rtsp_client_close" version="1.4">
        <doc xml:space="preserve">Close the connection of @client and remove all media it was managing.</doc>
        
        <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">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_auth" c:identifier="gst_rtsp_client_get_auth">
        <doc xml:space="preserve">Get the #GstRTSPAuth used as the authentication manager of @client.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GstRTSPAuth of @client.
g_object_unref() after usage.</doc>
          <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_connection" c:identifier="gst_rtsp_client_get_connection">
        <doc xml:space="preserve">Get the #GstRTSPConnection of @client.</doc>
        
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the #GstRTSPConnection of @client.
The connection object returned remains valid until the client is freed.</doc>
          <type name="GstRtsp.RTSPConnection" c:type="GstRTSPConnection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_content_length_limit" c:identifier="gst_rtsp_client_get_content_length_limit" version="1.18">
        <doc xml:space="preserve">Get the Content-Length limit of @client.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the Content-Length limit.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mount_points" c:identifier="gst_rtsp_client_get_mount_points">
        <doc xml:space="preserve">Get the #GstRTSPMountPoints object that @client uses to manage its sessions.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #GstRTSPMountPoints, unref after usage.</doc>
          <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_session_pool" c:identifier="gst_rtsp_client_get_session_pool">
        <doc xml:space="preserve">Get the #GstRTSPSessionPool object that @client uses to manage its sessions.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #GstRTSPSessionPool, unref after usage.</doc>
          <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stream_transport" c:identifier="gst_rtsp_client_get_stream_transport" version="1.18">
        <doc xml:space="preserve">This is useful when providing a send function through
gst_rtsp_client_set_send_func() when doing RTSP over TCP:
the send function must call gst_rtsp_stream_transport_message_sent ()
on the appropriate transport when data has been received for streaming
to continue.</doc>
        
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the #GstRTSPStreamTransport associated with @channel.</doc>
          <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="channel" transfer-ownership="none">
            <type name="guint8" c:type="guint8"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_thread_pool" c:identifier="gst_rtsp_client_get_thread_pool">
        <doc xml:space="preserve">Get the #GstRTSPThreadPool used as the thread pool of @client.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GstRTSPThreadPool of @client. g_object_unref() after
usage.</doc>
          <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="handle_message" c:identifier="gst_rtsp_client_handle_message">
        <doc xml:space="preserve">Let the client handle @message.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="GstRtsp.RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve">an #GstRTSPMessage</doc>
            <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_message" c:identifier="gst_rtsp_client_send_message">
        <doc xml:space="preserve">Send a message message to the remote end. @message must be a
#GST_RTSP_MESSAGE_REQUEST or a #GST_RTSP_MESSAGE_RESPONSE.</doc>
        
        <return-value transfer-ownership="none">
          <type name="GstRtsp.RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="session" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPSession to send
  the message to or %NULL</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve">The #GstRTSPMessage to send</doc>
            <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="session_filter" c:identifier="gst_rtsp_client_session_filter">
        <doc xml:space="preserve">Call @func for each session managed by @client. The result value of @func
determines what happens to the session. @func will be called with @client
locked so no further actions on @client can be performed from @func.

If @func returns #GST_RTSP_FILTER_REMOVE, the session will be removed from
@client.

If @func returns #GST_RTSP_FILTER_KEEP, the session will remain in @client.

If @func returns #GST_RTSP_FILTER_REF, the session will remain in @client but
will also be added with an additional ref to the result #GList of this
function..

When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for each session.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GList with all
sessions for which @func returned #GST_RTSP_FILTER_REF. After usage, each
element in the #GList should be unreffed before the list is freed.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="RTSPSession"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="call" closure="1">
            <doc xml:space="preserve">a callback</doc>
            <type name="RTSPClientSessionFilterFunc" c:type="GstRTSPClientSessionFilterFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">user data passed to @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_auth" c:identifier="gst_rtsp_client_set_auth">
        <doc xml:space="preserve">configure @auth to be used as the authentication manager of @client.</doc>
        
        <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">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="auth" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPAuth</doc>
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_connection" c:identifier="gst_rtsp_client_set_connection">
        <doc xml:space="preserve">Set the #GstRTSPConnection of @client. This function takes ownership of
@conn.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="conn" transfer-ownership="full">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="GstRtsp.RTSPConnection" c:type="GstRTSPConnection*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content_length_limit" c:identifier="gst_rtsp_client_set_content_length_limit" version="1.18">
        <doc xml:space="preserve">Configure @client to use the specified Content-Length limit.

Define an appropriate request size limit and reject requests exceeding the
limit with response status 413 Request Entity Too Large</doc>
        
        <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">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="limit" transfer-ownership="none">
            <doc xml:space="preserve">Content-Length limit</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mount_points" c:identifier="gst_rtsp_client_set_mount_points">
        <doc xml:space="preserve">Set @mounts as the mount points for @client which it will use to map urls
to media streams. These mount points are usually inherited from the server that
created the client but can be overriden later.</doc>
        
        <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">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="mounts" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPMountPoints</doc>
            <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_send_func" c:identifier="gst_rtsp_client_set_send_func">
        <doc xml:space="preserve">Set @func as the callback that will be called when a new message needs to be
sent to the client. @user_data is passed to @func and @notify is called when
@user_data is no longer in use.

By default, the client will send the messages on the #GstRTSPConnection that
was configured with gst_rtsp_client_attach() was called.

It is only allowed to set either a `send_func` or a `send_messages_func`
but not both at the same time.</doc>
        
        <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">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2">
            <doc xml:space="preserve">a #GstRTSPClientSendFunc</doc>
            <type name="RTSPClientSendFunc" c:type="GstRTSPClientSendFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">user data passed to @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async">
            <doc xml:space="preserve">called when @user_data is no longer in use</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_send_messages_func" c:identifier="gst_rtsp_client_set_send_messages_func" version="1.16">
        <doc xml:space="preserve">Set @func as the callback that will be called when new messages needs to be
sent to the client. @user_data is passed to @func and @notify is called when
@user_data is no longer in use.

By default, the client will send the messages on the #GstRTSPConnection that
was configured with gst_rtsp_client_attach() was called.

It is only allowed to set either a `send_func` or a `send_messages_func`
but not both at the same time.</doc>
        
        <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">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2">
            <doc xml:space="preserve">a #GstRTSPClientSendMessagesFunc</doc>
            <type name="RTSPClientSendMessagesFunc" c:type="GstRTSPClientSendMessagesFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">user data passed to @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async">
            <doc xml:space="preserve">called when @user_data is no longer in use</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_session_pool" c:identifier="gst_rtsp_client_set_session_pool">
        <doc xml:space="preserve">Set @pool as the sessionpool for @client which it will use to find
or allocate sessions. the sessionpool is usually inherited from the server
that created the client but can be overridden later.</doc>
        
        <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">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="pool" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPSessionPool</doc>
            <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_thread_pool" c:identifier="gst_rtsp_client_set_thread_pool">
        <doc xml:space="preserve">configure @pool to be used as the thread pool of @client.</doc>
        
        <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">a #GstRTSPClient</doc>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </instance-parameter>
          <parameter name="pool" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPThreadPool</doc>
            <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/>
          </parameter>
        </parameters>
      </method>
      <property name="drop-backlog" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="mount-points" writable="1" transfer-ownership="none">
        <type name="RTSPMountPoints"/>
      </property>
      <property name="post-session-timeout" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="session-pool" writable="1" transfer-ownership="none">
        <type name="RTSPSessionPool"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RTSPClientPrivate" c:type="GstRTSPClientPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <glib:signal name="announce-request" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="check-requirements" when="last" version="1.6">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated string with comma-separated list of
         unsupported options. An empty string must be returned if
         all options are supported.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
          <parameter name="arr" transfer-ownership="none">
            <doc xml:space="preserve">a NULL-terminated array of strings</doc>
            <array>
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="closed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="describe-request" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="get-parameter-request" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="handle-response" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="new-session" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="RTSPSession"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="options-request" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="pause-request" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="play-request" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="pre-announce-request" when="last" version="1.12">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code</doc>
          <type name="GstRtsp.RTSPStatusCode"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="pre-describe-request" when="last" version="1.12">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code</doc>
          <type name="GstRtsp.RTSPStatusCode"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="pre-get-parameter-request" when="last" version="1.12">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code</doc>
          <type name="GstRtsp.RTSPStatusCode"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="pre-options-request" when="last" version="1.12">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code</doc>
          <type name="GstRtsp.RTSPStatusCode"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="pre-pause-request" when="last" version="1.12">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code</doc>
          <type name="GstRtsp.RTSPStatusCode"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="pre-play-request" when="last" version="1.12">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code</doc>
          <type name="GstRtsp.RTSPStatusCode"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="pre-record-request" when="last" version="1.12">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code</doc>
          <type name="GstRtsp.RTSPStatusCode"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="pre-set-parameter-request" when="last" version="1.12">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code</doc>
          <type name="GstRtsp.RTSPStatusCode"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="pre-setup-request" when="last" version="1.12">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code</doc>
          <type name="GstRtsp.RTSPStatusCode"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="pre-teardown-request" when="last" version="1.12">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code</doc>
          <type name="GstRtsp.RTSPStatusCode"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="record-request" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="send-message" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">The session</doc>
            <type name="RTSPSession"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve">The message</doc>
            <type name="GstRtsp.RTSPMessage" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="set-parameter-request" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="setup-request" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="teardown-request" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="RTSPClientClass" c:type="GstRTSPClientClass" glib:is-gtype-struct-for="RTSPClient">
      <doc xml:space="preserve">The client class structure.</doc>
      
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="create_sdp">
        <callback name="create_sdp">
          
          <return-value transfer-ownership="full">
            <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="configure_client_media">
        <callback name="configure_client_media">
          
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
            <parameter name="stream" transfer-ownership="none">
              <type name="RTSPStream" c:type="GstRTSPStream*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="configure_client_transport">
        <callback name="configure_client_transport">
          
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
            <parameter name="ct" transfer-ownership="none">
              <type name="GstRtsp.RTSPTransport" c:type="GstRTSPTransport*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="params_set">
        <callback name="params_set">
          
          <return-value transfer-ownership="none">
            <type name="GstRtsp.RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="params_get">
        <callback name="params_get">
          
          <return-value transfer-ownership="none">
            <type name="GstRtsp.RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="make_path_from_uri">
        <callback name="make_path_from_uri">
          
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="adjust_play_mode">
        <callback name="adjust_play_mode">
          
          <return-value transfer-ownership="none">
            <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
            <parameter name="range" transfer-ownership="none">
              <type name="GstRtsp.RTSPTimeRange" c:type="GstRTSPTimeRange**"/>
            </parameter>
            <parameter name="flags" transfer-ownership="none">
              <type name="Gst.SeekFlags" c:type="GstSeekFlags*"/>
            </parameter>
            <parameter name="rate" transfer-ownership="none">
              <type name="gdouble" c:type="gdouble*"/>
            </parameter>
            <parameter name="trickmode_interval" transfer-ownership="none">
              <type name="Gst.ClockTime" c:type="GstClockTime*"/>
            </parameter>
            <parameter name="enable_rate_control" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="adjust_play_response">
        <callback name="adjust_play_response">
          
          <return-value transfer-ownership="none">
            <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="closed">
        <callback name="closed">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="new_session">
        <callback name="new_session">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="session" transfer-ownership="none">
              <type name="RTSPSession" c:type="GstRTSPSession*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="options_request">
        <callback name="options_request">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="describe_request">
        <callback name="describe_request">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="setup_request">
        <callback name="setup_request">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="play_request">
        <callback name="play_request">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pause_request">
        <callback name="pause_request">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="teardown_request">
        <callback name="teardown_request">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_parameter_request">
        <callback name="set_parameter_request">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_parameter_request">
        <callback name="get_parameter_request">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="handle_response">
        <callback name="handle_response">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="tunnel_http_response">
        <callback name="tunnel_http_response">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="request" transfer-ownership="none">
              <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/>
            </parameter>
            <parameter name="response" transfer-ownership="none">
              <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="send_message">
        <callback name="send_message">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
            <parameter name="response" transfer-ownership="none">
              <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="handle_sdp">
        <callback name="handle_sdp">
          
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
            <parameter name="sdp" transfer-ownership="none">
              <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="announce_request">
        <callback name="announce_request">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="record_request">
        <callback name="record_request">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="check_requirements">
        <callback name="check_requirements">
          
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
            <parameter name="arr" transfer-ownership="none">
              <type name="utf8" c:type="gchar**"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pre_options_request">
        <callback name="pre_options_request">
          
          <return-value transfer-ownership="none">
            <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pre_describe_request">
        <callback name="pre_describe_request">
          
          <return-value transfer-ownership="none">
            <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pre_setup_request">
        <callback name="pre_setup_request">
          
          <return-value transfer-ownership="none">
            <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pre_play_request">
        <callback name="pre_play_request">
          
          <return-value transfer-ownership="none">
            <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pre_pause_request">
        <callback name="pre_pause_request">
          
          <return-value transfer-ownership="none">
            <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pre_teardown_request">
        <callback name="pre_teardown_request">
          
          <return-value transfer-ownership="none">
            <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pre_set_parameter_request">
        <callback name="pre_set_parameter_request">
          
          <return-value transfer-ownership="none">
            <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pre_get_parameter_request">
        <callback name="pre_get_parameter_request">
          
          <return-value transfer-ownership="none">
            <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pre_announce_request">
        <callback name="pre_announce_request">
          
          <return-value transfer-ownership="none">
            <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pre_record_request">
        <callback name="pre_record_request">
          
          <return-value transfer-ownership="none">
            <type name="GstRtsp.RTSPStatusCode" c:type="GstRTSPStatusCode"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="2">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="RTSPClientPrivate" c:type="GstRTSPClientPrivate" disguised="1">
      
    </record>
    <callback name="RTSPClientSendFunc" c:type="GstRTSPClientSendFunc">
      <doc xml:space="preserve">This callback is called when @client wants to send @message. When @close is
%TRUE, the connection should be closed when the message has been sent.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE on success.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="client" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPClient</doc>
          <type name="RTSPClient" c:type="GstRTSPClient*"/>
        </parameter>
        <parameter name="message" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPMessage</doc>
          <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/>
        </parameter>
        <parameter name="close" transfer-ownership="none">
          <doc xml:space="preserve">close the connection</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3">
          <doc xml:space="preserve">user data when registering the callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="RTSPClientSendMessagesFunc" c:type="GstRTSPClientSendMessagesFunc" version="1.16">
      <doc xml:space="preserve">This callback is called when @client wants to send @messages. When @close is
%TRUE, the connection should be closed when the message has been sent.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE on success.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="client" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPClient</doc>
          <type name="RTSPClient" c:type="GstRTSPClient*"/>
        </parameter>
        <parameter name="messages" transfer-ownership="none">
          <doc xml:space="preserve">#GstRTSPMessage</doc>
          <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/>
        </parameter>
        <parameter name="n_messages" transfer-ownership="none">
          <doc xml:space="preserve">number of messages</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="close" transfer-ownership="none">
          <doc xml:space="preserve">close the connection</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="4">
          <doc xml:space="preserve">user data when registering the callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="RTSPClientSessionFilterFunc" c:type="GstRTSPClientSessionFilterFunc">
      <doc xml:space="preserve">This function will be called by the gst_rtsp_client_session_filter(). An
implementation should return a value of #GstRTSPFilterResult.

When this function returns #GST_RTSP_FILTER_REMOVE, @sess will be removed
from @client.

A return value of #GST_RTSP_FILTER_KEEP will leave @sess untouched in
@client.

A value of #GST_RTSP_FILTER_REF will add @sess to the result #GList of
gst_rtsp_client_session_filter().</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPFilterResult.</doc>
        <type name="RTSPFilterResult" c:type="GstRTSPFilterResult"/>
      </return-value>
      <parameters>
        <parameter name="client" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPClient object</doc>
          <type name="RTSPClient" c:type="GstRTSPClient*"/>
        </parameter>
        <parameter name="sess" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPSession in @client</doc>
          <type name="RTSPSession" c:type="GstRTSPSession*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2">
          <doc xml:space="preserve">user data that has been given to gst_rtsp_client_session_filter()</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="RTSPContext" c:type="GstRTSPContext">
      <doc xml:space="preserve">Information passed around containing the context of a request.</doc>
      
      <field name="server" writable="1">
        <doc xml:space="preserve">the server</doc>
        <type name="RTSPServer" c:type="GstRTSPServer*"/>
      </field>
      <field name="conn" writable="1">
        <doc xml:space="preserve">the connection</doc>
        <type name="GstRtsp.RTSPConnection" c:type="GstRTSPConnection*"/>
      </field>
      <field name="client" writable="1">
        <doc xml:space="preserve">the client</doc>
        <type name="RTSPClient" c:type="GstRTSPClient*"/>
      </field>
      <field name="request" writable="1">
        <doc xml:space="preserve">the complete request</doc>
        <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/>
      </field>
      <field name="uri" writable="1">
        <doc xml:space="preserve">the complete url parsed from @request</doc>
        <type name="GstRtsp.RTSPUrl" c:type="GstRTSPUrl*"/>
      </field>
      <field name="method" writable="1">
        <doc xml:space="preserve">the parsed method of @uri</doc>
        <type name="GstRtsp.RTSPMethod" c:type="GstRTSPMethod"/>
      </field>
      <field name="auth" writable="1">
        <doc xml:space="preserve">the current auth object or %NULL</doc>
        <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
      </field>
      <field name="token" writable="1">
        <doc xml:space="preserve">authorisation token</doc>
        <type name="RTSPToken" c:type="GstRTSPToken*"/>
      </field>
      <field name="session" writable="1">
        <doc xml:space="preserve">the session, can be %NULL</doc>
        <type name="RTSPSession" c:type="GstRTSPSession*"/>
      </field>
      <field name="sessmedia" writable="1">
        <doc xml:space="preserve">the session media for the url can be %NULL</doc>
        <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
      </field>
      <field name="factory" writable="1">
        <doc xml:space="preserve">the media factory for the url, can be %NULL</doc>
        <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
      </field>
      <field name="media" writable="1">
        <doc xml:space="preserve">the media for the url can be %NULL</doc>
        <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
      </field>
      <field name="stream" writable="1">
        <doc xml:space="preserve">the stream for the url can be %NULL</doc>
        <type name="RTSPStream" c:type="GstRTSPStream*"/>
      </field>
      <field name="response" writable="1">
        <doc xml:space="preserve">the response</doc>
        <type name="GstRtsp.RTSPMessage" c:type="GstRTSPMessage*"/>
      </field>
      <field name="trans" writable="1">
        <doc xml:space="preserve">the stream transport, can be %NULL</doc>
        <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="3">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <method name="pop_current" c:identifier="gst_rtsp_context_pop_current">
        <doc xml:space="preserve">Pops @ctx off the context stack (verifying that @ctx
is on the top of the stack).</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="push_current" c:identifier="gst_rtsp_context_push_current">
        <doc xml:space="preserve">Pushes @ctx onto the context stack. The current
context can then be received using gst_rtsp_context_get_current().</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="get_current" c:identifier="gst_rtsp_context_get_current" introspectable="0">
        <doc xml:space="preserve">Get the current #GstRTSPContext. This object is retrieved from the
current thread that is handling the request for a client.</doc>
        
        <return-value>
          <doc xml:space="preserve">a #GstRTSPContext</doc>
          <type name="RTSPContext" c:type="GstRTSPContext*"/>
        </return-value>
      </function>
    </record>
    <enumeration name="RTSPFilterResult" c:type="GstRTSPFilterResult">
      <doc xml:space="preserve">Possible return values for gst_rtsp_session_pool_filter().</doc>
      
      <member name="remove" value="0" c:identifier="GST_RTSP_FILTER_REMOVE">
        <doc xml:space="preserve">Remove session</doc>
      </member>
      <member name="keep" value="1" c:identifier="GST_RTSP_FILTER_KEEP">
        <doc xml:space="preserve">Keep session in the pool</doc>
      </member>
      <member name="ref" value="2" c:identifier="GST_RTSP_FILTER_REF">
        <doc xml:space="preserve">Ref session in the result list</doc>
      </member>
    </enumeration>
    <callback name="RTSPKeepAliveFunc" c:type="GstRTSPKeepAliveFunc">
      <doc xml:space="preserve">Function registered with gst_rtsp_stream_transport_set_keepalive() and called
when the stream is active.</doc>
      
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="0">
          <doc xml:space="preserve">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="RTSPMedia" c:symbol-prefix="rtsp_media" c:type="GstRTSPMedia" parent="GObject.Object" glib:type-name="GstRTSPMedia" glib:get-type="gst_rtsp_media_get_type" glib:type-struct="RTSPMediaClass">
      <doc xml:space="preserve">A class that contains the GStreamer element along with a list of
#GstRTSPStream objects that can produce data.

This object is usually created from a #GstRTSPMediaFactory.</doc>
      
      <constructor name="new" c:identifier="gst_rtsp_media_new">
        <doc xml:space="preserve">Create a new #GstRTSPMedia instance. @element is the bin element that
provides the different streams. The #GstRTSPMedia object contains the
element to produce RTP data for one or more related (audio/video/..)
streams.

Ownership is taken of @element.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPMedia object.</doc>
          <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
        </return-value>
        <parameters>
          <parameter name="element" transfer-ownership="full">
            <doc xml:space="preserve">a #GstElement</doc>
            <type name="Gst.Element" c:type="GstElement*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="convert_range">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="range" transfer-ownership="none">
            <type name="GstRtsp.RTSPTimeRange" c:type="GstRTSPTimeRange*"/>
          </parameter>
          <parameter name="unit" transfer-ownership="none">
            <type name="GstRtsp.RTSPRangeUnit" c:type="GstRTSPRangeUnit"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_rtpbin" introspectable="0">
        
        <return-value>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="handle_message">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="Gst.Message" c:type="GstMessage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="handle_sdp" invoker="handle_sdp">
        <doc xml:space="preserve">Configure an SDP on @media for receiving streams</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="sdp" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="new_state">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="Gst.State" c:type="GstState"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="new_stream">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="prepare" invoker="prepare">
        <doc xml:space="preserve">Prepare @media for streaming. This function will create the objects
to manage the streaming. A pipeline must have been set on @media with
gst_rtsp_media_take_pipeline().

It will preroll the pipeline and collect vital information about the streams
such as the duration.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="thread" transfer-ownership="full" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPThread to run the
  bus handler or %NULL</doc>
            <type name="RTSPThread" c:type="GstRTSPThread*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="prepared">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="query_position">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="position" transfer-ownership="none">
            <type name="gint64" c:type="gint64*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="query_stop">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="stop" transfer-ownership="none">
            <type name="gint64" c:type="gint64*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="removed_stream">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="setup_rtpbin">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="rtpbin" transfer-ownership="none">
            <type name="Gst.Element" c:type="GstElement*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="setup_sdp" invoker="setup_sdp">
        <doc xml:space="preserve">Add @media specific info to @sdp. @info is used to configure the connection
information in the SDP.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="sdp" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPInfo</doc>
            <type name="SDPInfo" c:type="GstSDPInfo*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="suspend" invoker="suspend">
        <doc xml:space="preserve">Suspend @media. The state of the pipeline managed by @media is set to
GST_STATE_NULL but all streams are kept. @media can be prepared again
with gst_rtsp_media_unsuspend()

@media must be prepared with gst_rtsp_media_prepare();</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="target_state">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="Gst.State" c:type="GstState"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unprepare" invoker="unprepare">
        <doc xml:space="preserve">Unprepare @media. After this call, the media should be prepared again before
it can be used again. If the media is set to be non-reusable, a new instance
must be created.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unprepared">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unsuspend" invoker="unsuspend">
        <doc xml:space="preserve">Unsuspend @media if it was in a suspended state. This method does nothing
when the media was not in the suspended state.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="collect_streams" c:identifier="gst_rtsp_media_collect_streams">
        <doc xml:space="preserve">Find all payloader elements, they should be named pay\%d in the
element of @media, and create #GstRTSPStreams for them.

Collect all dynamic elements, named dynpay\%d, and add them to
the list of dynamic elements.

Find all depayloader elements, they should be named depay\%d in the
element of @media, and create #GstRTSPStreams for them.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="complete_pipeline" c:identifier="gst_rtsp_media_complete_pipeline" version="1.14">
        <doc xml:space="preserve">Add a receiver and sender parts to the pipeline based on the transport from
SETUP.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the media pipeline has been sucessfully updated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="transports" transfer-ownership="none">
            <doc xml:space="preserve">a list of #GstRTSPTransport</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="GstRtsp.RTSPTransport"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="create_stream" c:identifier="gst_rtsp_media_create_stream">
        <doc xml:space="preserve">Create a new stream in @media that provides RTP data on @pad.
@pad should be a pad of an element inside @media-&gt;element.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #GstRTSPStream that remains valid for as long
as @media exists.</doc>
          <type name="RTSPStream" c:type="GstRTSPStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="payloader" transfer-ownership="none">
            <doc xml:space="preserve">a #GstElement</doc>
            <type name="Gst.Element" c:type="GstElement*"/>
          </parameter>
          <parameter name="pad" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPad</doc>
            <type name="Gst.Pad" c:type="GstPad*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_stream" c:identifier="gst_rtsp_media_find_stream">
        <doc xml:space="preserve">Find a stream in @media with @control as the control uri.</doc>
        
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the #GstRTSPStream with
control uri @control or %NULL when a stream with that control did
not exist.</doc>
          <type name="RTSPStream" c:type="GstRTSPStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="control" transfer-ownership="none">
            <doc xml:space="preserve">the control of the stream</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_address_pool" c:identifier="gst_rtsp_media_get_address_pool">
        <doc xml:space="preserve">Get the #GstRTSPAddressPool used as the address pool of @media.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GstRTSPAddressPool of @media.
g_object_unref() after usage.</doc>
          <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_base_time" c:identifier="gst_rtsp_media_get_base_time">
        <doc xml:space="preserve">Get the base_time that is used by the pipeline in @media.

@media must be prepared before this method returns a valid base_time.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the base_time used by @media.</doc>
          <type name="Gst.ClockTime" c:type="GstClockTime"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_buffer_size" c:identifier="gst_rtsp_media_get_buffer_size">
        <doc xml:space="preserve">Get the kernel UDP buffer size.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the kernel UDP buffer size.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_clock" c:identifier="gst_rtsp_media_get_clock">
        <doc xml:space="preserve">Get the clock that is used by the pipeline in @media.

@media must be prepared before this method returns a valid clock object.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GstClock used by @media. unref after usage.</doc>
          <type name="Gst.Clock" c:type="GstClock*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_do_retransmission" c:identifier="gst_rtsp_media_get_do_retransmission" version="1.16">
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Whether retransmission requests will be sent</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dscp_qos" c:identifier="gst_rtsp_media_get_dscp_qos" version="1.18">
        <doc xml:space="preserve">Get the configured DSCP QoS of attached media.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the DSCP QoS value of attached streams or -1 if disabled.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_element" c:identifier="gst_rtsp_media_get_element">
        <doc xml:space="preserve">Get the element that was used when constructing @media.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GstElement. Unref after usage.</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_latency" c:identifier="gst_rtsp_media_get_latency">
        <doc xml:space="preserve">Get the latency that is used for receiving media.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">latency in milliseconds</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_mcast_ttl" c:identifier="gst_rtsp_media_get_max_mcast_ttl" version="1.16">
        <doc xml:space="preserve">Get the the maximum time-to-live value of outgoing multicast packets.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the maximum time-to-live value of outgoing multicast packets.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_multicast_iface" c:identifier="gst_rtsp_media_get_multicast_iface">
        <doc xml:space="preserve">Get the multicast interface used for @media.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the multicast interface for @media.
g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_permissions" c:identifier="gst_rtsp_media_get_permissions">
        <doc xml:space="preserve">Get the permissions object from @media.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #GstRTSPPermissions object, unref after usage.</doc>
          <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_profiles" c:identifier="gst_rtsp_media_get_profiles">
        <doc xml:space="preserve">Get the allowed profiles of @media.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPProfile</doc>
          <type name="GstRtsp.RTSPProfile" c:type="GstRTSPProfile"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_protocols" c:identifier="gst_rtsp_media_get_protocols">
        <doc xml:space="preserve">Get the allowed protocols of @media.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPLowerTrans</doc>
          <type name="GstRtsp.RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_publish_clock_mode" c:identifier="gst_rtsp_media_get_publish_clock_mode" version="1.8">
        <doc xml:space="preserve">Gets if and how the media clock should be published according to RFC7273.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The GstRTSPPublishClockMode</doc>
          <type name="RTSPPublishClockMode" c:type="GstRTSPPublishClockMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_range_string" c:identifier="gst_rtsp_media_get_range_string">
        <doc xml:space="preserve">Get the current range as a string. @media must be prepared with
gst_rtsp_media_prepare ().</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">The range as a string, g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="play" transfer-ownership="none">
            <doc xml:space="preserve">for the PLAY request</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve">the unit to use for the string</doc>
            <type name="GstRtsp.RTSPRangeUnit" c:type="GstRTSPRangeUnit"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_rate_control" c:identifier="gst_rtsp_media_get_rate_control" version="1.18">
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether @media will follow the Rate-Control=no behaviour as specified
in the ONVIF replay spec.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rates" c:identifier="gst_rtsp_media_get_rates" version="1.18">
        <doc xml:space="preserve">Get the rate and applied_rate of the current segment.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%FALSE if looking up the rate and applied rate failed. Otherwise
%TRUE is returned and @rate and @applied_rate are set to the rate and
applied_rate of the current segment.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="rate" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1">
            <doc xml:space="preserve">the rate of the current segment</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="applied_rate" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1">
            <doc xml:space="preserve">the applied_rate of the current segment</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_retransmission_time" c:identifier="gst_rtsp_media_get_retransmission_time">
        <doc xml:space="preserve">Get the amount of time to store retransmission data.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the amount of time to store retransmission data.</doc>
          <type name="Gst.ClockTime" c:type="GstClockTime"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_status" c:identifier="gst_rtsp_media_get_status">
        <doc xml:space="preserve">Get the status of @media. When @media is busy preparing, this function waits
until @media is prepared or in error.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the status of @media.</doc>
          <type name="RTSPMediaStatus" c:type="GstRTSPMediaStatus"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stream" c:identifier="gst_rtsp_media_get_stream">
        <doc xml:space="preserve">Retrieve the stream with index @idx from @media.</doc>
        
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the #GstRTSPStream at index
@idx or %NULL when a stream with that index did not exist.</doc>
          <type name="RTSPStream" c:type="GstRTSPStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the stream index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_suspend_mode" c:identifier="gst_rtsp_media_get_suspend_mode">
        <doc xml:space="preserve">Get how @media will be suspended.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GstRTSPSuspendMode.</doc>
          <type name="RTSPSuspendMode" c:type="GstRTSPSuspendMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_time_provider" c:identifier="gst_rtsp_media_get_time_provider">
        <doc xml:space="preserve">Get the #GstNetTimeProvider for the clock used by @media. The time provider
will listen on @address and @port for client time requests.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the #GstNetTimeProvider of @media.</doc>
          <type name="GstNet.NetTimeProvider" c:type="GstNetTimeProvider*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="address" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">an address or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="port" transfer-ownership="none">
            <doc xml:space="preserve">a port or 0</doc>
            <type name="guint16" c:type="guint16"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_transport_mode" c:identifier="gst_rtsp_media_get_transport_mode">
        <doc xml:space="preserve">Check if the pipeline for @media can be used for PLAY or RECORD methods.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The transport mode.</doc>
          <type name="RTSPTransportMode" c:type="GstRTSPTransportMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="handle_sdp" c:identifier="gst_rtsp_media_handle_sdp">
        <doc xml:space="preserve">Configure an SDP on @media for receiving streams</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="sdp" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_completed_sender" c:identifier="gst_rtsp_media_has_completed_sender" version="1.18">
        <doc xml:space="preserve">See gst_rtsp_stream_is_complete(), gst_rtsp_stream_is_sender().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether @media has at least one complete sender stream.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_bind_mcast_address" c:identifier="gst_rtsp_media_is_bind_mcast_address" version="1.16">
        <doc xml:space="preserve">Check if multicast sockets are configured to be bound to multicast addresses.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if multicast sockets are configured to be bound to multicast addresses.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_eos_shutdown" c:identifier="gst_rtsp_media_is_eos_shutdown">
        <doc xml:space="preserve">Check if the pipeline for @media will send an EOS down the pipeline before
unpreparing.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the media will send EOS before unpreparing.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_receive_only" c:identifier="gst_rtsp_media_is_receive_only" version="1.18">
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @media is receive-only, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_reusable" c:identifier="gst_rtsp_media_is_reusable">
        <doc xml:space="preserve">Check if the pipeline for @media can be reused after an unprepare.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the media can be reused</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_shared" c:identifier="gst_rtsp_media_is_shared">
        <doc xml:space="preserve">Check if the pipeline for @media can be shared between multiple clients.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the media can be shared between clients.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_stop_on_disconnect" c:identifier="gst_rtsp_media_is_stop_on_disconnect">
        <doc xml:space="preserve">Check if the pipeline for @media will be stopped when a client disconnects
without sending TEARDOWN.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the media will be stopped when a client disconnects
    without sending TEARDOWN.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_time_provider" c:identifier="gst_rtsp_media_is_time_provider">
        <doc xml:space="preserve">Check if @media can provide a #GstNetTimeProvider for its pipeline clock.

Use gst_rtsp_media_get_time_provider() to get the network clock.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @media can provide a #GstNetTimeProvider.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="lock" c:identifier="gst_rtsp_media_lock" version="1.18">
        <doc xml:space="preserve">Lock the entire media. This is needed by callers such as rtsp_client to
protect the media when it is shared by many clients.
The lock prevents that concurrent clients alters the shared media,
while one client already is working with it.
Typically the lock is taken in external RTSP API calls that uses shared media
such as DESCRIBE, SETUP, ANNOUNCE, TEARDOWN, PLAY, PAUSE.

As best practice take the lock as soon as the function get hold of a shared
media object. Release the lock right before the function returns.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="n_streams" c:identifier="gst_rtsp_media_n_streams">
        <doc xml:space="preserve">Get the number of streams in this media.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The number of streams.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="prepare" c:identifier="gst_rtsp_media_prepare">
        <doc xml:space="preserve">Prepare @media for streaming. This function will create the objects
to manage the streaming. A pipeline must have been set on @media with
gst_rtsp_media_take_pipeline().

It will preroll the pipeline and collect vital information about the streams
such as the duration.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="thread" transfer-ownership="full" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPThread to run the
  bus handler or %NULL</doc>
            <type name="RTSPThread" c:type="GstRTSPThread*"/>
          </parameter>
        </parameters>
      </method>
      <method name="seek" c:identifier="gst_rtsp_media_seek">
        <doc xml:space="preserve">Seek the pipeline of @media to @range. @media must be prepared with
gst_rtsp_media_prepare().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="range" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPTimeRange</doc>
            <type name="GstRtsp.RTSPTimeRange" c:type="GstRTSPTimeRange*"/>
          </parameter>
        </parameters>
      </method>
      <method name="seek_full" c:identifier="gst_rtsp_media_seek_full" version="1.18">
        <doc xml:space="preserve">Seek the pipeline of @media to @range with the given @flags.
@media must be prepared with gst_rtsp_media_prepare().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="range" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPTimeRange</doc>
            <type name="GstRtsp.RTSPTimeRange" c:type="GstRTSPTimeRange*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">The minimal set of #GstSeekFlags to use</doc>
            <type name="Gst.SeekFlags" c:type="GstSeekFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="seek_trickmode" c:identifier="gst_rtsp_media_seek_trickmode" version="1.18">
        <doc xml:space="preserve">Seek the pipeline of @media to @range with the given @flags and @rate,
and @trickmode_interval.
@media must be prepared with gst_rtsp_media_prepare().
In order to perform the seek operation, the pipeline must contain all
needed transport parts (transport sinks).</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="range" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPTimeRange</doc>
            <type name="GstRtsp.RTSPTimeRange" c:type="GstRTSPTimeRange*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">The minimal set of #GstSeekFlags to use</doc>
            <type name="Gst.SeekFlags" c:type="GstSeekFlags"/>
          </parameter>
          <parameter name="rate" transfer-ownership="none">
            <doc xml:space="preserve">the rate to use in the seek</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="trickmode_interval" transfer-ownership="none">
            <doc xml:space="preserve">The trickmode interval to use for KEY_UNITS trick mode</doc>
            <type name="Gst.ClockTime" c:type="GstClockTime"/>
          </parameter>
        </parameters>
      </method>
      <method name="seekable" c:identifier="gst_rtsp_media_seekable" version="1.14">
        <doc xml:space="preserve">Check if the pipeline for @media seek and up to what point in time,
it can seek.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">-1 if the stream is not seekable, 0 if seekable only to the beginning
and &gt; 0 to indicate the longest duration between any two random access points.
%G_MAXINT64 means any value is possible.</doc>
          <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_address_pool" c:identifier="gst_rtsp_media_set_address_pool">
        <doc xml:space="preserve">configure @pool to be used as the address pool of @media.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="pool" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPAddressPool</doc>
            <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bind_mcast_address" c:identifier="gst_rtsp_media_set_bind_mcast_address" version="1.16">
        <doc xml:space="preserve">Decide whether the multicast socket should be bound to a multicast address or
INADDR_ANY.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="bind_mcast_addr" transfer-ownership="none">
            <doc xml:space="preserve">the new value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_buffer_size" c:identifier="gst_rtsp_media_set_buffer_size">
        <doc xml:space="preserve">Set the kernel UDP buffer size.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the new value</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_clock" c:identifier="gst_rtsp_media_set_clock">
        <doc xml:space="preserve">Configure the clock used for the media.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="clock" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">#GstClock to be used</doc>
            <type name="Gst.Clock" c:type="GstClock*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_do_retransmission" c:identifier="gst_rtsp_media_set_do_retransmission" version="1.16">
        <doc xml:space="preserve">Set whether retransmission requests will be sent</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="do_retransmission" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dscp_qos" c:identifier="gst_rtsp_media_set_dscp_qos" version="1.18">
        <doc xml:space="preserve">Configure the dscp qos of attached streams to @dscp_qos.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="dscp_qos" transfer-ownership="none">
            <doc xml:space="preserve">a new dscp qos value (0-63, or -1 to disable)</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_eos_shutdown" c:identifier="gst_rtsp_media_set_eos_shutdown">
        <doc xml:space="preserve">Set or unset if an EOS event will be sent to the pipeline for @media before
it is unprepared.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="eos_shutdown" transfer-ownership="none">
            <doc xml:space="preserve">the new value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_latency" c:identifier="gst_rtsp_media_set_latency">
        <doc xml:space="preserve">Configure the latency used for receiving media.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="latency" transfer-ownership="none">
            <doc xml:space="preserve">latency in milliseconds</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_mcast_ttl" c:identifier="gst_rtsp_media_set_max_mcast_ttl" version="1.16">
        <doc xml:space="preserve">Set the maximum time-to-live value of outgoing multicast packets.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the requested ttl has been set successfully.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="ttl" transfer-ownership="none">
            <doc xml:space="preserve">the new multicast ttl value</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_multicast_iface" c:identifier="gst_rtsp_media_set_multicast_iface">
        <doc xml:space="preserve">configure @multicast_iface to be used for @media.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="multicast_iface" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a multicast interface name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_permissions" c:identifier="gst_rtsp_media_set_permissions">
        <doc xml:space="preserve">Set @permissions on @media.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="permissions" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPPermissions</doc>
            <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pipeline_state" c:identifier="gst_rtsp_media_set_pipeline_state">
        <doc xml:space="preserve">Set the state of the pipeline managed by @media to @state</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve">the target state of the pipeline</doc>
            <type name="Gst.State" c:type="GstState"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_profiles" c:identifier="gst_rtsp_media_set_profiles">
        <doc xml:space="preserve">Configure the allowed lower transport for @media.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="profiles" transfer-ownership="none">
            <doc xml:space="preserve">the new flags</doc>
            <type name="GstRtsp.RTSPProfile" c:type="GstRTSPProfile"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_protocols" c:identifier="gst_rtsp_media_set_protocols">
        <doc xml:space="preserve">Configure the allowed lower transport for @media.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="protocols" transfer-ownership="none">
            <doc xml:space="preserve">the new flags</doc>
            <type name="GstRtsp.RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_publish_clock_mode" c:identifier="gst_rtsp_media_set_publish_clock_mode" version="1.8">
        <doc xml:space="preserve">Sets if and how the media clock should be published according to RFC7273.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">the clock publish mode</doc>
            <type name="RTSPPublishClockMode" c:type="GstRTSPPublishClockMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rate_control" c:identifier="gst_rtsp_media_set_rate_control" version="1.18">
        <doc xml:space="preserve">Define whether @media will follow the Rate-Control=no behaviour as specified
in the ONVIF replay spec.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_retransmission_time" c:identifier="gst_rtsp_media_set_retransmission_time">
        <doc xml:space="preserve">Set the amount of time to store retransmission packets.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="time" transfer-ownership="none">
            <doc xml:space="preserve">the new value</doc>
            <type name="Gst.ClockTime" c:type="GstClockTime"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_reusable" c:identifier="gst_rtsp_media_set_reusable">
        <doc xml:space="preserve">Set or unset if the pipeline for @media can be reused after the pipeline has
been unprepared.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="reusable" transfer-ownership="none">
            <doc xml:space="preserve">the new value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_shared" c:identifier="gst_rtsp_media_set_shared">
        <doc xml:space="preserve">Set or unset if the pipeline for @media can be shared will multiple clients.
When @shared is %TRUE, client requests for this media will share the media
pipeline.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="shared" transfer-ownership="none">
            <doc xml:space="preserve">the new value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_state" c:identifier="gst_rtsp_media_set_state">
        <doc xml:space="preserve">Set the state of @media to @state and for the transports in @transports.

@media must be prepared with gst_rtsp_media_prepare();</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve">the target state of the media</doc>
            <type name="Gst.State" c:type="GstState"/>
          </parameter>
          <parameter name="transports" transfer-ownership="none">
            <doc xml:space="preserve">
a #GPtrArray of #GstRTSPStreamTransport pointers</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="RTSPStreamTransport"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="set_stop_on_disconnect" c:identifier="gst_rtsp_media_set_stop_on_disconnect">
        <doc xml:space="preserve">Set or unset if the pipeline for @media should be stopped when a
client disconnects without sending TEARDOWN.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="stop_on_disconnect" transfer-ownership="none">
            <doc xml:space="preserve">the new value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_suspend_mode" c:identifier="gst_rtsp_media_set_suspend_mode">
        <doc xml:space="preserve">Control how @ media will be suspended after the SDP has been generated and
after a PAUSE request has been performed.

Media must be unprepared when setting the suspend mode.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">the new #GstRTSPSuspendMode</doc>
            <type name="RTSPSuspendMode" c:type="GstRTSPSuspendMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_transport_mode" c:identifier="gst_rtsp_media_set_transport_mode">
        <doc xml:space="preserve">Sets if the media pipeline can work in PLAY or RECORD mode</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">the new value</doc>
            <type name="RTSPTransportMode" c:type="GstRTSPTransportMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="setup_sdp" c:identifier="gst_rtsp_media_setup_sdp">
        <doc xml:space="preserve">Add @media specific info to @sdp. @info is used to configure the connection
information in the SDP.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="sdp" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPInfo</doc>
            <type name="SDPInfo" c:type="GstSDPInfo*"/>
          </parameter>
        </parameters>
      </method>
      <method name="suspend" c:identifier="gst_rtsp_media_suspend">
        <doc xml:space="preserve">Suspend @media. The state of the pipeline managed by @media is set to
GST_STATE_NULL but all streams are kept. @media can be prepared again
with gst_rtsp_media_unsuspend()

@media must be prepared with gst_rtsp_media_prepare();</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="take_pipeline" c:identifier="gst_rtsp_media_take_pipeline">
        <doc xml:space="preserve">Set @pipeline as the #GstPipeline for @media. Ownership is
taken of @pipeline.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="pipeline" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPipeline</doc>
            <type name="Gst.Pipeline" c:type="GstPipeline*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unlock" c:identifier="gst_rtsp_media_unlock" version="1.18">
        <doc xml:space="preserve">Unlock the media.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unprepare" c:identifier="gst_rtsp_media_unprepare">
        <doc xml:space="preserve">Unprepare @media. After this call, the media should be prepared again before
it can be used again. If the media is set to be non-reusable, a new instance
must be created.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unsuspend" c:identifier="gst_rtsp_media_unsuspend">
        <doc xml:space="preserve">Unsuspend @media if it was in a suspended state. This method does nothing
when the media was not in the suspended state.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="use_time_provider" c:identifier="gst_rtsp_media_use_time_provider">
        <doc xml:space="preserve">Set @media to provide a #GstNetTimeProvider.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </instance-parameter>
          <parameter name="time_provider" transfer-ownership="none">
            <doc xml:space="preserve">if a #GstNetTimeProvider should be used</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="bind-mcast-address" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="buffer-size" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="clock" writable="1" transfer-ownership="none">
        <type name="Gst.Clock"/>
      </property>
      <property name="dscp-qos" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="element" writable="1" construct-only="1" transfer-ownership="none">
        <type name="Gst.Element"/>
      </property>
      <property name="eos-shutdown" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="latency" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="max-mcast-ttl" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="profiles" writable="1" transfer-ownership="none">
        <type name="GstRtsp.RTSPProfile"/>
      </property>
      <property name="protocols" writable="1" transfer-ownership="none">
        <type name="GstRtsp.RTSPLowerTrans"/>
      </property>
      <property name="reusable" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="shared" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="stop-on-disconnect" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="suspend-mode" writable="1" transfer-ownership="none">
        <type name="RTSPSuspendMode"/>
      </property>
      <property name="time-provider" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="transport-mode" writable="1" transfer-ownership="none">
        <type name="RTSPTransportMode"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RTSPMediaPrivate" c:type="GstRTSPMediaPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <glib:signal name="new-state" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="new-stream" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="RTSPStream"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="prepared" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="removed-stream" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="RTSPStream"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="target-state" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="unprepared" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="RTSPMediaClass" c:type="GstRTSPMediaClass" glib:is-gtype-struct-for="RTSPMedia">
      <doc xml:space="preserve">The RTSP media class</doc>
      
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="handle_message">
        <callback name="handle_message">
          
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="Gst.Message" c:type="GstMessage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="prepare">
        <callback name="prepare">
          
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE on success.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <doc xml:space="preserve">a #GstRTSPMedia</doc>
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
            <parameter name="thread" transfer-ownership="full" nullable="1" allow-none="1">
              <doc xml:space="preserve">a #GstRTSPThread to run the
  bus handler or %NULL</doc>
              <type name="RTSPThread" c:type="GstRTSPThread*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unprepare">
        <callback name="unprepare">
          
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE on success.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <doc xml:space="preserve">a #GstRTSPMedia</doc>
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="suspend">
        <callback name="suspend">
          
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE on success.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <doc xml:space="preserve">a #GstRTSPMedia</doc>
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unsuspend">
        <callback name="unsuspend">
          
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE on success.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <doc xml:space="preserve">a #GstRTSPMedia</doc>
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="convert_range">
        <callback name="convert_range">
          
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
            <parameter name="range" transfer-ownership="none">
              <type name="GstRtsp.RTSPTimeRange" c:type="GstRTSPTimeRange*"/>
            </parameter>
            <parameter name="unit" transfer-ownership="none">
              <type name="GstRtsp.RTSPRangeUnit" c:type="GstRTSPRangeUnit"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="query_position">
        <callback name="query_position">
          
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
            <parameter name="position" transfer-ownership="none">
              <type name="gint64" c:type="gint64*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="query_stop">
        <callback name="query_stop">
          
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
            <parameter name="stop" transfer-ownership="none">
              <type name="gint64" c:type="gint64*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_rtpbin" introspectable="0">
        <callback name="create_rtpbin" introspectable="0">
          
          <return-value>
            <type name="Gst.Element" c:type="GstElement*"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="setup_rtpbin">
        <callback name="setup_rtpbin">
          
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
            <parameter name="rtpbin" transfer-ownership="none">
              <type name="Gst.Element" c:type="GstElement*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="setup_sdp">
        <callback name="setup_sdp">
          
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">TRUE on success.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <doc xml:space="preserve">a #GstRTSPMedia</doc>
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
            <parameter name="sdp" transfer-ownership="none">
              <doc xml:space="preserve">a #GstSDPMessage</doc>
              <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
            </parameter>
            <parameter name="info" transfer-ownership="none">
              <doc xml:space="preserve">a #GstSDPInfo</doc>
              <type name="SDPInfo" c:type="GstSDPInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="new_stream">
        <callback name="new_stream">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
            <parameter name="stream" transfer-ownership="none">
              <type name="RTSPStream" c:type="GstRTSPStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="removed_stream">
        <callback name="removed_stream">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
            <parameter name="stream" transfer-ownership="none">
              <type name="RTSPStream" c:type="GstRTSPStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="prepared">
        <callback name="prepared">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unprepared">
        <callback name="unprepared">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="target_state">
        <callback name="target_state">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
            <parameter name="state" transfer-ownership="none">
              <type name="Gst.State" c:type="GstState"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="new_state">
        <callback name="new_state">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
            <parameter name="state" transfer-ownership="none">
              <type name="Gst.State" c:type="GstState"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="handle_sdp">
        <callback name="handle_sdp">
          
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">TRUE on success.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="media" transfer-ownership="none">
              <doc xml:space="preserve">a #GstRTSPMedia</doc>
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
            <parameter name="sdp" transfer-ownership="none">
              <doc xml:space="preserve">a #GstSDPMessage</doc>
              <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="19">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="RTSPMediaFactory" c:symbol-prefix="rtsp_media_factory" c:type="GstRTSPMediaFactory" parent="GObject.Object" glib:type-name="GstRTSPMediaFactory" glib:get-type="gst_rtsp_media_factory_get_type" glib:type-struct="RTSPMediaFactoryClass">
      <doc xml:space="preserve">The definition and logic for constructing the pipeline for a media. The media
can contain multiple streams like audio and video.</doc>
      
      <constructor name="new" c:identifier="gst_rtsp_media_factory_new">
        <doc xml:space="preserve">Create a new #GstRTSPMediaFactory instance.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPMediaFactory object.</doc>
          <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
        </return-value>
      </constructor>
      <virtual-method name="configure">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="construct" invoker="construct">
        <doc xml:space="preserve">Construct the media object and create its streams. Implementations
should create the needed gstreamer elements and add them to the result
object. No state changes should be performed on them yet.

One or more GstRTSPStream objects should be created from the result
with gst_rtsp_media_create_stream ().

After the media is constructed, it can be configured and then prepared
with gst_rtsp_media_prepare ().</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPMedia if the media could be prepared.</doc>
          <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">the url used</doc>
            <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_element" invoker="create_element">
        <doc xml:space="preserve">Construct and return a #GstElement that is a #GstBin containing
the elements to use for streaming the media.

The bin should contain payloaders pay\%d for each stream. The default
implementation of this function returns the bin created from the
launch parameter.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #GstElement.</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">the url used</doc>
            <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_pipeline" introspectable="0">
        
        <return-value>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="gen_key">
        
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="media_configure">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="media_constructed">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_role" c:identifier="gst_rtsp_media_factory_add_role" introspectable="0">
        <doc xml:space="preserve">A convenience method to add @role with @fieldname and additional arguments to
the permissions of @factory. If @factory had no permissions, new permissions
will be created and the role will be added to it.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="role" transfer-ownership="none">
            <doc xml:space="preserve">a role</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="fieldname" transfer-ownership="none">
            <doc xml:space="preserve">the first field name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve">additional arguments</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="add_role_from_structure" c:identifier="gst_rtsp_media_factory_add_role_from_structure" version="1.14">
        <doc xml:space="preserve">A convenience wrapper around gst_rtsp_permissions_add_role_from_structure().
If @factory had no permissions, new permissions will be created and the
role will be added to it.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="structure" transfer-ownership="none">
            <type name="Gst.Structure" c:type="GstStructure*"/>
          </parameter>
        </parameters>
      </method>
      <method name="construct" c:identifier="gst_rtsp_media_factory_construct">
        <doc xml:space="preserve">Construct the media object and create its streams. Implementations
should create the needed gstreamer elements and add them to the result
object. No state changes should be performed on them yet.

One or more GstRTSPStream objects should be created from the result
with gst_rtsp_media_create_stream ().

After the media is constructed, it can be configured and then prepared
with gst_rtsp_media_prepare ().</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPMedia if the media could be prepared.</doc>
          <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">the url used</doc>
            <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_element" c:identifier="gst_rtsp_media_factory_create_element">
        <doc xml:space="preserve">Construct and return a #GstElement that is a #GstBin containing
the elements to use for streaming the media.

The bin should contain payloaders pay\%d for each stream. The default
implementation of this function returns the bin created from the
launch parameter.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #GstElement.</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">the url used</doc>
            <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_address_pool" c:identifier="gst_rtsp_media_factory_get_address_pool">
        <doc xml:space="preserve">Get the #GstRTSPAddressPool used as the address pool of @factory.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GstRTSPAddressPool of @factory. g_object_unref() after
usage.</doc>
          <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_buffer_size" c:identifier="gst_rtsp_media_factory_get_buffer_size">
        <doc xml:space="preserve">Get the kernel UDP buffer size.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the kernel UDP buffer size.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_clock" c:identifier="gst_rtsp_media_factory_get_clock" version="1.8">
        <doc xml:space="preserve">Returns the clock that is going to be used by the pipelines
of all medias created from this factory.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The GstClock</doc>
          <type name="Gst.Clock" c:type="GstClock*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_do_retransmission" c:identifier="gst_rtsp_media_factory_get_do_retransmission" version="1.16">
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Whether retransmission requests will be sent for receiving media</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dscp_qos" c:identifier="gst_rtsp_media_factory_get_dscp_qos" version="1.18">
        <doc xml:space="preserve">Get the configured media DSCP QoS.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the media DSCP QoS value or -1 if disabled.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_latency" c:identifier="gst_rtsp_media_factory_get_latency">
        <doc xml:space="preserve">Get the latency that is used for receiving media</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">latency in milliseconds</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_launch" c:identifier="gst_rtsp_media_factory_get_launch">
        <doc xml:space="preserve">Get the gst_parse_launch() pipeline description that will be used in the
default prepare vmethod.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the configured launch description. g_free() after
usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_mcast_ttl" c:identifier="gst_rtsp_media_factory_get_max_mcast_ttl" version="1.16">
        <doc xml:space="preserve">Get the the maximum time-to-live value of outgoing multicast packets.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the maximum time-to-live value of outgoing multicast packets.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_media_gtype" c:identifier="gst_rtsp_media_factory_get_media_gtype" version="1.6">
        <doc xml:space="preserve">Return the GType of the GstRTSPMedia subclass this
factory will create.</doc>
        
        <return-value transfer-ownership="none">
          <type name="GType" c:type="GType"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_multicast_iface" c:identifier="gst_rtsp_media_factory_get_multicast_iface">
        <doc xml:space="preserve">Get the multicast interface used for @factory.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the multicast interface for @factory. g_free() after
usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_permissions" c:identifier="gst_rtsp_media_factory_get_permissions">
        <doc xml:space="preserve">Get the permissions object from @factory.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #GstRTSPPermissions object, unref after usage.</doc>
          <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_profiles" c:identifier="gst_rtsp_media_factory_get_profiles">
        <doc xml:space="preserve">Get the allowed profiles of @factory.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPProfile</doc>
          <type name="GstRtsp.RTSPProfile" c:type="GstRTSPProfile"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_protocols" c:identifier="gst_rtsp_media_factory_get_protocols">
        <doc xml:space="preserve">Get the allowed protocols of @factory.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPLowerTrans</doc>
          <type name="GstRtsp.RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_publish_clock_mode" c:identifier="gst_rtsp_media_factory_get_publish_clock_mode" version="1.8">
        <doc xml:space="preserve">Gets if and how the media clock should be published according to RFC7273.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The GstRTSPPublishClockMode</doc>
          <type name="RTSPPublishClockMode" c:type="GstRTSPPublishClockMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_retransmission_time" c:identifier="gst_rtsp_media_factory_get_retransmission_time">
        <doc xml:space="preserve">Get the time that is stored for retransmission purposes</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstClockTime</doc>
          <type name="Gst.ClockTime" c:type="GstClockTime"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_suspend_mode" c:identifier="gst_rtsp_media_factory_get_suspend_mode">
        <doc xml:space="preserve">Get how media created from this factory will be suspended.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPSuspendMode.</doc>
          <type name="RTSPSuspendMode" c:type="GstRTSPSuspendMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_transport_mode" c:identifier="gst_rtsp_media_factory_get_transport_mode">
        <doc xml:space="preserve">Get if media created from this factory can be used for PLAY or RECORD
methods.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The transport mode.</doc>
          <type name="RTSPTransportMode" c:type="GstRTSPTransportMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_bind_mcast_address" c:identifier="gst_rtsp_media_factory_is_bind_mcast_address" version="1.16">
        <doc xml:space="preserve">Check if multicast sockets are configured to be bound to multicast addresses.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if multicast sockets are configured to be bound to multicast addresses.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_eos_shutdown" c:identifier="gst_rtsp_media_factory_is_eos_shutdown">
        <doc xml:space="preserve">Get if media created from this factory will have an EOS event sent to the
pipeline before shutdown.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the media will receive EOS before shutdown.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_shared" c:identifier="gst_rtsp_media_factory_is_shared">
        <doc xml:space="preserve">Get if media created from this factory can be shared between clients.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the media will be shared between clients.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_stop_on_disonnect" c:identifier="gst_rtsp_media_factory_is_stop_on_disonnect">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_address_pool" c:identifier="gst_rtsp_media_factory_set_address_pool">
        <doc xml:space="preserve">configure @pool to be used as the address pool of @factory.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="pool" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPAddressPool</doc>
            <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bind_mcast_address" c:identifier="gst_rtsp_media_factory_set_bind_mcast_address" version="1.16">
        <doc xml:space="preserve">Decide whether the multicast socket should be bound to a multicast address or
INADDR_ANY.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="bind_mcast_addr" transfer-ownership="none">
            <doc xml:space="preserve">the new value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_buffer_size" c:identifier="gst_rtsp_media_factory_set_buffer_size">
        <doc xml:space="preserve">Set the kernel UDP buffer size.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the new value</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_clock" c:identifier="gst_rtsp_media_factory_set_clock" version="1.8">
        <doc xml:space="preserve">Configures a specific clock to be used by the pipelines
of all medias created from this factory.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="clock" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">the clock to be used by the media factory</doc>
            <type name="Gst.Clock" c:type="GstClock*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_do_retransmission" c:identifier="gst_rtsp_media_factory_set_do_retransmission" version="1.16">
        <doc xml:space="preserve">Set whether retransmission requests will be sent for
receiving media</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="do_retransmission" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dscp_qos" c:identifier="gst_rtsp_media_factory_set_dscp_qos" version="1.18">
        <doc xml:space="preserve">Configure the media dscp qos to @dscp_qos.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="dscp_qos" transfer-ownership="none">
            <doc xml:space="preserve">a new dscp qos value (0-63, or -1 to disable)</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_eos_shutdown" c:identifier="gst_rtsp_media_factory_set_eos_shutdown">
        <doc xml:space="preserve">Configure if media created from this factory will have an EOS sent to the
pipeline before shutdown.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="eos_shutdown" transfer-ownership="none">
            <doc xml:space="preserve">the new value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_latency" c:identifier="gst_rtsp_media_factory_set_latency">
        <doc xml:space="preserve">Configure the latency used for receiving media</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="latency" transfer-ownership="none">
            <doc xml:space="preserve">latency in milliseconds</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_launch" c:identifier="gst_rtsp_media_factory_set_launch">
        <doc xml:space="preserve">The gst_parse_launch() line to use for constructing the pipeline in the
default prepare vmethod.

The pipeline description should return a GstBin as the toplevel element
which can be accomplished by enclosing the description with brackets '('
')'.

The description should return a pipeline with payloaders named pay0, pay1,
etc.. Each of the payloaders will result in a stream.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="launch" transfer-ownership="none">
            <doc xml:space="preserve">the launch description</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_mcast_ttl" c:identifier="gst_rtsp_media_factory_set_max_mcast_ttl" version="1.16">
        <doc xml:space="preserve">Set the maximum time-to-live value of outgoing multicast packets.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the requested ttl has been set successfully.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="ttl" transfer-ownership="none">
            <doc xml:space="preserve">the new multicast ttl value</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_media_gtype" c:identifier="gst_rtsp_media_factory_set_media_gtype" version="1.6">
        <doc xml:space="preserve">Configure the GType of the GstRTSPMedia subclass to
create (by default, overridden construct vmethods
may of course do something different)</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="media_gtype" transfer-ownership="none">
            <doc xml:space="preserve">the GType of the class to create</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_multicast_iface" c:identifier="gst_rtsp_media_factory_set_multicast_iface">
        <doc xml:space="preserve">configure @multicast_iface to be used for @factory.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="multicast_iface" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a multicast interface name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_permissions" c:identifier="gst_rtsp_media_factory_set_permissions">
        <doc xml:space="preserve">Set @permissions on @factory.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="permissions" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPPermissions</doc>
            <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_profiles" c:identifier="gst_rtsp_media_factory_set_profiles">
        <doc xml:space="preserve">Configure the allowed profiles for @factory.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="profiles" transfer-ownership="none">
            <doc xml:space="preserve">the new flags</doc>
            <type name="GstRtsp.RTSPProfile" c:type="GstRTSPProfile"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_protocols" c:identifier="gst_rtsp_media_factory_set_protocols">
        <doc xml:space="preserve">Configure the allowed lower transport for @factory.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="protocols" transfer-ownership="none">
            <doc xml:space="preserve">the new flags</doc>
            <type name="GstRtsp.RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_publish_clock_mode" c:identifier="gst_rtsp_media_factory_set_publish_clock_mode" version="1.8">
        <doc xml:space="preserve">Sets if and how the media clock should be published according to RFC7273.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">the clock publish mode</doc>
            <type name="RTSPPublishClockMode" c:type="GstRTSPPublishClockMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_retransmission_time" c:identifier="gst_rtsp_media_factory_set_retransmission_time">
        <doc xml:space="preserve">Configure the time to store for possible retransmission</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="time" transfer-ownership="none">
            <doc xml:space="preserve">a #GstClockTime</doc>
            <type name="Gst.ClockTime" c:type="GstClockTime"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_shared" c:identifier="gst_rtsp_media_factory_set_shared">
        <doc xml:space="preserve">Configure if media created from this factory can be shared between clients.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="shared" transfer-ownership="none">
            <doc xml:space="preserve">the new value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stop_on_disconnect" c:identifier="gst_rtsp_media_factory_set_stop_on_disconnect">
        <doc xml:space="preserve">Configure if media created from this factory should be stopped
when a client disconnects without sending TEARDOWN.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="stop_on_disconnect" transfer-ownership="none">
            <doc xml:space="preserve">the new value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_suspend_mode" c:identifier="gst_rtsp_media_factory_set_suspend_mode">
        <doc xml:space="preserve">Configure how media created from this factory will be suspended.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">the new #GstRTSPSuspendMode</doc>
            <type name="RTSPSuspendMode" c:type="GstRTSPSuspendMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_transport_mode" c:identifier="gst_rtsp_media_factory_set_transport_mode">
        <doc xml:space="preserve">Configure if this factory creates media for PLAY or RECORD modes.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">the new value</doc>
            <type name="RTSPTransportMode" c:type="GstRTSPTransportMode"/>
          </parameter>
        </parameters>
      </method>
      <property name="bind-mcast-address" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="buffer-size" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="clock" writable="1" transfer-ownership="none">
        <type name="Gst.Clock"/>
      </property>
      <property name="dscp-qos" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="eos-shutdown" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="latency" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="launch" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="max-mcast-ttl" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="profiles" writable="1" transfer-ownership="none">
        <type name="GstRtsp.RTSPProfile"/>
      </property>
      <property name="protocols" writable="1" transfer-ownership="none">
        <type name="GstRtsp.RTSPLowerTrans"/>
      </property>
      <property name="shared" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="stop-on-disconnect" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="suspend-mode" writable="1" transfer-ownership="none">
        <type name="RTSPSuspendMode"/>
      </property>
      <property name="transport-mode" writable="1" transfer-ownership="none">
        <type name="RTSPTransportMode"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RTSPMediaFactoryPrivate" c:type="GstRTSPMediaFactoryPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <glib:signal name="media-configure" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="RTSPMedia"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="media-constructed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="RTSPMedia"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="RTSPMediaFactoryClass" c:type="GstRTSPMediaFactoryClass" glib:is-gtype-struct-for="RTSPMediaFactory">
      <doc xml:space="preserve">The #GstRTSPMediaFactory class structure.</doc>
      
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="gen_key">
        <callback name="gen_key">
          
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="factory" transfer-ownership="none">
              <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
            </parameter>
            <parameter name="url" transfer-ownership="none">
              <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_element">
        <callback name="create_element">
          
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">a new #GstElement.</doc>
            <type name="Gst.Element" c:type="GstElement*"/>
          </return-value>
          <parameters>
            <parameter name="factory" transfer-ownership="none">
              <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
              <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
            </parameter>
            <parameter name="url" transfer-ownership="none">
              <doc xml:space="preserve">the url used</doc>
              <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="construct">
        <callback name="construct">
          
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">a new #GstRTSPMedia if the media could be prepared.</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </return-value>
          <parameters>
            <parameter name="factory" transfer-ownership="none">
              <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
              <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
            </parameter>
            <parameter name="url" transfer-ownership="none">
              <doc xml:space="preserve">the url used</doc>
              <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_pipeline" introspectable="0">
        <callback name="create_pipeline" introspectable="0">
          
          <return-value>
            <type name="Gst.Element" c:type="GstElement*"/>
          </return-value>
          <parameters>
            <parameter name="factory" transfer-ownership="none">
              <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
            </parameter>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="configure">
        <callback name="configure">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="factory" transfer-ownership="none">
              <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
            </parameter>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="media_constructed">
        <callback name="media_constructed">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="factory" transfer-ownership="none">
              <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
            </parameter>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="media_configure">
        <callback name="media_configure">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="factory" transfer-ownership="none">
              <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
            </parameter>
            <parameter name="media" transfer-ownership="none">
              <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="RTSPMediaFactoryPrivate" c:type="GstRTSPMediaFactoryPrivate" disguised="1">
      
    </record>
    <class name="RTSPMediaFactoryURI" c:symbol-prefix="rtsp_media_factory_uri" c:type="GstRTSPMediaFactoryURI" parent="RTSPMediaFactory" glib:type-name="GstRTSPMediaFactoryURI" glib:get-type="gst_rtsp_media_factory_uri_get_type" glib:type-struct="RTSPMediaFactoryURIClass">
      <doc xml:space="preserve">A media factory that creates a pipeline to play any uri.</doc>
      
      <constructor name="new" c:identifier="gst_rtsp_media_factory_uri_new">
        <doc xml:space="preserve">Create a new #GstRTSPMediaFactoryURI instance.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPMediaFactoryURI object.</doc>
          <type name="RTSPMediaFactoryURI" c:type="GstRTSPMediaFactoryURI*"/>
        </return-value>
      </constructor>
      <method name="get_uri" c:identifier="gst_rtsp_media_factory_uri_get_uri">
        <doc xml:space="preserve">Get the URI that will provide media for this factory.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the configured URI. g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactoryURI" c:type="GstRTSPMediaFactoryURI*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_uri" c:identifier="gst_rtsp_media_factory_uri_set_uri">
        <doc xml:space="preserve">Set the URI of the resource that will be streamed by this factory.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactoryURI" c:type="GstRTSPMediaFactoryURI*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the uri the stream</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="uri" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="use-gstpay" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RTSPMediaFactoryURIPrivate" c:type="GstRTSPMediaFactoryURIPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="RTSPMediaFactoryURIClass" c:type="GstRTSPMediaFactoryURIClass" glib:is-gtype-struct-for="RTSPMediaFactoryURI">
      <doc xml:space="preserve">The #GstRTSPMediaFactoryURI class structure.</doc>
      
      <field name="parent_class">
        <type name="RTSPMediaFactoryClass" c:type="GstRTSPMediaFactoryClass"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="RTSPMediaFactoryURIPrivate" c:type="GstRTSPMediaFactoryURIPrivate" disguised="1">
      
    </record>
    <record name="RTSPMediaPrivate" c:type="GstRTSPMediaPrivate" disguised="1">
      
    </record>
    <enumeration name="RTSPMediaStatus" c:type="GstRTSPMediaStatus">
      <doc xml:space="preserve">The state of the media pipeline.</doc>
      
      <member name="unprepared" value="0" c:identifier="GST_RTSP_MEDIA_STATUS_UNPREPARED">
        <doc xml:space="preserve">media pipeline not prerolled</doc>
      </member>
      <member name="unpreparing" value="1" c:identifier="GST_RTSP_MEDIA_STATUS_UNPREPARING">
        <doc xml:space="preserve">media pipeline is busy doing a clean
                                    shutdown.</doc>
      </member>
      <member name="preparing" value="2" c:identifier="GST_RTSP_MEDIA_STATUS_PREPARING">
        <doc xml:space="preserve">media pipeline is prerolling</doc>
      </member>
      <member name="prepared" value="3" c:identifier="GST_RTSP_MEDIA_STATUS_PREPARED">
        <doc xml:space="preserve">media pipeline is prerolled</doc>
      </member>
      <member name="suspended" value="4" c:identifier="GST_RTSP_MEDIA_STATUS_SUSPENDED">
        <doc xml:space="preserve">media is suspended</doc>
      </member>
      <member name="error" value="5" c:identifier="GST_RTSP_MEDIA_STATUS_ERROR">
        <doc xml:space="preserve">media pipeline is in error</doc>
      </member>
    </enumeration>
    <callback name="RTSPMessageSentFunc" c:type="GstRTSPMessageSentFunc">
      <doc xml:space="preserve">Function registered with gst_rtsp_stream_transport_set_message_sent()
and called when a message has been sent on the transport.</doc>
      
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="0">
          <doc xml:space="preserve">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="RTSPMessageSentFuncFull" c:type="GstRTSPMessageSentFuncFull" version="1.18">
      <doc xml:space="preserve">Function registered with gst_rtsp_stream_transport_set_message_sent_full()
and called when a message has been sent on the transport.</doc>
      
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="trans" transfer-ownership="none">
          <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
          <doc xml:space="preserve">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="RTSPMountPoints" c:symbol-prefix="rtsp_mount_points" c:type="GstRTSPMountPoints" parent="GObject.Object" glib:type-name="GstRTSPMountPoints" glib:get-type="gst_rtsp_mount_points_get_type" glib:type-struct="RTSPMountPointsClass">
      <doc xml:space="preserve">Creates a #GstRTSPMediaFactory object for a given url.</doc>
      
      <constructor name="new" c:identifier="gst_rtsp_mount_points_new">
        <doc xml:space="preserve">Make a new mount points object.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPMountPoints</doc>
          <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/>
        </return-value>
      </constructor>
      <virtual-method name="make_path" invoker="make_path">
        <doc xml:space="preserve">Make a path string from @url.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a path string for @url, g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mounts" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMountPoints</doc>
            <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPUrl</doc>
            <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_factory" c:identifier="gst_rtsp_mount_points_add_factory">
        <doc xml:space="preserve">Attach @factory to the mount point @path in @mounts.

@path is of the form (/node)+. Any previous mount point will be freed.

Ownership is taken of the reference on @factory so that @factory should not be
used after calling this function.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mounts" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMountPoints</doc>
            <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve">a mount point</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="factory" transfer-ownership="full">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </parameter>
        </parameters>
      </method>
      <method name="make_path" c:identifier="gst_rtsp_mount_points_make_path">
        <doc xml:space="preserve">Make a path string from @url.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a path string for @url, g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mounts" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMountPoints</doc>
            <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPUrl</doc>
            <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/>
          </parameter>
        </parameters>
      </method>
      <method name="match" c:identifier="gst_rtsp_mount_points_match">
        <doc xml:space="preserve">Find the factory in @mounts that has the longest match with @path.

If @matched is %NULL, @path will match the factory exactly otherwise
the amount of characters that matched is returned in @matched.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the #GstRTSPMediaFactory for @path.
g_object_unref() after usage.</doc>
          <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mounts" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMountPoints</doc>
            <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve">a mount point</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="matched" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
            <doc xml:space="preserve">the amount of @path matched</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_factory" c:identifier="gst_rtsp_mount_points_remove_factory">
        <doc xml:space="preserve">Remove the #GstRTSPMediaFactory associated with @path in @mounts.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mounts" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMountPoints</doc>
            <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve">a mount point</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RTSPMountPointsPrivate" c:type="GstRTSPMountPointsPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="RTSPMountPointsClass" c:type="GstRTSPMountPointsClass" glib:is-gtype-struct-for="RTSPMountPoints">
      <doc xml:space="preserve">The class for the media mounts object.</doc>
      
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="make_path">
        <callback name="make_path">
          
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve">a path string for @url, g_free() after usage.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="mounts" transfer-ownership="none">
              <doc xml:space="preserve">a #GstRTSPMountPoints</doc>
              <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/>
            </parameter>
            <parameter name="url" transfer-ownership="none">
              <doc xml:space="preserve">a #GstRTSPUrl</doc>
              <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="RTSPMountPointsPrivate" c:type="GstRTSPMountPointsPrivate" disguised="1">
      
    </record>
    <class name="RTSPOnvifClient" c:symbol-prefix="rtsp_onvif_client" c:type="GstRTSPOnvifClient" version="1.14" parent="RTSPClient" glib:type-name="GstRTSPOnvifClient" glib:get-type="gst_rtsp_onvif_client_get_type" glib:type-struct="RTSPOnvifClientClass">
      
      <constructor name="new" c:identifier="gst_rtsp_onvif_client_new" version="1.18">
        <doc xml:space="preserve">Create a new #GstRTSPOnvifClient instance.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPOnvifClient</doc>
          <type name="RTSPClient" c:type="GstRTSPClient*"/>
        </return-value>
      </constructor>
      <field name="parent">
        <type name="RTSPClient" c:type="GstRTSPClient"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="RTSPOnvifClientClass" c:type="GstRTSPOnvifClientClass" glib:is-gtype-struct-for="RTSPOnvifClient">
      
      <field name="parent">
        <type name="RTSPClientClass" c:type="GstRTSPClientClass"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="RTSPOnvifMedia" c:symbol-prefix="rtsp_onvif_media" c:type="GstRTSPOnvifMedia" version="1.14" parent="RTSPMedia" glib:type-name="GstRTSPOnvifMedia" glib:get-type="gst_rtsp_onvif_media_get_type" glib:type-struct="RTSPOnvifMediaClass">
      
      <method name="collect_backchannel" c:identifier="gst_rtsp_onvif_media_collect_backchannel" version="1.14">
        <doc xml:space="preserve">Find the ONVIF backchannel depayloader element. It should be named
'depay_backchannel', be placed in a bin called 'onvif-backchannel'
and return all supported RTP caps on a caps query. Complete RTP caps with
at least the payload type, clock-rate and encoding-name are required.

A new #GstRTSPStream is created for the backchannel if found.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if a backchannel stream could be found and created</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPOnvifMedia</doc>
            <type name="RTSPOnvifMedia" c:type="GstRTSPOnvifMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_backchannel_bandwidth" c:identifier="gst_rtsp_onvif_media_get_backchannel_bandwidth" version="1.14">
        <doc xml:space="preserve">Get the configured/supported bandwidth of the ONVIF backchannel pipeline in
bits per second.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the configured/supported backchannel bandwidth.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPOnvifMedia" c:type="GstRTSPOnvifMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_backchannel_bandwidth" c:identifier="gst_rtsp_onvif_media_set_backchannel_bandwidth" version="1.14">
        <doc xml:space="preserve">Set the configured/supported bandwidth of the ONVIF backchannel pipeline in
bits per second.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPOnvifMedia" c:type="GstRTSPOnvifMedia*"/>
          </instance-parameter>
          <parameter name="bandwidth" transfer-ownership="none">
            <doc xml:space="preserve">the bandwidth in bits per second</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="RTSPMedia" c:type="GstRTSPMedia"/>
      </field>
      <field name="priv">
        <type name="RTSPOnvifMediaPrivate" c:type="GstRTSPOnvifMediaPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="RTSPOnvifMediaClass" c:type="GstRTSPOnvifMediaClass" glib:is-gtype-struct-for="RTSPOnvifMedia">
      
      <field name="parent">
        <type name="RTSPMediaClass" c:type="GstRTSPMediaClass"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="RTSPOnvifMediaFactory" c:symbol-prefix="rtsp_onvif_media_factory" c:type="GstRTSPOnvifMediaFactory" version="1.14" parent="RTSPMediaFactory" glib:type-name="GstRTSPOnvifMediaFactory" glib:get-type="gst_rtsp_onvif_media_factory_get_type" glib:type-struct="RTSPOnvifMediaFactoryClass">
      
      <constructor name="new" c:identifier="gst_rtsp_onvif_media_factory_new" version="1.14">
        <doc xml:space="preserve">Create a new #GstRTSPOnvifMediaFactory</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GstRTSPOnvifMediaFactory</doc>
          <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
        </return-value>
      </constructor>
      <function name="requires_backchannel" c:identifier="gst_rtsp_onvif_media_factory_requires_backchannel" version="1.14">
        <doc xml:space="preserve">Checks whether the client request requires backchannel.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the client request requires backchannel.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory*"/>
          </parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="has_backchannel_support" invoker="has_backchannel_support" version="1.14">
        <doc xml:space="preserve">Returns %TRUE if an ONVIF backchannel is supported by the media factory.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if an ONVIF backchannel is supported by the media factory.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_backchannel_bandwidth" c:identifier="gst_rtsp_onvif_media_factory_get_backchannel_bandwidth" version="1.14">
        <doc xml:space="preserve">Get the configured/supported bandwidth of the ONVIF backchannel pipeline in
bits per second.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the configured/supported backchannel bandwidth.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_backchannel_launch" c:identifier="gst_rtsp_onvif_media_factory_get_backchannel_launch" version="1.14">
        <doc xml:space="preserve">Get the gst_parse_launch() pipeline description that will be used in the
default prepare vmethod for generating the ONVIF backchannel pipeline.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the configured backchannel launch description. g_free() after
usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_backchannel_support" c:identifier="gst_rtsp_onvif_media_factory_has_backchannel_support" version="1.14">
        <doc xml:space="preserve">Returns %TRUE if an ONVIF backchannel is supported by the media factory.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if an ONVIF backchannel is supported by the media factory.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_replay_support" c:identifier="gst_rtsp_onvif_media_factory_has_replay_support" version="1.18">
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if ONVIF replay is supported by the media factory.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_backchannel_bandwidth" c:identifier="gst_rtsp_onvif_media_factory_set_backchannel_bandwidth" version="1.14">
        <doc xml:space="preserve">Set the configured/supported bandwidth of the ONVIF backchannel pipeline in
bits per second.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/>
          </instance-parameter>
          <parameter name="bandwidth" transfer-ownership="none">
            <doc xml:space="preserve">the bandwidth in bits per second</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_backchannel_launch" c:identifier="gst_rtsp_onvif_media_factory_set_backchannel_launch" version="1.14">
        <doc xml:space="preserve">The gst_parse_launch() line to use for constructing the ONVIF backchannel
pipeline in the default prepare vmethod if requested by the client.

The pipeline description should return a GstBin as the toplevel element
which can be accomplished by enclosing the description with brackets '('
')'.

The description should return a pipeline with a single depayloader named
depay_backchannel. A caps query on the depayloader's sinkpad should return
all possible, complete RTP caps that are going to be supported. At least
the payload type, clock-rate and encoding-name need to be specified.

Note: The pipeline part passed here must end in sinks that are not waiting
until pre-rolling before reaching the PAUSED state, i.e. setting
async=false on #GstBaseSink. Otherwise the whole media will not be able to
prepare.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
            <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/>
          </instance-parameter>
          <parameter name="launch" transfer-ownership="none">
            <doc xml:space="preserve">the launch description</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_replay_support" c:identifier="gst_rtsp_onvif_media_factory_set_replay_support" version="1.18">
        <doc xml:space="preserve">Set to %TRUE if ONVIF replay is supported by the media factory.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/>
          </instance-parameter>
          <parameter name="has_replay_support" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="RTSPMediaFactory" c:type="GstRTSPMediaFactory"/>
      </field>
      <field name="priv">
        <type name="RTSPOnvifMediaFactoryPrivate" c:type="GstRTSPOnvifMediaFactoryPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="RTSPOnvifMediaFactoryClass" c:type="GstRTSPOnvifMediaFactoryClass" glib:is-gtype-struct-for="RTSPOnvifMediaFactory">
      
      <field name="parent">
        <type name="RTSPMediaFactoryClass" c:type="GstRTSPMediaFactoryClass"/>
      </field>
      <field name="has_backchannel_support">
        <callback name="has_backchannel_support">
          
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if an ONVIF backchannel is supported by the media factory.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="factory" transfer-ownership="none">
              <doc xml:space="preserve">a #GstRTSPMediaFactory</doc>
              <type name="RTSPOnvifMediaFactory" c:type="GstRTSPOnvifMediaFactory*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="RTSPOnvifMediaFactoryPrivate" c:type="GstRTSPOnvifMediaFactoryPrivate" disguised="1">
      
    </record>
    <record name="RTSPOnvifMediaPrivate" c:type="GstRTSPOnvifMediaPrivate" disguised="1">
      
    </record>
    <class name="RTSPOnvifServer" c:symbol-prefix="rtsp_onvif_server" c:type="GstRTSPOnvifServer" version="1.14" parent="RTSPServer" glib:type-name="GstRTSPOnvifServer" glib:get-type="gst_rtsp_onvif_server_get_type" glib:type-struct="RTSPOnvifServerClass">
      
      <constructor name="new" c:identifier="gst_rtsp_onvif_server_new">
        <doc xml:space="preserve">Create a new #GstRTSPOnvifServer instance.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPOnvifServer</doc>
          <type name="RTSPServer" c:type="GstRTSPServer*"/>
        </return-value>
      </constructor>
      <field name="parent">
        <type name="RTSPServer" c:type="GstRTSPServer"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="RTSPOnvifServerClass" c:type="GstRTSPOnvifServerClass" glib:is-gtype-struct-for="RTSPOnvifServer">
      
      <field name="parent">
        <type name="RTSPServerClass" c:type="GstRTSPServerClass"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="RTSPPermissions" c:type="GstRTSPPermissions" glib:type-name="GstRTSPPermissions" glib:get-type="gst_rtsp_permissions_get_type" c:symbol-prefix="rtsp_permissions">
      <doc xml:space="preserve">The opaque permissions structure. It is used to define the permissions
of objects in different roles.</doc>
      
      <field name="mini_object" writable="1">
        <type name="Gst.MiniObject" c:type="GstMiniObject"/>
      </field>
      <constructor name="new" c:identifier="gst_rtsp_permissions_new">
        <doc xml:space="preserve">Create a new empty Authorization permissions.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new empty authorization permissions.</doc>
          <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/>
        </return-value>
      </constructor>
      <method name="add_permission_for_role" c:identifier="gst_rtsp_permissions_add_permission_for_role" version="1.14">
        <doc xml:space="preserve">Add a new @permission for @role to @permissions with the access in @allowed.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="permissions" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPPermissions</doc>
            <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/>
          </instance-parameter>
          <parameter name="role" transfer-ownership="none">
            <doc xml:space="preserve">a role</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="permission" transfer-ownership="none">
            <doc xml:space="preserve">the permission</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="allowed" transfer-ownership="none">
            <doc xml:space="preserve">whether the role has this permission or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_role" c:identifier="gst_rtsp_permissions_add_role" shadowed-by="add_role_empty" introspectable="0">
        <doc xml:space="preserve">Add a new @role to @permissions with the given variables. The fields
are the same layout as gst_structure_new().</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="permissions" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPPermissions</doc>
            <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/>
          </instance-parameter>
          <parameter name="role" transfer-ownership="none">
            <doc xml:space="preserve">a role</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="fieldname" transfer-ownership="none">
            <doc xml:space="preserve">the first field name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve">additional arguments</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="add_role_empty" c:identifier="gst_rtsp_permissions_add_role_empty" shadows="add_role" version="1.14">
        <doc xml:space="preserve">Add a new @role to @permissions without any permissions. You can add
permissions for the role with gst_rtsp_permissions_add_permission_for_role().</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="permissions" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPPermissions</doc>
            <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/>
          </instance-parameter>
          <parameter name="role" transfer-ownership="none">
            <doc xml:space="preserve">a role</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_role_from_structure" c:identifier="gst_rtsp_permissions_add_role_from_structure" version="1.14">
        <doc xml:space="preserve">Add a new role to @permissions based on @structure, for example
given a role named `tester`, which should be granted a permission named
`permission1`, the structure could be created with:

```
gst_structure_new ("tester", "permission1", G_TYPE_BOOLEAN, TRUE, NULL);
```</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="permissions" transfer-ownership="none">
            <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/>
          </instance-parameter>
          <parameter name="structure" transfer-ownership="none">
            <type name="Gst.Structure" c:type="GstStructure*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_role_valist" c:identifier="gst_rtsp_permissions_add_role_valist" introspectable="0">
        <doc xml:space="preserve">Add a new @role to @permissions with the given variables. Structure fields
are set according to the varargs in a manner similar to gst_structure_new().</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="permissions" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPPermissions</doc>
            <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/>
          </instance-parameter>
          <parameter name="role" transfer-ownership="none">
            <doc xml:space="preserve">a role</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="fieldname" transfer-ownership="none">
            <doc xml:space="preserve">the first field name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="var_args" transfer-ownership="none">
            <doc xml:space="preserve">additional fields to add</doc>
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_role" c:identifier="gst_rtsp_permissions_get_role">
        <doc xml:space="preserve">Get all permissions for @role in @permissions.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the structure with permissions for @role. It
remains valid for as long as @permissions is valid.</doc>
          <type name="Gst.Structure" c:type="const GstStructure*"/>
        </return-value>
        <parameters>
          <instance-parameter name="permissions" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPPermissions</doc>
            <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/>
          </instance-parameter>
          <parameter name="role" transfer-ownership="none">
            <doc xml:space="preserve">a role</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_allowed" c:identifier="gst_rtsp_permissions_is_allowed">
        <doc xml:space="preserve">Check if @role in @permissions is given permission for @permission.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @role is allowed @permission.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="permissions" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPPermissions</doc>
            <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/>
          </instance-parameter>
          <parameter name="role" transfer-ownership="none">
            <doc xml:space="preserve">a role</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="permission" transfer-ownership="none">
            <doc xml:space="preserve">a permission</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_role" c:identifier="gst_rtsp_permissions_remove_role">
        <doc xml:space="preserve">Remove all permissions for @role in @permissions.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="permissions" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPPermissions</doc>
            <type name="RTSPPermissions" c:type="GstRTSPPermissions*"/>
          </instance-parameter>
          <parameter name="role" transfer-ownership="none">
            <doc xml:space="preserve">a role</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="RTSPPublishClockMode" glib:type-name="GstRTSPPublishClockMode" glib:get-type="gst_rtsp_publish_clock_mode_get_type" c:type="GstRTSPPublishClockMode">
      <doc xml:space="preserve">Whether the clock and possibly RTP/clock offset should be published according to RFC7273.</doc>
      <member name="none" value="0" c:identifier="GST_RTSP_PUBLISH_CLOCK_MODE_NONE" glib:nick="none">
        <doc xml:space="preserve">Publish nothing</doc>
      </member>
      <member name="clock" value="1" c:identifier="GST_RTSP_PUBLISH_CLOCK_MODE_CLOCK" glib:nick="clock">
        <doc xml:space="preserve">Publish the clock but not the offset</doc>
      </member>
      <member name="clock_and_offset" value="2" c:identifier="GST_RTSP_PUBLISH_CLOCK_MODE_CLOCK_AND_OFFSET" glib:nick="clock-and-offset">
        <doc xml:space="preserve">Publish the clock and offset</doc>
      </member>
    </enumeration>
    <callback name="RTSPSendFunc" c:type="GstRTSPSendFunc">
      <doc xml:space="preserve">Function registered with gst_rtsp_stream_transport_set_callbacks() and
called when @buffer must be sent on @channel.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE on success</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="buffer" transfer-ownership="none">
          <doc xml:space="preserve">a #GstBuffer</doc>
          <type name="Gst.Buffer" c:type="GstBuffer*"/>
        </parameter>
        <parameter name="channel" transfer-ownership="none">
          <doc xml:space="preserve">a channel</doc>
          <type name="guint8" c:type="guint8"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2">
          <doc xml:space="preserve">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="RTSPSendListFunc" c:type="GstRTSPSendListFunc" version="1.16">
      <doc xml:space="preserve">Function registered with gst_rtsp_stream_transport_set_callbacks() and
called when @buffer_list must be sent on @channel.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE on success</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="buffer_list" transfer-ownership="none">
          <doc xml:space="preserve">a #GstBufferList</doc>
          <type name="Gst.BufferList" c:type="GstBufferList*"/>
        </parameter>
        <parameter name="channel" transfer-ownership="none">
          <doc xml:space="preserve">a channel</doc>
          <type name="guint8" c:type="guint8"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2">
          <doc xml:space="preserve">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="RTSPServer" c:symbol-prefix="rtsp_server" c:type="GstRTSPServer" parent="GObject.Object" glib:type-name="GstRTSPServer" glib:get-type="gst_rtsp_server_get_type" glib:type-struct="RTSPServerClass">
      <doc xml:space="preserve">This object listens on a port, creates and manages the clients connected to
it.</doc>
      
      <constructor name="new" c:identifier="gst_rtsp_server_new">
        <doc xml:space="preserve">Create a new #GstRTSPServer instance.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPServer</doc>
          <type name="RTSPServer" c:type="GstRTSPServer*"/>
        </return-value>
      </constructor>
      <function name="io_func" c:identifier="gst_rtsp_server_io_func">
        <doc xml:space="preserve">A default #GSocketSourceFunc that creates a new #GstRTSPClient to accept and handle a
new connection on @socket or @server.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if the source could be connected, FALSE if an error occurred.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="socket" transfer-ownership="none">
            <doc xml:space="preserve">a #GSocket</doc>
            <type name="Gio.Socket" c:type="GSocket*"/>
          </parameter>
          <parameter name="condition" transfer-ownership="none">
            <doc xml:space="preserve">the condition on @source</doc>
            <type name="GLib.IOCondition" c:type="GIOCondition"/>
          </parameter>
          <parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="client_connected">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
          <parameter name="client" transfer-ownership="none">
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_client" introspectable="0">
        
        <return-value>
          <type name="RTSPClient" c:type="GstRTSPClient*"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="attach" c:identifier="gst_rtsp_server_attach">
        <doc xml:space="preserve">Attaches @server to @context. When the mainloop for @context is run, the
server will be dispatched. When @context is %NULL, the default context will be
used).

This function should be called when the server properties and urls are fully
configured and the server is ready to start.

This takes a reference on @server until the source is destroyed. Note that
if @context is not the default main context as returned by
g_main_context_default() (or %NULL), g_source_remove() cannot be used to
destroy the source. In that case it is recommended to use
gst_rtsp_server_create_source() and attach it to @context manually.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the ID (greater than 0) for the source within the GMainContext.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GMainContext</doc>
            <type name="GLib.MainContext" c:type="GMainContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="client_filter" c:identifier="gst_rtsp_server_client_filter">
        <doc xml:space="preserve">Call @func for each client managed by @server. The result value of @func
determines what happens to the client. @func will be called with @server
locked so no further actions on @server can be performed from @func.

If @func returns #GST_RTSP_FILTER_REMOVE, the client will be removed from
@server.

If @func returns #GST_RTSP_FILTER_KEEP, the client will remain in @server.

If @func returns #GST_RTSP_FILTER_REF, the client will remain in @server but
will also be added with an additional ref to the result #GList of this
function..

When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for each client.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GList with all
clients for which @func returned #GST_RTSP_FILTER_REF. After usage, each
element in the #GList should be unreffed before the list is freed.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="RTSPClient"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
          <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="call" closure="1">
            <doc xml:space="preserve">a callback</doc>
            <type name="RTSPServerClientFilterFunc" c:type="GstRTSPServerClientFilterFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">user data passed to @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_socket" c:identifier="gst_rtsp_server_create_socket" throws="1">
        <doc xml:space="preserve">Create a #GSocket for @server. The socket will listen on the
configured service.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the #GSocket for @server or %NULL when an error
occurred.</doc>
          <type name="Gio.Socket" c:type="GSocket*"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
          <parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_source" c:identifier="gst_rtsp_server_create_source" throws="1">
        <doc xml:space="preserve">Create a #GSource for @server. The new source will have a default
#GSocketSourceFunc of gst_rtsp_server_io_func().

@cancellable if not %NULL can be used to cancel the source, which will cause
the source to trigger, reporting the current condition (which is likely 0
unless cancellation happened at the same time as a condition change). You can
check for this in the callback using g_cancellable_is_cancelled().

This takes a reference on @server until @source is destroyed.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the #GSource for @server or %NULL when an error
occurred. Free with g_source_unref ()</doc>
          <type name="GLib.Source" c:type="GSource*"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
          <parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_address" c:identifier="gst_rtsp_server_get_address">
        <doc xml:space="preserve">Get the address on which the server will accept connections.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the server address. g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_auth" c:identifier="gst_rtsp_server_get_auth">
        <doc xml:space="preserve">Get the #GstRTSPAuth used as the authentication manager of @server.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GstRTSPAuth of @server. g_object_unref() after
usage.</doc>
          <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_backlog" c:identifier="gst_rtsp_server_get_backlog">
        <doc xml:space="preserve">The maximum amount of queued requests for the server.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the server backlog.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bound_port" c:identifier="gst_rtsp_server_get_bound_port">
        <doc xml:space="preserve">Get the port number where the server was bound to.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the port number</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_content_length_limit" c:identifier="gst_rtsp_server_get_content_length_limit" version="1.18">
        <doc xml:space="preserve">Get the Content-Length limit of @server.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the Content-Length limit.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mount_points" c:identifier="gst_rtsp_server_get_mount_points">
        <doc xml:space="preserve">Get the #GstRTSPMountPoints used as the mount points of @server.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GstRTSPMountPoints of @server. g_object_unref() after
usage.</doc>
          <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_service" c:identifier="gst_rtsp_server_get_service">
        <doc xml:space="preserve">Get the service on which the server will accept connections.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the service. use g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_session_pool" c:identifier="gst_rtsp_server_get_session_pool">
        <doc xml:space="preserve">Get the #GstRTSPSessionPool used as the session pool of @server.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GstRTSPSessionPool used for sessions. g_object_unref() after
usage.</doc>
          <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_thread_pool" c:identifier="gst_rtsp_server_get_thread_pool">
        <doc xml:space="preserve">Get the #GstRTSPThreadPool used as the thread pool of @server.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GstRTSPThreadPool of @server. g_object_unref() after
usage.</doc>
          <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_address" c:identifier="gst_rtsp_server_set_address">
        <doc xml:space="preserve">Configure @server to accept connections on the given address.

This function must be called before the server is bound.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
          <parameter name="address" transfer-ownership="none">
            <doc xml:space="preserve">the address</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_auth" c:identifier="gst_rtsp_server_set_auth">
        <doc xml:space="preserve">configure @auth to be used as the authentication manager of @server.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
          <parameter name="auth" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPAuth</doc>
            <type name="RTSPAuth" c:type="GstRTSPAuth*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_backlog" c:identifier="gst_rtsp_server_set_backlog">
        <doc xml:space="preserve">configure the maximum amount of requests that may be queued for the
server.

This function must be called before the server is bound.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
          <parameter name="backlog" transfer-ownership="none">
            <doc xml:space="preserve">the backlog</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content_length_limit" c:identifier="gst_rtsp_server_set_content_length_limit" version="1.18">
        <doc xml:space="preserve">Define an appropriate request size limit and reject requests exceeding the
limit.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer
Configure @server to use the specified Content-Length limit.</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
          <parameter name="limit" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mount_points" c:identifier="gst_rtsp_server_set_mount_points">
        <doc xml:space="preserve">configure @mounts to be used as the mount points of @server.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
          <parameter name="mounts" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPMountPoints</doc>
            <type name="RTSPMountPoints" c:type="GstRTSPMountPoints*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_service" c:identifier="gst_rtsp_server_set_service">
        <doc xml:space="preserve">Configure @server to accept connections on the given service.
@service should be a string containing the service name (see services(5)) or
a string containing a port number between 1 and 65535.

When @service is set to "0", the server will listen on a random free
port. The actual used port can be retrieved with
gst_rtsp_server_get_bound_port().

This function must be called before the server is bound.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
          <parameter name="service" transfer-ownership="none">
            <doc xml:space="preserve">the service</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_session_pool" c:identifier="gst_rtsp_server_set_session_pool">
        <doc xml:space="preserve">configure @pool to be used as the session pool of @server.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
          <parameter name="pool" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPSessionPool</doc>
            <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_thread_pool" c:identifier="gst_rtsp_server_set_thread_pool">
        <doc xml:space="preserve">configure @pool to be used as the thread pool of @server.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
          <parameter name="pool" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPThreadPool</doc>
            <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/>
          </parameter>
        </parameters>
      </method>
      <method name="transfer_connection" c:identifier="gst_rtsp_server_transfer_connection">
        <doc xml:space="preserve">Take an existing network socket and use it for an RTSP connection. This
is used when transferring a socket from an HTTP server which should be used
as an RTSP over HTTP tunnel. The @initial_buffer contains any remaining data
that the HTTP server read from the socket while parsing the HTTP header.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if all was ok, FALSE if an error occurred.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="server" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPServer</doc>
            <type name="RTSPServer" c:type="GstRTSPServer*"/>
          </instance-parameter>
          <parameter name="socket" transfer-ownership="full">
            <doc xml:space="preserve">a network socket</doc>
            <type name="Gio.Socket" c:type="GSocket*"/>
          </parameter>
          <parameter name="ip" transfer-ownership="none">
            <doc xml:space="preserve">the IP address of the remote client</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="port" transfer-ownership="none">
            <doc xml:space="preserve">the port used by the other end</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="initial_buffer" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">any initial data that was already read from the socket</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="address" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="backlog" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="bound-port" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="content-length-limit" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="mount-points" writable="1" transfer-ownership="none">
        <type name="RTSPMountPoints"/>
      </property>
      <property name="service" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="session-pool" writable="1" transfer-ownership="none">
        <type name="RTSPSessionPool"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RTSPServerPrivate" c:type="GstRTSPServerPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <glib:signal name="client-connected" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="RTSPClient"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="RTSPServerClass" c:type="GstRTSPServerClass" glib:is-gtype-struct-for="RTSPServer">
      <doc xml:space="preserve">The RTSP server class structure</doc>
      
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="create_client" introspectable="0">
        <callback name="create_client" introspectable="0">
          
          <return-value>
            <type name="RTSPClient" c:type="GstRTSPClient*"/>
          </return-value>
          <parameters>
            <parameter name="server" transfer-ownership="none">
              <type name="RTSPServer" c:type="GstRTSPServer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="client_connected">
        <callback name="client_connected">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="server" transfer-ownership="none">
              <type name="RTSPServer" c:type="GstRTSPServer*"/>
            </parameter>
            <parameter name="client" transfer-ownership="none">
              <type name="RTSPClient" c:type="GstRTSPClient*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <callback name="RTSPServerClientFilterFunc" c:type="GstRTSPServerClientFilterFunc">
      <doc xml:space="preserve">This function will be called by the gst_rtsp_server_client_filter(). An
implementation should return a value of #GstRTSPFilterResult.

When this function returns #GST_RTSP_FILTER_REMOVE, @client will be removed
from @server.

A return value of #GST_RTSP_FILTER_KEEP will leave @client untouched in
@server.

A value of #GST_RTSP_FILTER_REF will add @client to the result #GList of
gst_rtsp_server_client_filter().</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPFilterResult.</doc>
        <type name="RTSPFilterResult" c:type="GstRTSPFilterResult"/>
      </return-value>
      <parameters>
        <parameter name="server" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPServer object</doc>
          <type name="RTSPServer" c:type="GstRTSPServer*"/>
        </parameter>
        <parameter name="client" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPClient in @server</doc>
          <type name="RTSPClient" c:type="GstRTSPClient*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2">
          <doc xml:space="preserve">user data that has been given to gst_rtsp_server_client_filter()</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="RTSPServerPrivate" c:type="GstRTSPServerPrivate" disguised="1">
      
    </record>
    <class name="RTSPSession" c:symbol-prefix="rtsp_session" c:type="GstRTSPSession" parent="GObject.Object" glib:type-name="GstRTSPSession" glib:get-type="gst_rtsp_session_get_type" glib:type-struct="RTSPSessionClass">
      <doc xml:space="preserve">Session information kept by the server for a specific client.
One client session, identified with a session id, can handle multiple medias
identified with the url of a media.</doc>
      
      <constructor name="new" c:identifier="gst_rtsp_session_new">
        <doc xml:space="preserve">Create a new #GstRTSPSession instance with @sessionid.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPSession</doc>
          <type name="RTSPSession" c:type="GstRTSPSession*"/>
        </return-value>
        <parameters>
          <parameter name="sessionid" transfer-ownership="none">
            <doc xml:space="preserve">a session id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="allow_expire" c:identifier="gst_rtsp_session_allow_expire">
        <doc xml:space="preserve">Allow @session to expire. This method must be called an equal
amount of time as gst_rtsp_session_prevent_expire().</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSession</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="filter" c:identifier="gst_rtsp_session_filter">
        <doc xml:space="preserve">Call @func for each media in @sess. The result value of @func determines
what happens to the media. @func will be called with @sess
locked so no further actions on @sess can be performed from @func.

If @func returns #GST_RTSP_FILTER_REMOVE, the media will be removed from
@sess.

If @func returns #GST_RTSP_FILTER_KEEP, the media will remain in @sess.

If @func returns #GST_RTSP_FILTER_REF, the media will remain in @sess but
will also be added with an additional ref to the result #GList of this
function..

When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for all media.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a GList with all
media for which @func returned #GST_RTSP_FILTER_REF. After usage, each
element in the #GList should be unreffed before the list is freed.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="RTSPSessionMedia"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="sess" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSession</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </instance-parameter>
          <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="call" closure="1">
            <doc xml:space="preserve">a callback</doc>
            <type name="RTSPSessionFilterFunc" c:type="GstRTSPSessionFilterFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">user data passed to @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_header" c:identifier="gst_rtsp_session_get_header">
        <doc xml:space="preserve">Get the string that can be placed in the Session header field.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the Session header of @session.
g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSession</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_media" c:identifier="gst_rtsp_session_get_media">
        <doc xml:space="preserve">Get the session media for @path. @matched will contain the number of matched
characters of @path.</doc>
        
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the configuration for @path in @sess.</doc>
          <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sess" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSession</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve">the path for the media</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="matched" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">the amount of matched characters</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_sessionid" c:identifier="gst_rtsp_session_get_sessionid">
        <doc xml:space="preserve">Get the sessionid of @session.</doc>
        
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the sessionid of @session.
The value remains valid as long as @session is alive.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSession</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_timeout" c:identifier="gst_rtsp_session_get_timeout">
        <doc xml:space="preserve">Get the timeout value of @session.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the timeout of @session in seconds.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSession</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_expired" c:identifier="gst_rtsp_session_is_expired" deprecated="1">
        <doc xml:space="preserve">Check if @session timeout out.</doc>
        <doc-deprecated xml:space="preserve">Use gst_rtsp_session_is_expired_usec() instead.</doc-deprecated>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @session timed out</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSession</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </instance-parameter>
          <parameter name="now" transfer-ownership="none">
            <doc xml:space="preserve">the current system time</doc>
            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_expired_usec" c:identifier="gst_rtsp_session_is_expired_usec">
        <doc xml:space="preserve">Check if @session timeout out.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @session timed out</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSession</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </instance-parameter>
          <parameter name="now" transfer-ownership="none">
            <doc xml:space="preserve">the current monotonic time</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="manage_media" c:identifier="gst_rtsp_session_manage_media">
        <doc xml:space="preserve">Manage the media object @obj in @sess. @path will be used to retrieve this
media from the session with gst_rtsp_session_get_media().

Ownership is taken from @media.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new @GstRTSPSessionMedia object.</doc>
          <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sess" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSession</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve">the path for the media</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="media" transfer-ownership="full">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </parameter>
        </parameters>
      </method>
      <method name="next_timeout" c:identifier="gst_rtsp_session_next_timeout" deprecated="1">
        <doc xml:space="preserve">Get the amount of milliseconds till the session will expire.</doc>
        <doc-deprecated xml:space="preserve">Use gst_rtsp_session_next_timeout_usec() instead.</doc-deprecated>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the amount of milliseconds since the session will time out.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSession</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </instance-parameter>
          <parameter name="now" transfer-ownership="none">
            <doc xml:space="preserve">the current system time</doc>
            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="next_timeout_usec" c:identifier="gst_rtsp_session_next_timeout_usec">
        <doc xml:space="preserve">Get the amount of milliseconds till the session will expire.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the amount of milliseconds since the session will time out.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSession</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </instance-parameter>
          <parameter name="now" transfer-ownership="none">
            <doc xml:space="preserve">the current monotonic time</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="prevent_expire" c:identifier="gst_rtsp_session_prevent_expire">
        <doc xml:space="preserve">Prevent @session from expiring.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSession</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="release_media" c:identifier="gst_rtsp_session_release_media">
        <doc xml:space="preserve">Release the managed @media in @sess, freeing the memory allocated by it.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if there are more media session left in @sess.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="sess" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSession</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMedia</doc>
            <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_timeout" c:identifier="gst_rtsp_session_set_timeout">
        <doc xml:space="preserve">Configure @session for a timeout of @timeout seconds. The session will be
cleaned up when there is no activity for @timeout seconds.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSession</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </instance-parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">the new timeout</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="touch" c:identifier="gst_rtsp_session_touch">
        <doc xml:space="preserve">Update the last_access time of the session to the current time.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSession</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="extra-timeout" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="sessionid" writable="1" construct-only="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="timeout" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="timeout-always-visible" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RTSPSessionPrivate" c:type="GstRTSPSessionPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="RTSPSessionClass" c:type="GstRTSPSessionClass" glib:is-gtype-struct-for="RTSPSession">
      
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <callback name="RTSPSessionFilterFunc" c:type="GstRTSPSessionFilterFunc">
      <doc xml:space="preserve">This function will be called by the gst_rtsp_session_filter(). An
implementation should return a value of #GstRTSPFilterResult.

When this function returns #GST_RTSP_FILTER_REMOVE, @media will be removed
from @sess.

A return value of #GST_RTSP_FILTER_KEEP will leave @media untouched in
@sess.

A value of GST_RTSP_FILTER_REF will add @media to the result #GList of
gst_rtsp_session_filter().</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPFilterResult.</doc>
        <type name="RTSPFilterResult" c:type="GstRTSPFilterResult"/>
      </return-value>
      <parameters>
        <parameter name="sess" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPSession object</doc>
          <type name="RTSPSession" c:type="GstRTSPSession*"/>
        </parameter>
        <parameter name="media" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPSessionMedia in @sess</doc>
          <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2">
          <doc xml:space="preserve">user data that has been given to gst_rtsp_session_filter()</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="RTSPSessionMedia" c:symbol-prefix="rtsp_session_media" c:type="GstRTSPSessionMedia" parent="GObject.Object" glib:type-name="GstRTSPSessionMedia" glib:get-type="gst_rtsp_session_media_get_type" glib:type-struct="RTSPSessionMediaClass">
      <doc xml:space="preserve">State of a client session regarding a specific media identified by path.</doc>
      
      <constructor name="new" c:identifier="gst_rtsp_session_media_new">
        <doc xml:space="preserve">Create a new #GstRTSPSessionMedia that manages the streams
in @media for @path. @media should be prepared.

Ownership is taken of @media.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPSessionMedia.</doc>
          <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve">the path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="media" transfer-ownership="full">
            <doc xml:space="preserve">the #GstRTSPMedia</doc>
            <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="alloc_channels" c:identifier="gst_rtsp_session_media_alloc_channels">
        <doc xml:space="preserve">Fill @range with the next available min and max channels for
interleaved transport.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionMedia</doc>
            <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
          </instance-parameter>
          <parameter name="range" direction="out" caller-allocates="1" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPRange</doc>
            <type name="GstRtsp.RTSPRange" c:type="GstRTSPRange*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_base_time" c:identifier="gst_rtsp_session_media_get_base_time">
        <doc xml:space="preserve">Get the base_time of the #GstRTSPMedia in @media</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the base_time of the media.</doc>
          <type name="Gst.ClockTime" c:type="GstClockTime"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionMedia</doc>
            <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_media" c:identifier="gst_rtsp_session_media_get_media">
        <doc xml:space="preserve">Get the #GstRTSPMedia that was used when constructing @media</doc>
        
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the #GstRTSPMedia of @media.
Remains valid as long as @media is valid.</doc>
          <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionMedia</doc>
            <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rtpinfo" c:identifier="gst_rtsp_session_media_get_rtpinfo">
        <doc xml:space="preserve">Retrieve the RTP-Info header string for all streams in @media
with configured transports.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">The RTP-Info as a string or
%NULL when no RTP-Info could be generated, g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionMedia</doc>
            <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rtsp_state" c:identifier="gst_rtsp_session_media_get_rtsp_state">
        <doc xml:space="preserve">Get the current RTSP state of @media.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the current RTSP state of @media.</doc>
          <type name="GstRtsp.RTSPState" c:type="GstRTSPState"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionMedia</doc>
            <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_transport" c:identifier="gst_rtsp_session_media_get_transport">
        <doc xml:space="preserve">Get a previously created #GstRTSPStreamTransport for the stream at @idx.</doc>
        
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">a #GstRTSPStreamTransport that is
valid until the session of @media is unreffed.</doc>
          <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionMedia</doc>
            <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the stream index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_transports" c:identifier="gst_rtsp_session_media_get_transports" version="1.14">
        <doc xml:space="preserve">Get a list of all available #GstRTSPStreamTransport in this session.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a
list of #GstRTSPStreamTransport, g_ptr_array_unref () after usage.</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="RTSPStreamTransport"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionMedia</doc>
            <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="matches" c:identifier="gst_rtsp_session_media_matches">
        <doc xml:space="preserve">Check if the path of @media matches @path. It @path matches, the amount of
matched characters is returned in @matched.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE when @path matches the path of @media.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionMedia</doc>
            <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve">a path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="matched" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">the amount of matched characters of @path</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rtsp_state" c:identifier="gst_rtsp_session_media_set_rtsp_state">
        <doc xml:space="preserve">Set the RTSP state of @media to @state.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionMedia</doc>
            <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPState</doc>
            <type name="GstRtsp.RTSPState" c:type="GstRTSPState"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_state" c:identifier="gst_rtsp_session_media_set_state">
        <doc xml:space="preserve">Tell the media object @media to change to @state.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionMedia</doc>
            <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve">the new state</doc>
            <type name="Gst.State" c:type="GstState"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_transport" c:identifier="gst_rtsp_session_media_set_transport">
        <doc xml:space="preserve">Configure the transport for @stream to @tr in @media.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the new or updated #GstRTSPStreamTransport for @stream.</doc>
          <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionMedia</doc>
            <type name="RTSPSessionMedia" c:type="GstRTSPSessionMedia*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </parameter>
          <parameter name="tr" transfer-ownership="full">
            <doc xml:space="preserve">a #GstRTSPTransport</doc>
            <type name="GstRtsp.RTSPTransport" c:type="GstRTSPTransport*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RTSPSessionMediaPrivate" c:type="GstRTSPSessionMediaPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="RTSPSessionMediaClass" c:type="GstRTSPSessionMediaClass" glib:is-gtype-struct-for="RTSPSessionMedia">
      
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="RTSPSessionMediaPrivate" c:type="GstRTSPSessionMediaPrivate" disguised="1">
      
    </record>
    <class name="RTSPSessionPool" c:symbol-prefix="rtsp_session_pool" c:type="GstRTSPSessionPool" parent="GObject.Object" glib:type-name="GstRTSPSessionPool" glib:get-type="gst_rtsp_session_pool_get_type" glib:type-struct="RTSPSessionPoolClass">
      <doc xml:space="preserve">An object that keeps track of the active sessions. This object is usually
attached to a #GstRTSPServer object to manage the sessions in that server.</doc>
      
      <constructor name="new" c:identifier="gst_rtsp_session_pool_new">
        <doc xml:space="preserve">Create a new #GstRTSPSessionPool instance.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GstRTSPSessionPool. g_object_unref() after
usage.</doc>
          <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
        </return-value>
      </constructor>
      <virtual-method name="create_session" introspectable="0">
        
        <return-value>
          <type name="RTSPSession" c:type="GstRTSPSession*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_session_id">
        
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="session_removed">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
          </instance-parameter>
          <parameter name="session" transfer-ownership="none">
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="cleanup" c:identifier="gst_rtsp_session_pool_cleanup">
        <doc xml:space="preserve">Inspect all the sessions in @pool and remove the sessions that are inactive
for more than their timeout.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the amount of sessions that got removed.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionPool</doc>
            <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create" c:identifier="gst_rtsp_session_pool_create">
        <doc xml:space="preserve">Create a new #GstRTSPSession object in @pool.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a new #GstRTSPSession.</doc>
          <type name="RTSPSession" c:type="GstRTSPSession*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionPool</doc>
            <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create_watch" c:identifier="gst_rtsp_session_pool_create_watch">
        <doc xml:space="preserve">Create a #GSource that will be dispatched when the session should be cleaned
up.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GSource</doc>
          <type name="GLib.Source" c:type="GSource*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionPool</doc>
            <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="filter" c:identifier="gst_rtsp_session_pool_filter">
        <doc xml:space="preserve">Call @func for each session in @pool. The result value of @func determines
what happens to the session. @func will be called with the session pool
locked so no further actions on @pool can be performed from @func.

If @func returns #GST_RTSP_FILTER_REMOVE, the session will be set to the
expired state and removed from @pool.

If @func returns #GST_RTSP_FILTER_KEEP, the session will remain in @pool.

If @func returns #GST_RTSP_FILTER_REF, the session will remain in @pool but
will also be added with an additional ref to the result GList of this
function..

When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for all sessions.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a GList with all
sessions for which @func returned #GST_RTSP_FILTER_REF. After usage, each
element in the GList should be unreffed before the list is freed.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="RTSPSession"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionPool</doc>
            <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
          </instance-parameter>
          <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="call" closure="1">
            <doc xml:space="preserve">a callback</doc>
            <type name="RTSPSessionPoolFilterFunc" c:type="GstRTSPSessionPoolFilterFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">user data passed to @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="find" c:identifier="gst_rtsp_session_pool_find">
        <doc xml:space="preserve">Find the session with @sessionid in @pool. The access time of the session
will be updated with gst_rtsp_session_touch().</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GstRTSPSession with @sessionid
or %NULL when the session did not exist. g_object_unref() after usage.</doc>
          <type name="RTSPSession" c:type="GstRTSPSession*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the pool to search</doc>
            <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
          </instance-parameter>
          <parameter name="sessionid" transfer-ownership="none">
            <doc xml:space="preserve">the session id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_max_sessions" c:identifier="gst_rtsp_session_pool_get_max_sessions">
        <doc xml:space="preserve">Get the maximum allowed number of sessions in @pool. 0 means an unlimited
amount of sessions.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the maximum allowed number of sessions.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionPool</doc>
            <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_sessions" c:identifier="gst_rtsp_session_pool_get_n_sessions">
        <doc xml:space="preserve">Get the amount of active sessions in @pool.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the amount of active sessions in @pool.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionPool</doc>
            <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="gst_rtsp_session_pool_remove">
        <doc xml:space="preserve">Remove @sess from @pool, releasing the ref that the pool has on @sess.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the session was found and removed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionPool</doc>
            <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
          </instance-parameter>
          <parameter name="sess" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSession</doc>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_sessions" c:identifier="gst_rtsp_session_pool_set_max_sessions">
        <doc xml:space="preserve">Configure the maximum allowed number of sessions in @pool to @max.
A value of 0 means an unlimited amount of sessions.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPSessionPool</doc>
            <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
          </instance-parameter>
          <parameter name="max" transfer-ownership="none">
            <doc xml:space="preserve">the maximum number of sessions</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="max-sessions" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RTSPSessionPoolPrivate" c:type="GstRTSPSessionPoolPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <glib:signal name="session-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="RTSPSession"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="RTSPSessionPoolClass" c:type="GstRTSPSessionPoolClass" glib:is-gtype-struct-for="RTSPSessionPool">
      
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="create_session_id">
        <callback name="create_session_id">
          
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="pool" transfer-ownership="none">
              <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_session" introspectable="0">
        <callback name="create_session" introspectable="0">
          
          <return-value>
            <type name="RTSPSession" c:type="GstRTSPSession*"/>
          </return-value>
          <parameters>
            <parameter name="pool" transfer-ownership="none">
              <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="session_removed">
        <callback name="session_removed">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="pool" transfer-ownership="none">
              <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
            </parameter>
            <parameter name="session" transfer-ownership="none">
              <type name="RTSPSession" c:type="GstRTSPSession*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="19">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <callback name="RTSPSessionPoolFilterFunc" c:type="GstRTSPSessionPoolFilterFunc">
      <doc xml:space="preserve">This function will be called by the gst_rtsp_session_pool_filter(). An
implementation should return a value of #GstRTSPFilterResult.

When this function returns #GST_RTSP_FILTER_REMOVE, @session will be removed
from @pool.

A return value of #GST_RTSP_FILTER_KEEP will leave @session untouched in
@pool.

A value of GST_RTSP_FILTER_REF will add @session to the result #GList of
gst_rtsp_session_pool_filter().</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPFilterResult.</doc>
        <type name="RTSPFilterResult" c:type="GstRTSPFilterResult"/>
      </return-value>
      <parameters>
        <parameter name="pool" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPSessionPool object</doc>
          <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
        </parameter>
        <parameter name="session" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPSession in @pool</doc>
          <type name="RTSPSession" c:type="GstRTSPSession*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2">
          <doc xml:space="preserve">user data that has been given to gst_rtsp_session_pool_filter()</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="RTSPSessionPoolFunc" c:type="GstRTSPSessionPoolFunc">
      <doc xml:space="preserve">The function that will be called from the GSource watch on the session pool.

The function will be called when the pool must be cleaned up because one or
more sessions timed out.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%FALSE if the source should be removed.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="pool" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPSessionPool object</doc>
          <type name="RTSPSessionPool" c:type="GstRTSPSessionPool*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
          <doc xml:space="preserve">user data that has been given when registering the handler</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="RTSPSessionPoolPrivate" c:type="GstRTSPSessionPoolPrivate" disguised="1">
      
    </record>
    <record name="RTSPSessionPrivate" c:type="GstRTSPSessionPrivate" disguised="1">
      
    </record>
    <class name="RTSPStream" c:symbol-prefix="rtsp_stream" c:type="GstRTSPStream" parent="GObject.Object" glib:type-name="GstRTSPStream" glib:get-type="gst_rtsp_stream_get_type" glib:type-struct="RTSPStreamClass">
      <doc xml:space="preserve">The definition of a media stream.</doc>
      
      <constructor name="new" c:identifier="gst_rtsp_stream_new">
        <doc xml:space="preserve">Create a new media stream with index @idx that handles RTP data on
@pad and has a payloader element @payloader if @pad is a source pad
or a depayloader element @payloader if @pad is a sink pad.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPStream</doc>
          <type name="RTSPStream" c:type="GstRTSPStream*"/>
        </return-value>
        <parameters>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="payloader" transfer-ownership="none">
            <doc xml:space="preserve">a #GstElement</doc>
            <type name="Gst.Element" c:type="GstElement*"/>
          </parameter>
          <parameter name="pad" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPad</doc>
            <type name="Gst.Pad" c:type="GstPad*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_multicast_client_address" c:identifier="gst_rtsp_stream_add_multicast_client_address" version="1.16">
        <doc xml:space="preserve">Add multicast client address to stream. At this point, the sockets that
will stream RTP and RTCP data to @destination are supposed to be
allocated.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @destination can be addedd and handled by @stream.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="destination" transfer-ownership="none">
            <doc xml:space="preserve">a multicast address to add</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="rtp_port" transfer-ownership="none">
            <doc xml:space="preserve">RTP port</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="rtcp_port" transfer-ownership="none">
            <doc xml:space="preserve">RTCP port</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="family" transfer-ownership="none">
            <doc xml:space="preserve">socket family</doc>
            <type name="Gio.SocketFamily" c:type="GSocketFamily"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_transport" c:identifier="gst_rtsp_stream_add_transport">
        <doc xml:space="preserve">Add the transport in @trans to @stream. The media of @stream will
then also be send to the values configured in @trans. Adding the
same transport twice will not add it a second time.

@stream must be joined to a bin.

@trans must contain a valid #GstRTSPTransport.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @trans was added</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </parameter>
        </parameters>
      </method>
      <method name="allocate_udp_sockets" c:identifier="gst_rtsp_stream_allocate_udp_sockets">
        <doc xml:space="preserve">Allocates RTP and RTCP ports.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the RTP and RTCP sockets have been succeccully allocated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="family" transfer-ownership="none">
            <doc xml:space="preserve">protocol family</doc>
            <type name="Gio.SocketFamily" c:type="GSocketFamily"/>
          </parameter>
          <parameter name="transport" transfer-ownership="none">
            <doc xml:space="preserve">transport method</doc>
            <type name="GstRtsp.RTSPTransport" c:type="GstRTSPTransport*"/>
          </parameter>
          <parameter name="use_client_settings" transfer-ownership="none">
            <doc xml:space="preserve">Whether to use client settings or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="complete_stream" c:identifier="gst_rtsp_stream_complete_stream" version="1.14">
        <doc xml:space="preserve">Add a receiver and sender part to the pipeline based on the transport from
SETUP.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the stream has been sucessfully updated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="transport" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPTransport</doc>
            <type name="GstRtsp.RTSPTransport" c:type="const GstRTSPTransport*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_address_pool" c:identifier="gst_rtsp_stream_get_address_pool">
        <doc xml:space="preserve">Get the #GstRTSPAddressPool used as the address pool of @stream.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GstRTSPAddressPool of @stream.
g_object_unref() after usage.</doc>
          <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_buffer_size" c:identifier="gst_rtsp_stream_get_buffer_size" version="1.6">
        <doc xml:space="preserve">Get the size of the UDP transmission buffer (in bytes)</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the size of the UDP TX buffer</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_caps" c:identifier="gst_rtsp_stream_get_caps">
        <doc xml:space="preserve">Retrieve the current caps of @stream.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GstCaps of @stream.
use gst_caps_unref() after usage.</doc>
          <type name="Gst.Caps" c:type="GstCaps*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_control" c:identifier="gst_rtsp_stream_get_control">
        <doc xml:space="preserve">Get the control string to identify this stream.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the control string. g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_seqnum" c:identifier="gst_rtsp_stream_get_current_seqnum">
        
        <return-value transfer-ownership="none">
          <type name="guint16" c:type="guint16"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dscp_qos" c:identifier="gst_rtsp_stream_get_dscp_qos">
        <doc xml:space="preserve">Get the configured DSCP QoS in of the outgoing sockets.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the DSCP QoS value of the outgoing sockets, or -1 if disbled.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_index" c:identifier="gst_rtsp_stream_get_index">
        <doc xml:space="preserve">Get the stream index.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the stream index.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_joined_bin" c:identifier="gst_rtsp_stream_get_joined_bin">
        <doc xml:space="preserve">Get the previous joined bin with gst_rtsp_stream_join_bin() or NULL.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the joined bin or NULL.</doc>
          <type name="Gst.Bin" c:type="GstBin*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_mcast_ttl" c:identifier="gst_rtsp_stream_get_max_mcast_ttl" version="1.16">
        <doc xml:space="preserve">Get the the maximum time-to-live value of outgoing multicast packets.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the maximum time-to-live value of outgoing multicast packets.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mtu" c:identifier="gst_rtsp_stream_get_mtu">
        <doc xml:space="preserve">Get the configured MTU in the payloader of @stream.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the MTU of the payloader.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_multicast_address" c:identifier="gst_rtsp_stream_get_multicast_address">
        <doc xml:space="preserve">Get the multicast address of @stream for @family. The original
#GstRTSPAddress is cached and copy is returned, so freeing the return value
won't release the address from the pool.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GstRTSPAddress of @stream
or %NULL when no address could be allocated. gst_rtsp_address_free()
after usage.</doc>
          <type name="RTSPAddress" c:type="GstRTSPAddress*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="family" transfer-ownership="none">
            <doc xml:space="preserve">the #GSocketFamily</doc>
            <type name="Gio.SocketFamily" c:type="GSocketFamily"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_multicast_client_addresses" c:identifier="gst_rtsp_stream_get_multicast_client_addresses" version="1.16">
        <doc xml:space="preserve">Get all multicast client addresses that RTP data will be sent to</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A comma separated list of host:port pairs with destinations</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_multicast_iface" c:identifier="gst_rtsp_stream_get_multicast_iface">
        <doc xml:space="preserve">Get the multicast interface used for @stream.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the multicast interface for @stream.
g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_profiles" c:identifier="gst_rtsp_stream_get_profiles">
        <doc xml:space="preserve">Get the allowed profiles of @stream.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPProfile</doc>
          <type name="GstRtsp.RTSPProfile" c:type="GstRTSPProfile"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_protocols" c:identifier="gst_rtsp_stream_get_protocols">
        <doc xml:space="preserve">Get the allowed protocols of @stream.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPLowerTrans</doc>
          <type name="GstRtsp.RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pt" c:identifier="gst_rtsp_stream_get_pt">
        <doc xml:space="preserve">Get the stream payload type.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the stream payload type.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_publish_clock_mode" c:identifier="gst_rtsp_stream_get_publish_clock_mode" version="1.8">
        <doc xml:space="preserve">Gets if and how the stream clock should be published according to RFC7273.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The GstRTSPPublishClockMode</doc>
          <type name="RTSPPublishClockMode" c:type="GstRTSPPublishClockMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rate_control" c:identifier="gst_rtsp_stream_get_rate_control" version="1.18">
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether @stream will follow the Rate-Control=no behaviour as specified
in the ONVIF replay spec.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rates" c:identifier="gst_rtsp_stream_get_rates" version="1.18">
        <doc xml:space="preserve">Retrieve the current rate and/or applied_rate.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if rate and/or applied_rate could be determined.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="rate" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1">
            <doc xml:space="preserve">the configured rate</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="applied_rate" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1">
            <doc xml:space="preserve">the configured applied_rate</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_retransmission_pt" c:identifier="gst_rtsp_stream_get_retransmission_pt">
        <doc xml:space="preserve">Get the payload-type used for retransmission of this stream</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The retransmission PT.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_retransmission_time" c:identifier="gst_rtsp_stream_get_retransmission_time">
        <doc xml:space="preserve">Get the amount of time to store retransmission data.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the amount of time to store retransmission data.</doc>
          <type name="Gst.ClockTime" c:type="GstClockTime"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rtcp_multicast_socket" c:identifier="gst_rtsp_stream_get_rtcp_multicast_socket" version="1.14">
        <doc xml:space="preserve">Get the multicast RTCP socket from @stream for a @family.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the multicast RTCP socket or %NULL if no
socket could be allocated for @family. Unref after usage</doc>
          <type name="Gio.Socket" c:type="GSocket*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="family" transfer-ownership="none">
            <doc xml:space="preserve">the socket family</doc>
            <type name="Gio.SocketFamily" c:type="GSocketFamily"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_rtcp_socket" c:identifier="gst_rtsp_stream_get_rtcp_socket">
        <doc xml:space="preserve">Get the RTCP socket from @stream for a @family.

@stream must be joined to a bin.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the RTCP socket or %NULL if no
socket could be allocated for @family. Unref after usage</doc>
          <type name="Gio.Socket" c:type="GSocket*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="family" transfer-ownership="none">
            <doc xml:space="preserve">the socket family</doc>
            <type name="Gio.SocketFamily" c:type="GSocketFamily"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_rtp_multicast_socket" c:identifier="gst_rtsp_stream_get_rtp_multicast_socket">
        <doc xml:space="preserve">Get the multicast RTP socket from @stream for a @family.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the multicast RTP socket or %NULL if no

socket could be allocated for @family. Unref after usage</doc>
          <type name="Gio.Socket" c:type="GSocket*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="family" transfer-ownership="none">
            <doc xml:space="preserve">the socket family</doc>
            <type name="Gio.SocketFamily" c:type="GSocketFamily"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_rtp_socket" c:identifier="gst_rtsp_stream_get_rtp_socket">
        <doc xml:space="preserve">Get the RTP socket from @stream for a @family.

@stream must be joined to a bin.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the RTP socket or %NULL if no
socket could be allocated for @family. Unref after usage</doc>
          <type name="Gio.Socket" c:type="GSocket*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="family" transfer-ownership="none">
            <doc xml:space="preserve">the socket family</doc>
            <type name="Gio.SocketFamily" c:type="GSocketFamily"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_rtpinfo" c:identifier="gst_rtsp_stream_get_rtpinfo">
        <doc xml:space="preserve">Retrieve the current rtptime, seq and running-time. This is used to
construct a RTPInfo reply header.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE when rtptime, seq and running-time could be determined.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="rtptime" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1">
            <doc xml:space="preserve">result RTP timestamp</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="seq" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1">
            <doc xml:space="preserve">result RTP seqnum</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="clock_rate" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1">
            <doc xml:space="preserve">the clock rate</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="running_time" direction="out" caller-allocates="1" transfer-ownership="none">
            <doc xml:space="preserve">result running-time</doc>
            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_rtpsession" c:identifier="gst_rtsp_stream_get_rtpsession">
        <doc xml:space="preserve">Get the RTP session of this stream.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The RTP session of this stream. Unref after usage.</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_server_port" c:identifier="gst_rtsp_stream_get_server_port">
        <doc xml:space="preserve">Fill @server_port with the port pair used by the server. This function can
only be called when @stream has been joined.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="server_port" direction="out" caller-allocates="1" transfer-ownership="none">
            <doc xml:space="preserve">result server port</doc>
            <type name="GstRtsp.RTSPRange" c:type="GstRTSPRange*"/>
          </parameter>
          <parameter name="family" transfer-ownership="none">
            <doc xml:space="preserve">the port family to get</doc>
            <type name="Gio.SocketFamily" c:type="GSocketFamily"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_sinkpad" c:identifier="gst_rtsp_stream_get_sinkpad">
        <doc xml:space="preserve">Get the sinkpad associated with @stream.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the sinkpad. Unref after usage.</doc>
          <type name="Gst.Pad" c:type="GstPad*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_srcpad" c:identifier="gst_rtsp_stream_get_srcpad">
        <doc xml:space="preserve">Get the srcpad associated with @stream.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the srcpad. Unref after usage.</doc>
          <type name="Gst.Pad" c:type="GstPad*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_srtp_encoder" c:identifier="gst_rtsp_stream_get_srtp_encoder">
        <doc xml:space="preserve">Get the SRTP encoder for this stream.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The SRTP encoder for this stream. Unref after usage.</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ssrc" c:identifier="gst_rtsp_stream_get_ssrc">
        <doc xml:space="preserve">Get the SSRC used by the RTP session of this stream. This function can only
be called when @stream has been joined.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="ssrc" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">result ssrc</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_ulpfec_enabled" c:identifier="gst_rtsp_stream_get_ulpfec_enabled">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ulpfec_percentage" c:identifier="gst_rtsp_stream_get_ulpfec_percentage" version="1.16">
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the amount of redundancy applied when creating ULPFEC
protection packets.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ulpfec_pt" c:identifier="gst_rtsp_stream_get_ulpfec_pt" version="1.16">
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the payload type used for ULPFEC protection packets</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="handle_keymgmt" c:identifier="gst_rtsp_stream_handle_keymgmt" version="1.16">
        <doc xml:space="preserve">Parse and handle a KeyMgmt header.</doc>
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="keymgmt" transfer-ownership="none">
            <doc xml:space="preserve">a keymgmt header</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_control" c:identifier="gst_rtsp_stream_has_control">
        <doc xml:space="preserve">Check if @stream has the control string @control.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE is @stream has @control as the control string</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="control" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a control string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_bind_mcast_address" c:identifier="gst_rtsp_stream_is_bind_mcast_address" version="1.16">
        <doc xml:space="preserve">Check if multicast sockets are configured to be bound to multicast addresses.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if multicast sockets are configured to be bound to multicast addresses.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_blocking" c:identifier="gst_rtsp_stream_is_blocking">
        <doc xml:space="preserve">Check if @stream is blocking on a #GstBuffer.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @stream is blocking</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_client_side" c:identifier="gst_rtsp_stream_is_client_side">
        <doc xml:space="preserve">See gst_rtsp_stream_set_client_side()</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if this #GstRTSPStream is client-side.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_complete" c:identifier="gst_rtsp_stream_is_complete" version="1.14">
        <doc xml:space="preserve">Checks whether the stream is complete, contains the receiver and the sender
parts. As the stream contains sink(s) element(s), it's possible to perform
seek operations on it.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the stream contains at least one sink element.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_receiver" c:identifier="gst_rtsp_stream_is_receiver" version="1.14">
        <doc xml:space="preserve">Checks whether the stream is a receiver.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the stream is a receiver and %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_sender" c:identifier="gst_rtsp_stream_is_sender" version="1.14">
        <doc xml:space="preserve">Checks whether the stream is a sender.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the stream is a sender and %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_transport_supported" c:identifier="gst_rtsp_stream_is_transport_supported">
        <doc xml:space="preserve">Check if @transport can be handled by stream</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @transport can be handled by @stream.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="transport" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPTransport</doc>
            <type name="GstRtsp.RTSPTransport" c:type="GstRTSPTransport*"/>
          </parameter>
        </parameters>
      </method>
      <method name="join_bin" c:identifier="gst_rtsp_stream_join_bin">
        <doc xml:space="preserve">Join the #GstBin @bin that contains the element @rtpbin.

@stream will link to @rtpbin, which must be inside @bin. The elements
added to @bin will be set to the state given in @state.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="bin" transfer-ownership="none">
            <doc xml:space="preserve">a #GstBin to join</doc>
            <type name="Gst.Bin" c:type="GstBin*"/>
          </parameter>
          <parameter name="rtpbin" transfer-ownership="none">
            <doc xml:space="preserve">a rtpbin element in @bin</doc>
            <type name="Gst.Element" c:type="GstElement*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve">the target state of the new elements</doc>
            <type name="Gst.State" c:type="GstState"/>
          </parameter>
        </parameters>
      </method>
      <method name="leave_bin" c:identifier="gst_rtsp_stream_leave_bin">
        <doc xml:space="preserve">Remove the elements of @stream from @bin.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="bin" transfer-ownership="none">
            <doc xml:space="preserve">a #GstBin</doc>
            <type name="Gst.Bin" c:type="GstBin*"/>
          </parameter>
          <parameter name="rtpbin" transfer-ownership="none">
            <doc xml:space="preserve">a rtpbin #GstElement</doc>
            <type name="Gst.Element" c:type="GstElement*"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_position" c:identifier="gst_rtsp_stream_query_position">
        <doc xml:space="preserve">Query the position of the stream in %GST_FORMAT_TIME. This only considers
the RTP parts of the pipeline and not the RTCP parts.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the position could be queried</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="position" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">current position of a #GstRTSPStream</doc>
            <type name="gint64" c:type="gint64*"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_stop" c:identifier="gst_rtsp_stream_query_stop">
        <doc xml:space="preserve">Query the stop of the stream in %GST_FORMAT_TIME. This only considers
the RTP parts of the pipeline and not the RTCP parts.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the stop could be queried</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="stop" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">current stop of a #GstRTSPStream</doc>
            <type name="gint64" c:type="gint64*"/>
          </parameter>
        </parameters>
      </method>
      <method name="recv_rtcp" c:identifier="gst_rtsp_stream_recv_rtcp">
        <doc xml:space="preserve">Handle an RTCP buffer for the stream. This method is usually called when a
message has been received from a client using the TCP transport.

This function takes ownership of @buffer.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a GstFlowReturn.</doc>
          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="full">
            <doc xml:space="preserve">a #GstBuffer</doc>
            <type name="Gst.Buffer" c:type="GstBuffer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="recv_rtp" c:identifier="gst_rtsp_stream_recv_rtp">
        <doc xml:space="preserve">Handle an RTP buffer for the stream. This method is usually called when a
message has been received from a client using the TCP transport.

This function takes ownership of @buffer.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a GstFlowReturn.</doc>
          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="full">
            <doc xml:space="preserve">a #GstBuffer</doc>
            <type name="Gst.Buffer" c:type="GstBuffer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_transport" c:identifier="gst_rtsp_stream_remove_transport">
        <doc xml:space="preserve">Remove the transport in @trans from @stream. The media of @stream will
not be sent to the values configured in @trans.

@stream must be joined to a bin.

@trans must contain a valid #GstRTSPTransport.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @trans was removed</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </parameter>
        </parameters>
      </method>
      <method name="request_aux_receiver" c:identifier="gst_rtsp_stream_request_aux_receiver" version="1.16">
        <doc xml:space="preserve">Creating a rtxreceive bin</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #GstElement.</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="sessid" transfer-ownership="none">
            <doc xml:space="preserve">the session id</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="request_aux_sender" c:identifier="gst_rtsp_stream_request_aux_sender" version="1.6">
        <doc xml:space="preserve">Creating a rtxsend bin</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #GstElement.</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="sessid" transfer-ownership="none">
            <doc xml:space="preserve">the session id</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="request_ulpfec_decoder" c:identifier="gst_rtsp_stream_request_ulpfec_decoder" version="1.16">
        <doc xml:space="preserve">Creating a rtpulpfecdec element</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #GstElement.</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="rtpbin" transfer-ownership="none">
            <type name="Gst.Element" c:type="GstElement*"/>
          </parameter>
          <parameter name="sessid" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="request_ulpfec_encoder" c:identifier="gst_rtsp_stream_request_ulpfec_encoder" version="1.16">
        <doc xml:space="preserve">Creating a rtpulpfecenc element</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #GstElement.</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="sessid" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="reserve_address" c:identifier="gst_rtsp_stream_reserve_address">
        <doc xml:space="preserve">Reserve @address and @port as the address and port of @stream. The original
#GstRTSPAddress is cached and copy is returned, so freeing the return value
won't release the address from the pool.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the #GstRTSPAddress of @stream or %NULL when
the address could not be reserved. gst_rtsp_address_free() after
usage.</doc>
          <type name="RTSPAddress" c:type="GstRTSPAddress*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="address" transfer-ownership="none">
            <doc xml:space="preserve">an address</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="port" transfer-ownership="none">
            <doc xml:space="preserve">a port</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="n_ports" transfer-ownership="none">
            <doc xml:space="preserve">n_ports</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="ttl" transfer-ownership="none">
            <doc xml:space="preserve">a TTL</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="seekable" c:identifier="gst_rtsp_stream_seekable" version="1.14">
        <doc xml:space="preserve">Checks whether the individual @stream is seekable.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @stream is seekable, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_address_pool" c:identifier="gst_rtsp_stream_set_address_pool">
        <doc xml:space="preserve">configure @pool to be used as the address pool of @stream.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="pool" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstRTSPAddressPool</doc>
            <type name="RTSPAddressPool" c:type="GstRTSPAddressPool*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bind_mcast_address" c:identifier="gst_rtsp_stream_set_bind_mcast_address" version="1.16">
        <doc xml:space="preserve">Decide whether the multicast socket should be bound to a multicast address or
INADDR_ANY.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream,</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="bind_mcast_addr" transfer-ownership="none">
            <doc xml:space="preserve">the new value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_blocked" c:identifier="gst_rtsp_stream_set_blocked">
        <doc xml:space="preserve">Blocks or unblocks the dataflow on @stream.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="blocked" transfer-ownership="none">
            <doc xml:space="preserve">boolean indicating we should block or unblock</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_buffer_size" c:identifier="gst_rtsp_stream_set_buffer_size" version="1.6">
        <doc xml:space="preserve">Set the size of the UDP transmission buffer (in bytes)
Needs to be set before the stream is joined to a bin.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the buffer size</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_client_side" c:identifier="gst_rtsp_stream_set_client_side">
        <doc xml:space="preserve">Sets the #GstRTSPStream as a 'client side' stream - used for sending
streams to an RTSP server via RECORD. This has the practical effect
of changing which UDP port numbers are used when setting up the local
side of the stream sending to be either the 'server' or 'client' pair
of a configured UDP transport.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="client_side" transfer-ownership="none">
            <doc xml:space="preserve">TRUE if this #GstRTSPStream is running on the 'client' side of
an RTSP connection.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_control" c:identifier="gst_rtsp_stream_set_control">
        <doc xml:space="preserve">Set the control string in @stream.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="control" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a control string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dscp_qos" c:identifier="gst_rtsp_stream_set_dscp_qos">
        <doc xml:space="preserve">Configure the dscp qos of the outgoing sockets to @dscp_qos.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="dscp_qos" transfer-ownership="none">
            <doc xml:space="preserve">a new dscp qos value (0-63, or -1 to disable)</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_mcast_ttl" c:identifier="gst_rtsp_stream_set_max_mcast_ttl" version="1.16">
        <doc xml:space="preserve">Set the maximum time-to-live value of outgoing multicast packets.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the requested ttl has been set successfully.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="ttl" transfer-ownership="none">
            <doc xml:space="preserve">the new multicast ttl value</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mtu" c:identifier="gst_rtsp_stream_set_mtu">
        <doc xml:space="preserve">Configure the mtu in the payloader of @stream to @mtu.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="mtu" transfer-ownership="none">
            <doc xml:space="preserve">a new MTU</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_multicast_iface" c:identifier="gst_rtsp_stream_set_multicast_iface">
        <doc xml:space="preserve">configure @multicast_iface to be used for @stream.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="multicast_iface" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a multicast interface name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_profiles" c:identifier="gst_rtsp_stream_set_profiles">
        <doc xml:space="preserve">Configure the allowed profiles for @stream.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="profiles" transfer-ownership="none">
            <doc xml:space="preserve">the new profiles</doc>
            <type name="GstRtsp.RTSPProfile" c:type="GstRTSPProfile"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_protocols" c:identifier="gst_rtsp_stream_set_protocols">
        <doc xml:space="preserve">Configure the allowed lower transport for @stream.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="protocols" transfer-ownership="none">
            <doc xml:space="preserve">the new flags</doc>
            <type name="GstRtsp.RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pt_map" c:identifier="gst_rtsp_stream_set_pt_map">
        <doc xml:space="preserve">Configure a pt map between @pt and @caps.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="pt" transfer-ownership="none">
            <doc xml:space="preserve">the pt</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="caps" transfer-ownership="none">
            <doc xml:space="preserve">a #GstCaps</doc>
            <type name="Gst.Caps" c:type="GstCaps*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_publish_clock_mode" c:identifier="gst_rtsp_stream_set_publish_clock_mode" version="1.8">
        <doc xml:space="preserve">Sets if and how the stream clock should be published according to RFC7273.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">the clock publish mode</doc>
            <type name="RTSPPublishClockMode" c:type="GstRTSPPublishClockMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rate_control" c:identifier="gst_rtsp_stream_set_rate_control" version="1.18">
        <doc xml:space="preserve">Define whether @stream will follow the Rate-Control=no behaviour as specified
in the ONVIF replay spec.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_retransmission_pt" c:identifier="gst_rtsp_stream_set_retransmission_pt">
        <doc xml:space="preserve">Set the payload type (pt) for retransmission of this stream.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="rtx_pt" transfer-ownership="none">
            <doc xml:space="preserve">a #guint</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_retransmission_time" c:identifier="gst_rtsp_stream_set_retransmission_time">
        <doc xml:space="preserve">Set the amount of time to store retransmission packets.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="time" transfer-ownership="none">
            <doc xml:space="preserve">a #GstClockTime</doc>
            <type name="Gst.ClockTime" c:type="GstClockTime"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_seqnum_offset" c:identifier="gst_rtsp_stream_set_seqnum_offset">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="seqnum" transfer-ownership="none">
            <type name="guint16" c:type="guint16"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_ulpfec_percentage" c:identifier="gst_rtsp_stream_set_ulpfec_percentage" version="1.16">
        <doc xml:space="preserve">Sets the amount of redundancy to apply when creating ULPFEC
protection packets.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="percentage" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_ulpfec_pt" c:identifier="gst_rtsp_stream_set_ulpfec_pt" version="1.16">
        <doc xml:space="preserve">Set the payload type to be used for ULPFEC protection packets</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="pt" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="transport_filter" c:identifier="gst_rtsp_stream_transport_filter">
        <doc xml:space="preserve">Call @func for each transport managed by @stream. The result value of @func
determines what happens to the transport. @func will be called with @stream
locked so no further actions on @stream can be performed from @func.

If @func returns #GST_RTSP_FILTER_REMOVE, the transport will be removed from
@stream.

If @func returns #GST_RTSP_FILTER_KEEP, the transport will remain in @stream.

If @func returns #GST_RTSP_FILTER_REF, the transport will remain in @stream but
will also be added with an additional ref to the result #GList of this
function..

When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for each transport.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GList with all
transports for which @func returned #GST_RTSP_FILTER_REF. After usage, each
element in the #GList should be unreffed before the list is freed.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="RTSPStreamTransport"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="call" closure="1">
            <doc xml:space="preserve">a callback</doc>
            <type name="RTSPStreamTransportFilterFunc" c:type="GstRTSPStreamTransportFilterFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">user data passed to @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="unblock_linked" c:identifier="gst_rtsp_stream_unblock_linked">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="update_crypto" c:identifier="gst_rtsp_stream_update_crypto">
        <doc xml:space="preserve">Update the new crypto information for @ssrc in @stream. If information
for @ssrc did not exist, it will be added. If information
for @ssrc existed, it will be replaced. If @crypto is %NULL, it will
be removed from @stream.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @crypto could be updated</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="ssrc" transfer-ownership="none">
            <doc xml:space="preserve">the SSRC</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="crypto" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GstCaps with crypto info</doc>
            <type name="Gst.Caps" c:type="GstCaps*"/>
          </parameter>
        </parameters>
      </method>
      <method name="verify_mcast_ttl" c:identifier="gst_rtsp_stream_verify_mcast_ttl" version="1.16">
        <doc xml:space="preserve">Check if the requested multicast ttl value is allowed.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if the requested ttl value is allowed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </instance-parameter>
          <parameter name="ttl" transfer-ownership="none">
            <doc xml:space="preserve">a requested multicast ttl</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="control" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="profiles" writable="1" transfer-ownership="none">
        <type name="GstRtsp.RTSPProfile"/>
      </property>
      <property name="protocols" writable="1" transfer-ownership="none">
        <type name="GstRtsp.RTSPLowerTrans"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RTSPStreamPrivate" c:type="GstRTSPStreamPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <glib:signal name="new-rtcp-encoder" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gst.Element"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="new-rtp-encoder" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gst.Element"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="new-rtp-rtcp-decoder" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gst.Element"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="RTSPStreamClass" c:type="GstRTSPStreamClass" glib:is-gtype-struct-for="RTSPStream">
      
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="RTSPStreamPrivate" c:type="GstRTSPStreamPrivate" disguised="1">
      
    </record>
    <class name="RTSPStreamTransport" c:symbol-prefix="rtsp_stream_transport" c:type="GstRTSPStreamTransport" parent="GObject.Object" glib:type-name="GstRTSPStreamTransport" glib:get-type="gst_rtsp_stream_transport_get_type" glib:type-struct="RTSPStreamTransportClass">
      <doc xml:space="preserve">A Transport description for a stream</doc>
      
      <constructor name="new" c:identifier="gst_rtsp_stream_transport_new">
        <doc xml:space="preserve">Create a new #GstRTSPStreamTransport that can be used to manage
@stream with transport @tr.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPStreamTransport</doc>
          <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
        </return-value>
        <parameters>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStream</doc>
            <type name="RTSPStream" c:type="GstRTSPStream*"/>
          </parameter>
          <parameter name="tr" transfer-ownership="full">
            <doc xml:space="preserve">a GstRTSPTransport</doc>
            <type name="GstRtsp.RTSPTransport" c:type="GstRTSPTransport*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_rtpinfo" c:identifier="gst_rtsp_stream_transport_get_rtpinfo">
        <doc xml:space="preserve">Get the RTP-Info string for @trans and @start_time.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the RTPInfo string for @trans
and @start_time or %NULL when the RTP-Info could not be
determined. g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
          <parameter name="start_time" transfer-ownership="none">
            <doc xml:space="preserve">a star time</doc>
            <type name="Gst.ClockTime" c:type="GstClockTime"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_stream" c:identifier="gst_rtsp_stream_transport_get_stream">
        <doc xml:space="preserve">Get the #GstRTSPStream used when constructing @trans.</doc>
        
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the stream used when constructing @trans.</doc>
          <type name="RTSPStream" c:type="GstRTSPStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_transport" c:identifier="gst_rtsp_stream_transport_get_transport">
        <doc xml:space="preserve">Get the transport configured in @trans.</doc>
        
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the transport configured in @trans. It remains
valid for as long as @trans is valid.</doc>
          <type name="GstRtsp.RTSPTransport" c:type="const GstRTSPTransport*"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_url" c:identifier="gst_rtsp_stream_transport_get_url">
        <doc xml:space="preserve">Get the url configured in @trans.</doc>
        
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the url configured in @trans.
It remains valid for as long as @trans is valid.</doc>
          <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_timed_out" c:identifier="gst_rtsp_stream_transport_is_timed_out">
        <doc xml:space="preserve">Check if @trans is timed out.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @trans timed out.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="keep_alive" c:identifier="gst_rtsp_stream_transport_keep_alive">
        <doc xml:space="preserve">Signal the installed keep_alive callback for @trans.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="message_sent" c:identifier="gst_rtsp_stream_transport_message_sent" version="1.16">
        <doc xml:space="preserve">Signal the installed message_sent / message_sent_full callback for @trans.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="recv_data" c:identifier="gst_rtsp_stream_transport_recv_data">
        <doc xml:space="preserve">Receive @buffer on @channel @trans.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstFlowReturn. Returns GST_FLOW_NOT_LINKED when @channel is not
   configured in the transport of @trans.</doc>
          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
          <parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a channel</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="buffer" transfer-ownership="full">
            <doc xml:space="preserve">a #GstBuffer</doc>
            <type name="Gst.Buffer" c:type="GstBuffer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_rtcp" c:identifier="gst_rtsp_stream_transport_send_rtcp">
        <doc xml:space="preserve">Send @buffer to the installed RTCP callback for @trans.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">a #GstBuffer</doc>
            <type name="Gst.Buffer" c:type="GstBuffer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_rtcp_list" c:identifier="gst_rtsp_stream_transport_send_rtcp_list" version="1.16">
        <doc xml:space="preserve">Send @buffer_list to the installed RTCP callback for @trans.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
          <parameter name="buffer_list" transfer-ownership="none">
            <doc xml:space="preserve">a #GstBuffer</doc>
            <type name="Gst.BufferList" c:type="GstBufferList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_rtp" c:identifier="gst_rtsp_stream_transport_send_rtp">
        <doc xml:space="preserve">Send @buffer to the installed RTP callback for @trans.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">a #GstBuffer</doc>
            <type name="Gst.Buffer" c:type="GstBuffer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_rtp_list" c:identifier="gst_rtsp_stream_transport_send_rtp_list" version="1.16">
        <doc xml:space="preserve">Send @buffer_list to the installed RTP callback for @trans.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
          <parameter name="buffer_list" transfer-ownership="none">
            <doc xml:space="preserve">a #GstBufferList</doc>
            <type name="Gst.BufferList" c:type="GstBufferList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_active" c:identifier="gst_rtsp_stream_transport_set_active">
        <doc xml:space="preserve">Activate or deactivate datatransfer configured in @trans.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE when the state was changed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
          <parameter name="active" transfer-ownership="none">
            <doc xml:space="preserve">new state of @trans</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_callbacks" c:identifier="gst_rtsp_stream_transport_set_callbacks">
        <doc xml:space="preserve">Install callbacks that will be called when data for a stream should be sent
to a client. This is usually used when sending RTP/RTCP over TCP.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
          <parameter name="send_rtp" transfer-ownership="none" scope="notified">
            <doc xml:space="preserve">a callback called when RTP should be sent</doc>
            <type name="RTSPSendFunc" c:type="GstRTSPSendFunc"/>
          </parameter>
          <parameter name="send_rtcp" transfer-ownership="none" scope="notified" closure="2" destroy="3">
            <doc xml:space="preserve">a callback called when RTCP should be sent</doc>
            <type name="RTSPSendFunc" c:type="GstRTSPSendFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">user data passed to callbacks</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async">
            <doc xml:space="preserve">called with the user_data when no longer needed.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_keepalive" c:identifier="gst_rtsp_stream_transport_set_keepalive">
        <doc xml:space="preserve">Install callbacks that will be called when RTCP packets are received from the
receiver of @trans.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
          <parameter name="keep_alive" transfer-ownership="none" scope="notified" closure="1" destroy="2">
            <doc xml:space="preserve">a callback called when the receiver is active</doc>
            <type name="RTSPKeepAliveFunc" c:type="GstRTSPKeepAliveFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">user data passed to callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async">
            <doc xml:space="preserve">called with the user_data when no longer needed.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_list_callbacks" c:identifier="gst_rtsp_stream_transport_set_list_callbacks" version="1.16">
        <doc xml:space="preserve">Install callbacks that will be called when data for a stream should be sent
to a client. This is usually used when sending RTP/RTCP over TCP.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
          <parameter name="send_rtp_list" transfer-ownership="none" scope="notified">
            <doc xml:space="preserve">a callback called when RTP should be sent</doc>
            <type name="RTSPSendListFunc" c:type="GstRTSPSendListFunc"/>
          </parameter>
          <parameter name="send_rtcp_list" transfer-ownership="none" scope="notified" closure="2" destroy="3">
            <doc xml:space="preserve">a callback called when RTCP should be sent</doc>
            <type name="RTSPSendListFunc" c:type="GstRTSPSendListFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">user data passed to callbacks</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async">
            <doc xml:space="preserve">called with the user_data when no longer needed.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_message_sent" c:identifier="gst_rtsp_stream_transport_set_message_sent">
        <doc xml:space="preserve">Install a callback that will be called when a message has been sent on @trans.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
          <parameter name="message_sent" transfer-ownership="none" scope="notified" closure="1" destroy="2">
            <doc xml:space="preserve">a callback called when a message has been sent</doc>
            <type name="RTSPMessageSentFunc" c:type="GstRTSPMessageSentFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">user data passed to callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async">
            <doc xml:space="preserve">called with the user_data when no longer needed</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_message_sent_full" c:identifier="gst_rtsp_stream_transport_set_message_sent_full" version="1.18">
        <doc xml:space="preserve">Install a callback that will be called when a message has been sent on @trans.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
          <parameter name="message_sent" transfer-ownership="none" scope="notified" closure="1" destroy="2">
            <doc xml:space="preserve">a callback called when a message has been sent</doc>
            <type name="RTSPMessageSentFuncFull" c:type="GstRTSPMessageSentFuncFull"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">user data passed to callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async">
            <doc xml:space="preserve">called with the user_data when no longer needed</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_timed_out" c:identifier="gst_rtsp_stream_transport_set_timed_out">
        <doc xml:space="preserve">Set the timed out state of @trans to @timedout</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
          <parameter name="timedout" transfer-ownership="none">
            <doc xml:space="preserve">timed out value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_transport" c:identifier="gst_rtsp_stream_transport_set_transport">
        <doc xml:space="preserve">Set @tr as the client transport. This function takes ownership of the
passed @tr.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
          <parameter name="tr" transfer-ownership="full">
            <doc xml:space="preserve">a client #GstRTSPTransport</doc>
            <type name="GstRtsp.RTSPTransport" c:type="GstRTSPTransport*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_url" c:identifier="gst_rtsp_stream_transport_set_url">
        <doc xml:space="preserve">Set @url as the client url.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPStreamTransport</doc>
            <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a client #GstRTSPUrl</doc>
            <type name="GstRtsp.RTSPUrl" c:type="const GstRTSPUrl*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <doc xml:space="preserve">parent instance</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RTSPStreamTransportPrivate" c:type="GstRTSPStreamTransportPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="RTSPStreamTransportClass" c:type="GstRTSPStreamTransportClass" glib:is-gtype-struct-for="RTSPStreamTransport">
      
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <callback name="RTSPStreamTransportFilterFunc" c:type="GstRTSPStreamTransportFilterFunc">
      <doc xml:space="preserve">This function will be called by the gst_rtsp_stream_transport_filter(). An
implementation should return a value of #GstRTSPFilterResult.

When this function returns #GST_RTSP_FILTER_REMOVE, @trans will be removed
from @stream.

A return value of #GST_RTSP_FILTER_KEEP will leave @trans untouched in
@stream.

A value of #GST_RTSP_FILTER_REF will add @trans to the result #GList of
gst_rtsp_stream_transport_filter().</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPFilterResult.</doc>
        <type name="RTSPFilterResult" c:type="GstRTSPFilterResult"/>
      </return-value>
      <parameters>
        <parameter name="stream" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPStream object</doc>
          <type name="RTSPStream" c:type="GstRTSPStream*"/>
        </parameter>
        <parameter name="trans" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPStreamTransport in @stream</doc>
          <type name="RTSPStreamTransport" c:type="GstRTSPStreamTransport*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2">
          <doc xml:space="preserve">user data that has been given to gst_rtsp_stream_transport_filter()</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="RTSPStreamTransportPrivate" c:type="GstRTSPStreamTransportPrivate" disguised="1">
      
    </record>
    <enumeration name="RTSPSuspendMode" glib:type-name="GstRTSPSuspendMode" glib:get-type="gst_rtsp_suspend_mode_get_type" c:type="GstRTSPSuspendMode">
      <doc xml:space="preserve">The suspend mode of the media pipeline. A media pipeline is suspended right
after creating the SDP and when the client performs a PAUSED request.</doc>
      <member name="none" value="0" c:identifier="GST_RTSP_SUSPEND_MODE_NONE" glib:nick="none">
        <doc xml:space="preserve">Media is not suspended</doc>
      </member>
      <member name="pause" value="1" c:identifier="GST_RTSP_SUSPEND_MODE_PAUSE" glib:nick="pause">
        <doc xml:space="preserve">Media is PAUSED in suspend</doc>
      </member>
      <member name="reset" value="2" c:identifier="GST_RTSP_SUSPEND_MODE_RESET" glib:nick="reset">
        <doc xml:space="preserve">The media is set to NULL when suspended</doc>
      </member>
    </enumeration>
    <record name="RTSPThread" c:type="GstRTSPThread" glib:type-name="GstRTSPThread" glib:get-type="gst_rtsp_thread_get_type" c:symbol-prefix="rtsp_thread">
      <doc xml:space="preserve">Structure holding info about a mainloop running in a thread</doc>
      
      <field name="mini_object" writable="1">
        <doc xml:space="preserve">parent #GstMiniObject</doc>
        <type name="Gst.MiniObject" c:type="GstMiniObject"/>
      </field>
      <field name="type" writable="1">
        <doc xml:space="preserve">the thread type</doc>
        <type name="RTSPThreadType" c:type="GstRTSPThreadType"/>
      </field>
      <field name="context" writable="1">
        <doc xml:space="preserve">a #GMainContext</doc>
        <type name="GLib.MainContext" c:type="GMainContext*"/>
      </field>
      <field name="loop" writable="1">
        <doc xml:space="preserve">a #GMainLoop</doc>
        <type name="GLib.MainLoop" c:type="GMainLoop*"/>
      </field>
      <constructor name="new" c:identifier="gst_rtsp_thread_new">
        <doc xml:space="preserve">Create a new thread object that can run a mainloop.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GstRTSPThread.</doc>
          <type name="RTSPThread" c:type="GstRTSPThread*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">the thread type</doc>
            <type name="RTSPThreadType" c:type="GstRTSPThreadType"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="reuse" c:identifier="gst_rtsp_thread_reuse">
        <doc xml:space="preserve">Reuse the mainloop of @thread</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the mainloop could be reused</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="thread" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPThread</doc>
            <type name="RTSPThread" c:type="GstRTSPThread*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="gst_rtsp_thread_stop">
        <doc xml:space="preserve">Stop and unref @thread. When no threads are using the mainloop, the thread
will be stopped and the final ref to @thread will be released.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="thread" transfer-ownership="full">
            <doc xml:space="preserve">a #GstRTSPThread</doc>
            <type name="RTSPThread" c:type="GstRTSPThread*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="RTSPThreadPool" c:symbol-prefix="rtsp_thread_pool" c:type="GstRTSPThreadPool" parent="GObject.Object" glib:type-name="GstRTSPThreadPool" glib:get-type="gst_rtsp_thread_pool_get_type" glib:type-struct="RTSPThreadPoolClass">
      <doc xml:space="preserve">The thread pool structure.</doc>
      
      <constructor name="new" c:identifier="gst_rtsp_thread_pool_new">
        <doc xml:space="preserve">Create a new #GstRTSPThreadPool instance.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstRTSPThreadPool</doc>
          <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/>
        </return-value>
      </constructor>
      <function name="cleanup" c:identifier="gst_rtsp_thread_pool_cleanup">
        <doc xml:space="preserve">Wait for all tasks to be stopped and free all allocated resources. This is
mainly used in test suites to ensure proper cleanup of internal data
structures.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <virtual-method name="configure_thread">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/>
          </instance-parameter>
          <parameter name="thread" transfer-ownership="none">
            <type name="RTSPThread" c:type="GstRTSPThread*"/>
          </parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_thread" invoker="get_thread">
        <doc xml:space="preserve">Get a new #GstRTSPThread for @type and @ctx.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a new #GstRTSPThread,
gst_rtsp_thread_stop() after usage</doc>
          <type name="RTSPThread" c:type="GstRTSPThread*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPThreadPool</doc>
            <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">the #GstRTSPThreadType</doc>
            <type name="RTSPThreadType" c:type="GstRTSPThreadType"/>
          </parameter>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="thread_enter">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/>
          </instance-parameter>
          <parameter name="thread" transfer-ownership="none">
            <type name="RTSPThread" c:type="GstRTSPThread*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="thread_leave">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/>
          </instance-parameter>
          <parameter name="thread" transfer-ownership="none">
            <type name="RTSPThread" c:type="GstRTSPThread*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_max_threads" c:identifier="gst_rtsp_thread_pool_get_max_threads">
        <doc xml:space="preserve">Get the maximum number of threads used for client connections.
See gst_rtsp_thread_pool_set_max_threads().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the maximum number of threads.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPThreadPool</doc>
            <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_thread" c:identifier="gst_rtsp_thread_pool_get_thread">
        <doc xml:space="preserve">Get a new #GstRTSPThread for @type and @ctx.</doc>
        
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a new #GstRTSPThread,
gst_rtsp_thread_stop() after usage</doc>
          <type name="RTSPThread" c:type="GstRTSPThread*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPThreadPool</doc>
            <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">the #GstRTSPThreadType</doc>
            <type name="RTSPThreadType" c:type="GstRTSPThreadType"/>
          </parameter>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPContext</doc>
            <type name="RTSPContext" c:type="GstRTSPContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_threads" c:identifier="gst_rtsp_thread_pool_set_max_threads">
        <doc xml:space="preserve">Set the maximum threads used by the pool to handle client requests.
A value of 0 will use the pool mainloop, a value of -1 will use an
unlimited number of threads.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPThreadPool</doc>
            <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/>
          </instance-parameter>
          <parameter name="max_threads" transfer-ownership="none">
            <doc xml:space="preserve">maximum threads</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="max-threads" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RTSPThreadPoolPrivate" c:type="GstRTSPThreadPoolPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="RTSPThreadPoolClass" c:type="GstRTSPThreadPoolClass" glib:is-gtype-struct-for="RTSPThreadPool">
      <doc xml:space="preserve">Class for managing threads.</doc>
      
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="pool">
        <doc xml:space="preserve">a #GThreadPool used internally</doc>
        <type name="GLib.ThreadPool" c:type="GThreadPool*"/>
      </field>
      <field name="get_thread">
        <callback name="get_thread">
          
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve">a new #GstRTSPThread,
gst_rtsp_thread_stop() after usage</doc>
            <type name="RTSPThread" c:type="GstRTSPThread*"/>
          </return-value>
          <parameters>
            <parameter name="pool" transfer-ownership="none">
              <doc xml:space="preserve">a #GstRTSPThreadPool</doc>
              <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/>
            </parameter>
            <parameter name="type" transfer-ownership="none">
              <doc xml:space="preserve">the #GstRTSPThreadType</doc>
              <type name="RTSPThreadType" c:type="GstRTSPThreadType"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <doc xml:space="preserve">a #GstRTSPContext</doc>
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="configure_thread">
        <callback name="configure_thread">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="pool" transfer-ownership="none">
              <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/>
            </parameter>
            <parameter name="thread" transfer-ownership="none">
              <type name="RTSPThread" c:type="GstRTSPThread*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="RTSPContext" c:type="GstRTSPContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="thread_enter">
        <callback name="thread_enter">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="pool" transfer-ownership="none">
              <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/>
            </parameter>
            <parameter name="thread" transfer-ownership="none">
              <type name="RTSPThread" c:type="GstRTSPThread*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="thread_leave">
        <callback name="thread_leave">
          
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="pool" transfer-ownership="none">
              <type name="RTSPThreadPool" c:type="GstRTSPThreadPool*"/>
            </parameter>
            <parameter name="thread" transfer-ownership="none">
              <type name="RTSPThread" c:type="GstRTSPThread*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="RTSPThreadPoolPrivate" c:type="GstRTSPThreadPoolPrivate" disguised="1">
      
    </record>
    <enumeration name="RTSPThreadType" c:type="GstRTSPThreadType">
      <doc xml:space="preserve">Different thread types</doc>
      
      <member name="client" value="0" c:identifier="GST_RTSP_THREAD_TYPE_CLIENT">
        <doc xml:space="preserve">a thread to handle the client communication</doc>
      </member>
      <member name="media" value="1" c:identifier="GST_RTSP_THREAD_TYPE_MEDIA">
        <doc xml:space="preserve">a thread to handle media</doc>
      </member>
    </enumeration>
    <record name="RTSPToken" c:type="GstRTSPToken" glib:type-name="GstRTSPToken" glib:get-type="gst_rtsp_token_get_type" c:symbol-prefix="rtsp_token">
      <doc xml:space="preserve">An opaque object used for checking authorisations.
It is generated after successful authentication.</doc>
      
      <field name="mini_object" writable="1">
        <type name="Gst.MiniObject" c:type="GstMiniObject"/>
      </field>
      <constructor name="new" c:identifier="gst_rtsp_token_new" shadowed-by="new_empty" introspectable="0">
        <doc xml:space="preserve">Create a new Authorization token with the given fieldnames and values.
Arguments are given similar to gst_structure_new().</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new authorization token.</doc>
          <type name="RTSPToken" c:type="GstRTSPToken*"/>
        </return-value>
        <parameters>
          <parameter name="firstfield" transfer-ownership="none">
            <doc xml:space="preserve">the first fieldname</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve">additional arguments</doc>
            <varargs/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_empty" c:identifier="gst_rtsp_token_new_empty" shadows="new">
        <doc xml:space="preserve">Create a new empty Authorization token.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new empty authorization token.</doc>
          <type name="RTSPToken" c:type="GstRTSPToken*"/>
        </return-value>
      </constructor>
      <constructor name="new_valist" c:identifier="gst_rtsp_token_new_valist" introspectable="0">
        <doc xml:space="preserve">Create a new Authorization token with the given fieldnames and values.
Arguments are given similar to gst_structure_new_valist().</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new authorization token.</doc>
          <type name="RTSPToken" c:type="GstRTSPToken*"/>
        </return-value>
        <parameters>
          <parameter name="firstfield" transfer-ownership="none">
            <doc xml:space="preserve">the first fieldname</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="var_args" transfer-ownership="none">
            <doc xml:space="preserve">additional arguments</doc>
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_string" c:identifier="gst_rtsp_token_get_string">
        <doc xml:space="preserve">Get the string value of @field in @token.</doc>
        
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the string value of @field in
@token or %NULL when @field is not defined in @token. The string
becomes invalid when you free @token.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="token" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPToken</doc>
            <type name="RTSPToken" c:type="GstRTSPToken*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <doc xml:space="preserve">a field name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_structure" c:identifier="gst_rtsp_token_get_structure">
        <doc xml:space="preserve">Access the structure of the token.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The structure of the token. The structure is still
owned by the token, which means that you should not free it and that the
pointer becomes invalid when you free the token.

MT safe.</doc>
          <type name="Gst.Structure" c:type="const GstStructure*"/>
        </return-value>
        <parameters>
          <instance-parameter name="token" transfer-ownership="none">
            <doc xml:space="preserve">The #GstRTSPToken.</doc>
            <type name="RTSPToken" c:type="GstRTSPToken*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_allowed" c:identifier="gst_rtsp_token_is_allowed">
        <doc xml:space="preserve">Check if @token has a boolean @field and if it is set to %TRUE.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @token has a boolean field named @field set to %TRUE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="token" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPToken</doc>
            <type name="RTSPToken" c:type="GstRTSPToken*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <doc xml:space="preserve">a field name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bool" c:identifier="gst_rtsp_token_set_bool" version="1.14">
        <doc xml:space="preserve">Sets a boolean value on @token.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="token" transfer-ownership="none">
            <doc xml:space="preserve">The #GstRTSPToken.</doc>
            <type name="RTSPToken" c:type="GstRTSPToken*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <doc xml:space="preserve">field to set</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="bool_value" transfer-ownership="none">
            <doc xml:space="preserve">boolean value to set</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_string" c:identifier="gst_rtsp_token_set_string" version="1.14">
        <doc xml:space="preserve">Sets a string value on @token.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="token" transfer-ownership="none">
            <doc xml:space="preserve">The #GstRTSPToken.</doc>
            <type name="RTSPToken" c:type="GstRTSPToken*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <doc xml:space="preserve">field to set</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="string_value" transfer-ownership="none">
            <doc xml:space="preserve">string value to set</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="writable_structure" c:identifier="gst_rtsp_token_writable_structure">
        <doc xml:space="preserve">Get a writable version of the structure.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The structure of the token. The structure is still
owned by the token, which means that you should not free it and that the
pointer becomes invalid when you free the token. This function checks if
@token is writable and will never return %NULL.

MT safe.</doc>
          <type name="Gst.Structure" c:type="GstStructure*"/>
        </return-value>
        <parameters>
          <instance-parameter name="token" transfer-ownership="none">
            <doc xml:space="preserve">The #GstRTSPToken.</doc>
            <type name="RTSPToken" c:type="GstRTSPToken*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <bitfield name="RTSPTransportMode" glib:type-name="GstRTSPTransportMode" glib:get-type="gst_rtsp_transport_mode_get_type" c:type="GstRTSPTransportMode">
      <doc xml:space="preserve">The supported modes of the media.</doc>
      <member name="play" value="1" c:identifier="GST_RTSP_TRANSPORT_MODE_PLAY" glib:nick="play">
        <doc xml:space="preserve">Transport supports PLAY mode</doc>
      </member>
      <member name="record" value="2" c:identifier="GST_RTSP_TRANSPORT_MODE_RECORD" glib:nick="record">
        <doc xml:space="preserve">Transport supports RECORD mode</doc>
      </member>
    </bitfield>
    <function-macro name="RTSP_ADDRESS_POOL" c:identifier="GST_RTSP_ADDRESS_POOL" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="RTSP_ADDRESS_POOL_ANY_IPV4" value="0.0.0.0" c:type="GST_RTSP_ADDRESS_POOL_ANY_IPV4">
      <doc xml:space="preserve">Used with gst_rtsp_address_pool_add_range() to bind to all
IPv4 addresses</doc>
      
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RTSP_ADDRESS_POOL_ANY_IPV6" value="::" c:type="GST_RTSP_ADDRESS_POOL_ANY_IPV6">
      <doc xml:space="preserve">Used with gst_rtsp_address_pool_add_range() to bind to all
IPv6 addresses</doc>
      
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function-macro name="RTSP_ADDRESS_POOL_CAST" c:identifier="GST_RTSP_ADDRESS_POOL_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ADDRESS_POOL_CLASS" c:identifier="GST_RTSP_ADDRESS_POOL_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ADDRESS_POOL_CLASS_CAST" c:identifier="GST_RTSP_ADDRESS_POOL_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ADDRESS_POOL_GET_CLASS" c:identifier="GST_RTSP_ADDRESS_POOL_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_AUTH" c:identifier="GST_RTSP_AUTH" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_AUTH_CAST" c:identifier="GST_RTSP_AUTH_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="RTSP_AUTH_CHECK_CONNECT" value="auth.check.connect" c:type="GST_RTSP_AUTH_CHECK_CONNECT">
      <doc xml:space="preserve">Check a new connection</doc>
      
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RTSP_AUTH_CHECK_MEDIA_FACTORY_ACCESS" value="auth.check.media.factory.access" c:type="GST_RTSP_AUTH_CHECK_MEDIA_FACTORY_ACCESS">
      <doc xml:space="preserve">Check if access is allowed to a factory.
When access is not allowed an 404 Not Found is sent in the response.</doc>
      
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RTSP_AUTH_CHECK_MEDIA_FACTORY_CONSTRUCT" value="auth.check.media.factory.construct" c:type="GST_RTSP_AUTH_CHECK_MEDIA_FACTORY_CONSTRUCT">
      <doc xml:space="preserve">Check if media can be constructed from a media factory
A response should be sent on error.</doc>
      
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RTSP_AUTH_CHECK_TRANSPORT_CLIENT_SETTINGS" value="auth.check.transport.client-settings" c:type="GST_RTSP_AUTH_CHECK_TRANSPORT_CLIENT_SETTINGS">
      <doc xml:space="preserve">Check if the client can specify TTL, destination and
port pair in multicast. No response is sent when the check returns
%FALSE.</doc>
      
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RTSP_AUTH_CHECK_URL" value="auth.check.url" c:type="GST_RTSP_AUTH_CHECK_URL">
      <doc xml:space="preserve">Check the URL and methods</doc>
      
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function-macro name="RTSP_AUTH_CLASS" c:identifier="GST_RTSP_AUTH_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_AUTH_CLASS_CAST" c:identifier="GST_RTSP_AUTH_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_AUTH_GET_CLASS" c:identifier="GST_RTSP_AUTH_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_CLIENT" c:identifier="GST_RTSP_CLIENT" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_CLIENT_CAST" c:identifier="GST_RTSP_CLIENT_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_CLIENT_CLASS" c:identifier="GST_RTSP_CLIENT_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_CLIENT_CLASS_CAST" c:identifier="GST_RTSP_CLIENT_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_CLIENT_GET_CLASS" c:identifier="GST_RTSP_CLIENT_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MEDIA" c:identifier="GST_RTSP_MEDIA" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MEDIA_CAST" c:identifier="GST_RTSP_MEDIA_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MEDIA_CLASS" c:identifier="GST_RTSP_MEDIA_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MEDIA_CLASS_CAST" c:identifier="GST_RTSP_MEDIA_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MEDIA_FACTORY" c:identifier="GST_RTSP_MEDIA_FACTORY" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MEDIA_FACTORY_CAST" c:identifier="GST_RTSP_MEDIA_FACTORY_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MEDIA_FACTORY_CLASS" c:identifier="GST_RTSP_MEDIA_FACTORY_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MEDIA_FACTORY_CLASS_CAST" c:identifier="GST_RTSP_MEDIA_FACTORY_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MEDIA_FACTORY_GET_CLASS" c:identifier="GST_RTSP_MEDIA_FACTORY_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MEDIA_FACTORY_URI" c:identifier="GST_RTSP_MEDIA_FACTORY_URI" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MEDIA_FACTORY_URI_CAST" c:identifier="GST_RTSP_MEDIA_FACTORY_URI_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MEDIA_FACTORY_URI_CLASS" c:identifier="GST_RTSP_MEDIA_FACTORY_URI_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MEDIA_FACTORY_URI_CLASS_CAST" c:identifier="GST_RTSP_MEDIA_FACTORY_URI_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MEDIA_FACTORY_URI_GET_CLASS" c:identifier="GST_RTSP_MEDIA_FACTORY_URI_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MEDIA_GET_CLASS" c:identifier="GST_RTSP_MEDIA_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MOUNT_POINTS" c:identifier="GST_RTSP_MOUNT_POINTS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MOUNT_POINTS_CAST" c:identifier="GST_RTSP_MOUNT_POINTS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MOUNT_POINTS_CLASS" c:identifier="GST_RTSP_MOUNT_POINTS_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MOUNT_POINTS_CLASS_CAST" c:identifier="GST_RTSP_MOUNT_POINTS_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MOUNT_POINTS_GET_CLASS" c:identifier="GST_RTSP_MOUNT_POINTS_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="RTSP_ONVIF_BACKCHANNEL_REQUIREMENT" value="www.onvif.org/ver20/backchannel" c:type="GST_RTSP_ONVIF_BACKCHANNEL_REQUIREMENT">
      
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function-macro name="RTSP_ONVIF_CLIENT" c:identifier="GST_RTSP_ONVIF_CLIENT" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_CLIENT_CAST" c:identifier="GST_RTSP_ONVIF_CLIENT_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_CLIENT_CLASS" c:identifier="GST_RTSP_ONVIF_CLIENT_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_CLIENT_CLASS_CAST" c:identifier="GST_RTSP_ONVIF_CLIENT_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_CLIENT_GET_CLASS" c:identifier="GST_RTSP_ONVIF_CLIENT_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_MEDIA" c:identifier="GST_RTSP_ONVIF_MEDIA" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_MEDIA_CAST" c:identifier="GST_RTSP_ONVIF_MEDIA_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_MEDIA_CLASS" c:identifier="GST_RTSP_ONVIF_MEDIA_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_MEDIA_CLASS_CAST" c:identifier="GST_RTSP_ONVIF_MEDIA_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_MEDIA_FACTORY" c:identifier="GST_RTSP_ONVIF_MEDIA_FACTORY" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_MEDIA_FACTORY_CAST" c:identifier="GST_RTSP_ONVIF_MEDIA_FACTORY_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_MEDIA_FACTORY_CLASS" c:identifier="GST_RTSP_ONVIF_MEDIA_FACTORY_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_MEDIA_FACTORY_CLASS_CAST" c:identifier="GST_RTSP_ONVIF_MEDIA_FACTORY_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_MEDIA_FACTORY_GET_CLASS" c:identifier="GST_RTSP_ONVIF_MEDIA_FACTORY_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_MEDIA_GET_CLASS" c:identifier="GST_RTSP_ONVIF_MEDIA_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="RTSP_ONVIF_REPLAY_REQUIREMENT" value="onvif-replay" c:type="GST_RTSP_ONVIF_REPLAY_REQUIREMENT">
      
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function-macro name="RTSP_ONVIF_SERVER" c:identifier="GST_RTSP_ONVIF_SERVER" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_SERVER_CAST" c:identifier="GST_RTSP_ONVIF_SERVER_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_SERVER_CLASS" c:identifier="GST_RTSP_ONVIF_SERVER_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_SERVER_CLASS_CAST" c:identifier="GST_RTSP_ONVIF_SERVER_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_ONVIF_SERVER_GET_CLASS" c:identifier="GST_RTSP_ONVIF_SERVER_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_PERMISSIONS" c:identifier="GST_RTSP_PERMISSIONS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_PERMISSIONS_CAST" c:identifier="GST_RTSP_PERMISSIONS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="RTSP_PERM_MEDIA_FACTORY_ACCESS" value="media.factory.access" c:type="GST_RTSP_PERM_MEDIA_FACTORY_ACCESS">
      <doc xml:space="preserve">G_TYPE_BOOLEAN, %TRUE if the media can be accessed, %FALSE will
return a 404 Not Found error when trying to access the media.</doc>
      
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RTSP_PERM_MEDIA_FACTORY_CONSTRUCT" value="media.factory.construct" c:type="GST_RTSP_PERM_MEDIA_FACTORY_CONSTRUCT">
      <doc xml:space="preserve">G_TYPE_BOOLEAN, %TRUE if the media can be constructed, %FALSE will
return a 404 Not Found error when trying to access the media.</doc>
      
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function-macro name="RTSP_SERVER" c:identifier="GST_RTSP_SERVER" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SERVER_CAST" c:identifier="GST_RTSP_SERVER_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SERVER_CLASS" c:identifier="GST_RTSP_SERVER_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SERVER_CLASS_CAST" c:identifier="GST_RTSP_SERVER_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SERVER_DEPRECATED_FOR" c:identifier="GST_RTSP_SERVER_DEPRECATED_FOR" introspectable="0">
      
      <parameters>
        <parameter name="f">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SERVER_GET_CLASS" c:identifier="GST_RTSP_SERVER_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SESSION" c:identifier="GST_RTSP_SESSION" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SESSION_CAST" c:identifier="GST_RTSP_SESSION_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SESSION_CLASS" c:identifier="GST_RTSP_SESSION_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SESSION_CLASS_CAST" c:identifier="GST_RTSP_SESSION_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SESSION_GET_CLASS" c:identifier="GST_RTSP_SESSION_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SESSION_MEDIA" c:identifier="GST_RTSP_SESSION_MEDIA" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SESSION_MEDIA_CAST" c:identifier="GST_RTSP_SESSION_MEDIA_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SESSION_MEDIA_CLASS" c:identifier="GST_RTSP_SESSION_MEDIA_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SESSION_MEDIA_CLASS_CAST" c:identifier="GST_RTSP_SESSION_MEDIA_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SESSION_MEDIA_GET_CLASS" c:identifier="GST_RTSP_SESSION_MEDIA_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SESSION_POOL" c:identifier="GST_RTSP_SESSION_POOL" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SESSION_POOL_CAST" c:identifier="GST_RTSP_SESSION_POOL_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SESSION_POOL_CLASS" c:identifier="GST_RTSP_SESSION_POOL_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SESSION_POOL_CLASS_CAST" c:identifier="GST_RTSP_SESSION_POOL_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_SESSION_POOL_GET_CLASS" c:identifier="GST_RTSP_SESSION_POOL_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_STREAM" c:identifier="GST_RTSP_STREAM" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_STREAM_CAST" c:identifier="GST_RTSP_STREAM_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_STREAM_CLASS" c:identifier="GST_RTSP_STREAM_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_STREAM_CLASS_CAST" c:identifier="GST_RTSP_STREAM_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_STREAM_GET_CLASS" c:identifier="GST_RTSP_STREAM_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_STREAM_TRANSPORT" c:identifier="GST_RTSP_STREAM_TRANSPORT" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_STREAM_TRANSPORT_CAST" c:identifier="GST_RTSP_STREAM_TRANSPORT_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_STREAM_TRANSPORT_CLASS" c:identifier="GST_RTSP_STREAM_TRANSPORT_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_STREAM_TRANSPORT_CLASS_CAST" c:identifier="GST_RTSP_STREAM_TRANSPORT_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_STREAM_TRANSPORT_GET_CLASS" c:identifier="GST_RTSP_STREAM_TRANSPORT_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_THREAD" c:identifier="GST_RTSP_THREAD" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_THREAD_CAST" c:identifier="GST_RTSP_THREAD_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_THREAD_POOL" c:identifier="GST_RTSP_THREAD_POOL" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_THREAD_POOL_CAST" c:identifier="GST_RTSP_THREAD_POOL_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_THREAD_POOL_CLASS" c:identifier="GST_RTSP_THREAD_POOL_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_THREAD_POOL_CLASS_CAST" c:identifier="GST_RTSP_THREAD_POOL_CLASS_CAST" introspectable="0">
      
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_THREAD_POOL_GET_CLASS" c:identifier="GST_RTSP_THREAD_POOL_GET_CLASS" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_TOKEN" c:identifier="GST_RTSP_TOKEN" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_TOKEN_CAST" c:identifier="GST_RTSP_TOKEN_CAST" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="RTSP_TOKEN_MEDIA_FACTORY_ROLE" value="media.factory.role" c:type="GST_RTSP_TOKEN_MEDIA_FACTORY_ROLE">
      <doc xml:space="preserve">G_TYPE_STRING, the role to use when dealing with media factories

The default #GstRTSPAuth object uses this string in the token to find the
role of the media factory. It will then retrieve the #GstRTSPPermissions of
the media factory and retrieve the role with the same name.</doc>
      
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RTSP_TOKEN_TRANSPORT_CLIENT_SETTINGS" value="transport.client-settings" c:type="GST_RTSP_TOKEN_TRANSPORT_CLIENT_SETTINGS">
      <doc xml:space="preserve">G_TYPE_BOOLEAN, %TRUE if the client can specify TTL, destination and
    port pair in multicast.</doc>
      
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <record name="SDPInfo" c:type="GstSDPInfo">
      
      <field name="is_ipv6" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="server_ip" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
    </record>
    <function name="rtsp_context_get_current" c:identifier="gst_rtsp_context_get_current" moved-to="RTSPContext.get_current" introspectable="0">
      <doc xml:space="preserve">Get the current #GstRTSPContext. This object is retrieved from the
current thread that is handling the request for a client.</doc>
      
      <return-value>
        <doc xml:space="preserve">a #GstRTSPContext</doc>
        <type name="RTSPContext" c:type="GstRTSPContext*"/>
      </return-value>
    </function>
    <function name="rtsp_context_get_type" c:identifier="gst_rtsp_context_get_type">
      
      <return-value transfer-ownership="none">
        <type name="GType" c:type="GType"/>
      </return-value>
    </function>
    <function name="rtsp_params_get" c:identifier="gst_rtsp_params_get">
      <doc xml:space="preserve">Get parameters (not implemented yet)</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPResult</doc>
        <type name="GstRtsp.RTSPResult" c:type="GstRTSPResult"/>
      </return-value>
      <parameters>
        <parameter name="client" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPClient</doc>
          <type name="RTSPClient" c:type="GstRTSPClient*"/>
        </parameter>
        <parameter name="ctx" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPContext</doc>
          <type name="RTSPContext" c:type="GstRTSPContext*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_params_set" c:identifier="gst_rtsp_params_set">
      <doc xml:space="preserve">Set parameters (not implemented yet)</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPResult</doc>
        <type name="GstRtsp.RTSPResult" c:type="GstRTSPResult"/>
      </return-value>
      <parameters>
        <parameter name="client" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPClient</doc>
          <type name="RTSPClient" c:type="GstRTSPClient*"/>
        </parameter>
        <parameter name="ctx" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPContext</doc>
          <type name="RTSPContext" c:type="GstRTSPContext*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_sdp_from_media" c:identifier="gst_rtsp_sdp_from_media">
      <doc xml:space="preserve">Add @media specific info to @sdp. @info is used to configure the connection
information in the SDP.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">TRUE on success.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="sdp" transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPMessage</doc>
          <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
        </parameter>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPInfo</doc>
          <type name="SDPInfo" c:type="GstSDPInfo*"/>
        </parameter>
        <parameter name="media" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPMedia</doc>
          <type name="RTSPMedia" c:type="GstRTSPMedia*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_sdp_from_stream" c:identifier="gst_rtsp_sdp_from_stream">
      <doc xml:space="preserve">Add info from @stream to @sdp.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">TRUE on success.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="sdp" transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPMessage</doc>
          <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
        </parameter>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPInfo</doc>
          <type name="SDPInfo" c:type="GstSDPInfo*"/>
        </parameter>
        <parameter name="stream" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPStream</doc>
          <type name="RTSPStream" c:type="GstRTSPStream*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_sdp_make_media" c:identifier="gst_rtsp_sdp_make_media" version="1.14">
      <doc xml:space="preserve">Creates a #GstSDPMedia from the parameters and stores it in @sdp.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE on success</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="sdp" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPMessage</doc>
          <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
        </parameter>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPInfo</doc>
          <type name="SDPInfo" c:type="GstSDPInfo*"/>
        </parameter>
        <parameter name="stream" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPStream</doc>
          <type name="RTSPStream" c:type="GstRTSPStream*"/>
        </parameter>
        <parameter name="caps" transfer-ownership="none">
          <doc xml:space="preserve">a #GstCaps</doc>
          <type name="Gst.Caps" c:type="GstCaps*"/>
        </parameter>
        <parameter name="profile" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPProfile</doc>
          <type name="GstRtsp.RTSPProfile" c:type="GstRTSPProfile"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
