<?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="Gio" version="2.0"/>
  <include name="Gst" version="1.0"/>
  <include name="GstBase" version="1.0"/>
  <include name="GstSdp" version="1.0"/>
  <package name="gstreamer-rtsp-1.0"/>
  <c:include name="gst/rtsp/rtsp.h"/>
  <namespace name="GstRtsp" version="1.0" shared-library="libgstrtsp-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst">
    <function-macro name="IS_RTSP_EXTENSION" c:identifier="GST_IS_RTSP_EXTENSION" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <record name="RTSPAuthCredential" c:type="GstRTSPAuthCredential" version="1.12" glib:type-name="GstRTSPAuthCredential" glib:get-type="gst_rtsp_auth_credential_get_type" c:symbol-prefix="rtsp_auth_credential">
      <doc xml:space="preserve">RTSP Authentication credentials</doc>
      
      <field name="scheme" writable="1">
        <doc xml:space="preserve">a #GstRTSPAuthMethod</doc>
        <type name="RTSPAuthMethod" c:type="GstRTSPAuthMethod"/>
      </field>
      <field name="params" writable="1">
        <doc xml:space="preserve">A NULL-terminated array of #GstRTSPAuthParam</doc>
        <type name="RTSPAuthParam" c:type="GstRTSPAuthParam**"/>
      </field>
      <field name="authorization" writable="1">
        <doc xml:space="preserve">The authorization for the basic schem</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <enumeration name="RTSPAuthMethod" glib:type-name="GstRTSPAuthMethod" glib:get-type="gst_rtsp_auth_method_get_type" c:type="GstRTSPAuthMethod">
      <doc xml:space="preserve">Authentication methods, ordered by strength</doc>
      <member name="none" value="0" c:identifier="GST_RTSP_AUTH_NONE" glib:nick="none">
        <doc xml:space="preserve">no authentication</doc>
      </member>
      <member name="basic" value="1" c:identifier="GST_RTSP_AUTH_BASIC" glib:nick="basic">
        <doc xml:space="preserve">basic authentication</doc>
      </member>
      <member name="digest" value="2" c:identifier="GST_RTSP_AUTH_DIGEST" glib:nick="digest">
        <doc xml:space="preserve">digest authentication</doc>
      </member>
    </enumeration>
    <record name="RTSPAuthParam" c:type="GstRTSPAuthParam" version="1.12" glib:type-name="GstRTSPAuthParam" glib:get-type="gst_rtsp_auth_param_get_type" c:symbol-prefix="rtsp_auth_param">
      <doc xml:space="preserve">RTSP Authentication parameter</doc>
      
      <field name="name" writable="1">
        <doc xml:space="preserve">The name of the parameter</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="value" writable="1">
        <doc xml:space="preserve">The value of the parameter</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <method name="copy" c:identifier="gst_rtsp_auth_param_copy">
        
        <return-value transfer-ownership="full">
          <type name="RTSPAuthParam" c:type="GstRTSPAuthParam*"/>
        </return-value>
        <parameters>
          <instance-parameter name="param" transfer-ownership="none">
            <type name="RTSPAuthParam" c:type="GstRTSPAuthParam*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gst_rtsp_auth_param_free">
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="param" transfer-ownership="none">
            <type name="RTSPAuthParam" c:type="GstRTSPAuthParam*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="RTSPConnection" c:type="GstRTSPConnection" disguised="1">
      <doc xml:space="preserve">This object manages the RTSP connection to the server. It provides function
to receive and send bytes and messages.</doc>
      
      <method name="clear_auth_params" c:identifier="gst_rtsp_connection_clear_auth_params">
        <doc xml:space="preserve">Clear the list of authentication directives stored in @conn.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="close" c:identifier="gst_rtsp_connection_close">
        <doc xml:space="preserve">Close the connected @conn. After this call, the connection is in the same
state as when it was first created.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="connect" c:identifier="gst_rtsp_connection_connect" deprecated="1" deprecated-version="1.18">
        <doc xml:space="preserve">Attempt to connect to the url of @conn made with
gst_rtsp_connection_create(). If @timeout is %NULL this function can block
forever. If @timeout contains a valid timeout, this function will return
#GST_RTSP_ETIMEOUT after the timeout expired.

This function can be cancelled with gst_rtsp_connection_flush().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK when a connection could be made.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a GTimeVal timeout</doc>
            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect_usec" c:identifier="gst_rtsp_connection_connect_usec" version="1.18">
        <doc xml:space="preserve">Attempt to connect to the url of @conn made with
gst_rtsp_connection_create(). If @timeout is 0 this function can block
forever. If @timeout contains a valid timeout, this function will return
#GST_RTSP_ETIMEOUT after the timeout expired.

This function can be cancelled with gst_rtsp_connection_flush().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK when a connection could be made.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout in microseconds</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect_with_response" c:identifier="gst_rtsp_connection_connect_with_response" version="1.8" deprecated="1" deprecated-version="1.18">
        <doc xml:space="preserve">Attempt to connect to the url of @conn made with
gst_rtsp_connection_create(). If @timeout is %NULL this function can block
forever. If @timeout contains a valid timeout, this function will return
#GST_RTSP_ETIMEOUT after the timeout expired.  If @conn is set to tunneled,
@response will contain a response to the tunneling request messages.

This function can be cancelled with gst_rtsp_connection_flush().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK when a connection could be made.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a GTimeVal timeout</doc>
            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
          </parameter>
          <parameter name="response" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect_with_response_usec" c:identifier="gst_rtsp_connection_connect_with_response_usec" version="1.18">
        <doc xml:space="preserve">Attempt to connect to the url of @conn made with
gst_rtsp_connection_create(). If @timeout is 0 this function can block
forever. If @timeout contains a valid timeout, this function will return
#GST_RTSP_ETIMEOUT after the timeout expired.  If @conn is set to tunneled,
@response will contain a response to the tunneling request messages.

This function can be cancelled with gst_rtsp_connection_flush().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK when a connection could be made.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout in microseconds</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="response" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="do_tunnel" c:identifier="gst_rtsp_connection_do_tunnel">
        <doc xml:space="preserve">If @conn received the first tunnel connection and @conn2 received
the second tunnel connection, link the two connections together so that
@conn manages the tunneled connection.

After this call, @conn2 cannot be used anymore and must be freed with
gst_rtsp_connection_free().

If @conn2 is %NULL then only the base64 decoding context will be setup for
@conn.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">return GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="conn2" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection or %NULL</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </parameter>
        </parameters>
      </method>
      <method name="flush" c:identifier="gst_rtsp_connection_flush">
        <doc xml:space="preserve">Start or stop the flushing action on @conn. When flushing, all current
and future actions on @conn will return #GST_RTSP_EINTR until the connection
is set to non-flushing mode again.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="flush" transfer-ownership="none">
            <doc xml:space="preserve">start or stop the flush</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gst_rtsp_connection_free">
        <doc xml:space="preserve">Close and free @conn.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ip" c:identifier="gst_rtsp_connection_get_ip">
        <doc xml:space="preserve">Retrieve the IP address of the other end of @conn.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The IP address as a string. this value remains valid until the
connection is closed.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="const GstRTSPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_read_socket" c:identifier="gst_rtsp_connection_get_read_socket">
        <doc xml:space="preserve">Get the file descriptor for reading.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the file descriptor used for reading or %NULL on
error. The file descriptor remains valid until the connection is closed.</doc>
          <type name="Gio.Socket" c:type="GSocket*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="const GstRTSPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_remember_session_id" c:identifier="gst_rtsp_connection_get_remember_session_id">
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the #GstRTSPConnection remembers the session id in the
last response to set it on any further request.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tls" c:identifier="gst_rtsp_connection_get_tls" version="1.2" throws="1">
        <doc xml:space="preserve">Get the TLS connection of @conn.

For client side this will return the #GTlsClientConnection when connected
over TLS.

For server side connections, this function will create a GTlsServerConnection
when called the first time and will return that same connection on subsequent
calls. The server is then responsible for configuring the TLS connection.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the TLS connection for @conn.</doc>
          <type name="Gio.TlsConnection" c:type="GTlsConnection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tls_database" c:identifier="gst_rtsp_connection_get_tls_database" version="1.4">
        <doc xml:space="preserve">Gets the anchor certificate authorities database that will be used
after a server certificate can't be verified with the default
certificate database.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the anchor certificate authorities database, or NULL if no
database has been previously set. Use g_object_unref() to release the
certificate database.</doc>
          <type name="Gio.TlsDatabase" c:type="GTlsDatabase*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tls_interaction" c:identifier="gst_rtsp_connection_get_tls_interaction" version="1.6">
        <doc xml:space="preserve">Gets a #GTlsInteraction object to be used when the connection or certificate
database need to interact with the user. This will be used to prompt the
user for passwords where necessary.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a reference on the #GTlsInteraction. Use
g_object_unref() to release.</doc>
          <type name="Gio.TlsInteraction" c:type="GTlsInteraction*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tls_validation_flags" c:identifier="gst_rtsp_connection_get_tls_validation_flags" version="1.2.1">
        <doc xml:space="preserve">Gets the TLS validation flags used to verify the peer certificate
when a TLS connection is established.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the validationg flags.</doc>
          <type name="Gio.TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tunnelid" c:identifier="gst_rtsp_connection_get_tunnelid">
        <doc xml:space="preserve">Get the tunnel session id the connection.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">returns a non-empty string if @conn is being tunneled over HTTP.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="const GstRTSPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_url" c:identifier="gst_rtsp_connection_get_url">
        <doc xml:space="preserve">Retrieve the URL of the other end of @conn.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The URL. This value remains valid until the
connection is freed.</doc>
          <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="const GstRTSPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_write_socket" c:identifier="gst_rtsp_connection_get_write_socket">
        <doc xml:space="preserve">Get the file descriptor for writing.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the file descriptor used for writing or NULL on
error. The file descriptor remains valid until the connection is closed.</doc>
          <type name="Gio.Socket" c:type="GSocket*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="const GstRTSPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_tunneled" c:identifier="gst_rtsp_connection_is_tunneled">
        <doc xml:space="preserve">Get the tunneling state of the connection.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">if @conn is using HTTP tunneling.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="const GstRTSPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="next_timeout" c:identifier="gst_rtsp_connection_next_timeout" deprecated="1" deprecated-version="1.18">
        <doc xml:space="preserve">Calculate the next timeout for @conn, storing the result in @timeout.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout</doc>
            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="next_timeout_usec" c:identifier="gst_rtsp_connection_next_timeout_usec" version="1.18">
        <doc xml:space="preserve">Calculate the next timeout for @conn</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#the next timeout in microseconds</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="poll" c:identifier="gst_rtsp_connection_poll" deprecated="1" deprecated-version="1.18">
        <doc xml:space="preserve">Wait up to the specified @timeout for the connection to become available for
at least one of the operations specified in @events. When the function returns
with #GST_RTSP_OK, @revents will contain a bitmask of available operations on
@conn.

@timeout can be %NULL, in which case this function might block forever.

This function can be cancelled with gst_rtsp_connection_flush().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="events" transfer-ownership="none">
            <doc xml:space="preserve">a bitmask of #GstRTSPEvent flags to check</doc>
            <type name="RTSPEvent" c:type="GstRTSPEvent"/>
          </parameter>
          <parameter name="revents" transfer-ownership="none">
            <doc xml:space="preserve">location for result flags</doc>
            <type name="RTSPEvent" c:type="GstRTSPEvent*"/>
          </parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout</doc>
            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="poll_usec" c:identifier="gst_rtsp_connection_poll_usec" version="1.18">
        <doc xml:space="preserve">Wait up to the specified @timeout for the connection to become available for
at least one of the operations specified in @events. When the function returns
with #GST_RTSP_OK, @revents will contain a bitmask of available operations on
@conn.

@timeout can be 0, in which case this function might block forever.

This function can be cancelled with gst_rtsp_connection_flush().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="events" transfer-ownership="none">
            <doc xml:space="preserve">a bitmask of #GstRTSPEvent flags to check</doc>
            <type name="RTSPEvent" c:type="GstRTSPEvent"/>
          </parameter>
          <parameter name="revents" transfer-ownership="none">
            <doc xml:space="preserve">location for result flags</doc>
            <type name="RTSPEvent" c:type="GstRTSPEvent*"/>
          </parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout in microseconds</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="read" c:identifier="gst_rtsp_connection_read" deprecated="1" deprecated-version="1.18">
        <doc xml:space="preserve">Attempt to read @size bytes into @data from the connected @conn, blocking up to
the specified @timeout. @timeout can be %NULL, in which case this function
might block forever.

This function can be cancelled with gst_rtsp_connection_flush().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">the data to read</doc>
            <type name="guint8" c:type="guint8*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the size of @data</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout value or %NULL</doc>
            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="read_usec" c:identifier="gst_rtsp_connection_read_usec" version="1.18">
        <doc xml:space="preserve">Attempt to read @size bytes into @data from the connected @conn, blocking up to
the specified @timeout. @timeout can be 0, in which case this function
might block forever.

This function can be cancelled with gst_rtsp_connection_flush().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">the data to read</doc>
            <type name="guint8" c:type="guint8*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the size of @data</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout value in microseconds</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="receive" c:identifier="gst_rtsp_connection_receive" deprecated="1" deprecated-version="1.18">
        <doc xml:space="preserve">Attempt to read into @message from the connected @conn, blocking up to
the specified @timeout. @timeout can be %NULL, in which case this function
might block forever.

This function can be cancelled with gst_rtsp_connection_flush().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve">the message to read</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout value or %NULL</doc>
            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="receive_usec" c:identifier="gst_rtsp_connection_receive_usec" version="1.18">
        <doc xml:space="preserve">Attempt to read into @message from the connected @conn, blocking up to
the specified @timeout. @timeout can be 0, in which case this function
might block forever.

This function can be cancelled with gst_rtsp_connection_flush().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve">the message to read</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout value or 0</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset_timeout" c:identifier="gst_rtsp_connection_reset_timeout">
        <doc xml:space="preserve">Reset the timeout of @conn.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="send" c:identifier="gst_rtsp_connection_send" deprecated="1" deprecated-version="1.18">
        <doc xml:space="preserve">Attempt to send @message to the connected @conn, blocking up to
the specified @timeout. @timeout can be %NULL, in which case this function
might block forever.

This function can be cancelled with gst_rtsp_connection_flush().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve">the message to send</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout value or %NULL</doc>
            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_messages" c:identifier="gst_rtsp_connection_send_messages" version="1.16" deprecated="1" deprecated-version="1.18">
        <doc xml:space="preserve">Attempt to send @messages to the connected @conn, blocking up to
the specified @timeout. @timeout can be %NULL, in which case this function
might block forever.

This function can be cancelled with gst_rtsp_connection_flush().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="messages" transfer-ownership="none">
            <doc xml:space="preserve">the messages to send</doc>
            <array length="1" zero-terminated="0" c:type="GstRTSPMessage*">
              <type name="RTSPMessage" c:type="GstRTSPMessage"/>
            </array>
          </parameter>
          <parameter name="n_messages" transfer-ownership="none">
            <doc xml:space="preserve">the number of messages to send</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout value or %NULL</doc>
            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_messages_usec" c:identifier="gst_rtsp_connection_send_messages_usec" version="1.18">
        <doc xml:space="preserve">Attempt to send @messages to the connected @conn, blocking up to
the specified @timeout. @timeout can be 0, in which case this function
might block forever.

This function can be cancelled with gst_rtsp_connection_flush().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on Since.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="messages" transfer-ownership="none">
            <doc xml:space="preserve">the messages to send</doc>
            <array length="1" zero-terminated="0" c:type="GstRTSPMessage*">
              <type name="RTSPMessage" c:type="GstRTSPMessage"/>
            </array>
          </parameter>
          <parameter name="n_messages" transfer-ownership="none">
            <doc xml:space="preserve">the number of messages to send</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout value in microseconds</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_usec" c:identifier="gst_rtsp_connection_send_usec" version="1.18">
        <doc xml:space="preserve">Attempt to send @message to the connected @conn, blocking up to
the specified @timeout. @timeout can be 0, in which case this function
might block forever.

This function can be cancelled with gst_rtsp_connection_flush().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve">the message to send</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout value in microseconds</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_accept_certificate_func" c:identifier="gst_rtsp_connection_set_accept_certificate_func" version="1.14">
        <doc xml:space="preserve">Sets a custom accept-certificate function for checking certificates for
validity. This will directly map to #GTlsConnection 's "accept-certificate"
signal and be performed after the default checks of #GstRTSPConnection
(checking against the #GTlsDatabase with the given #GTlsCertificateFlags)
have failed. If no #GTlsDatabase is set on this connection, only @func will
be called.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2">
            <doc xml:space="preserve">a #GstRTSPConnectionAcceptCertificateFunc to check certificates</doc>
            <type name="RTSPConnectionAcceptCertificateFunc" c:type="GstRTSPConnectionAcceptCertificateFunc"/>
          </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="destroy_notify" transfer-ownership="none" scope="async">
            <doc xml:space="preserve">#GDestroyNotify for @user_data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_auth" c:identifier="gst_rtsp_connection_set_auth">
        <doc xml:space="preserve">Configure @conn for authentication mode @method with @user and @pass as the
user and password respectively.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="method" transfer-ownership="none">
            <doc xml:space="preserve">authentication method</doc>
            <type name="RTSPAuthMethod" c:type="GstRTSPAuthMethod"/>
          </parameter>
          <parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="pass" transfer-ownership="none">
            <doc xml:space="preserve">the password</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_auth_param" c:identifier="gst_rtsp_connection_set_auth_param">
        <doc xml:space="preserve">Setup @conn with authentication directives. This is not necessary for
methods #GST_RTSP_AUTH_NONE and #GST_RTSP_AUTH_BASIC. For
#GST_RTSP_AUTH_DIGEST, directives should be taken from the digest challenge
in the WWW-Authenticate response header and can include realm, domain,
nonce, opaque, stale, algorithm, qop as per RFC2617.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve">authentication directive</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content_length_limit" c:identifier="gst_rtsp_connection_set_content_length_limit" version="1.18">
        <doc xml:space="preserve">Configure @conn to use the specified Content-Length limit.
Both requests and responses are validated. If content-length is
exceeded, ENOMEM error will be returned.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </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_http_mode" c:identifier="gst_rtsp_connection_set_http_mode">
        <doc xml:space="preserve">By setting the HTTP mode to %TRUE the message parsing will support HTTP
messages in addition to the RTSP messages. It will also disable the
automatic handling of setting up an HTTP tunnel.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="enable" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE to enable manual HTTP mode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_ip" c:identifier="gst_rtsp_connection_set_ip">
        <doc xml:space="preserve">Set the IP address of the server.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="ip" transfer-ownership="none">
            <doc xml:space="preserve">an ip address</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_proxy" c:identifier="gst_rtsp_connection_set_proxy">
        <doc xml:space="preserve">Set the proxy host and port.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="host" transfer-ownership="none">
            <doc xml:space="preserve">the proxy host</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="port" transfer-ownership="none">
            <doc xml:space="preserve">the proxy port</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_qos_dscp" c:identifier="gst_rtsp_connection_set_qos_dscp">
        <doc xml:space="preserve">Configure @conn to use the specified DSCP value.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="qos_dscp" transfer-ownership="none">
            <doc xml:space="preserve">DSCP value</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_remember_session_id" c:identifier="gst_rtsp_connection_set_remember_session_id">
        <doc xml:space="preserve">Sets if the #GstRTSPConnection should remember the session id from the last
response received and force it onto any further requests.

The default value is %TRUE</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="remember" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if the connection should remember the session id</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tls_database" c:identifier="gst_rtsp_connection_set_tls_database" version="1.4">
        <doc xml:space="preserve">Sets the anchor certificate authorities database. This certificate
database will be used to verify the server's certificate in case it
can't be verified with the default certificate database first.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="database" transfer-ownership="none">
            <doc xml:space="preserve">a #GTlsDatabase</doc>
            <type name="Gio.TlsDatabase" c:type="GTlsDatabase*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tls_interaction" c:identifier="gst_rtsp_connection_set_tls_interaction" version="1.6">
        <doc xml:space="preserve">Sets a #GTlsInteraction object to be used when the connection or certificate
database need to interact with the user. This will be used to prompt the
user for passwords where necessary.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="interaction" transfer-ownership="none">
            <doc xml:space="preserve">a #GTlsInteraction</doc>
            <type name="Gio.TlsInteraction" c:type="GTlsInteraction*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tls_validation_flags" c:identifier="gst_rtsp_connection_set_tls_validation_flags" version="1.2.1">
        <doc xml:space="preserve">Sets the TLS validation flags to be used to verify the peer
certificate when a TLS connection is established.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if the validation flags are set correctly, or FALSE if
@conn is NULL or is not a TLS connection.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the validation flags.</doc>
            <type name="Gio.TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tunneled" c:identifier="gst_rtsp_connection_set_tunneled">
        <doc xml:space="preserve">Set the HTTP tunneling state of the connection. This must be configured before
the @conn is connected.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="tunneled" transfer-ownership="none">
            <doc xml:space="preserve">the new state</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="write" c:identifier="gst_rtsp_connection_write" deprecated="1" deprecated-version="1.18">
        <doc xml:space="preserve">Attempt to write @size bytes of @data to the connected @conn, blocking up to
the specified @timeout. @timeout can be %NULL, in which case this function
might block forever.

This function can be cancelled with gst_rtsp_connection_flush().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">the data to write</doc>
            <type name="guint8" c:type="const guint8*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the size of @data</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout value or %NULL</doc>
            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_usec" c:identifier="gst_rtsp_connection_write_usec" version="1.18">
        <doc xml:space="preserve">Attempt to write @size bytes of @data to the connected @conn, blocking up to
the specified @timeout. @timeout can be 0, in which case this function
might block forever.

This function can be cancelled with gst_rtsp_connection_flush().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">the data to write</doc>
            <type name="guint8" c:type="const guint8*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the size of @data</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout value or 0</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <function name="accept" c:identifier="gst_rtsp_connection_accept">
        <doc xml:space="preserve">Accept a new connection on @socket and create a new #GstRTSPConnection for
handling communication on new socket.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK when @conn contains a valid connection.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <parameter name="socket" transfer-ownership="none">
            <doc xml:space="preserve">a socket</doc>
            <type name="Gio.Socket" c:type="GSocket*"/>
          </parameter>
          <parameter name="conn" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">storage for a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection**"/>
          </parameter>
          <parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">a #GCancellable to cancel the operation</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="create" c:identifier="gst_rtsp_connection_create">
        <doc xml:space="preserve">Create a newly allocated #GstRTSPConnection from @url and store it in @conn.
The connection will not yet attempt to connect to @url, use
gst_rtsp_connection_connect().

A copy of @url will be made.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK when @conn contains a valid connection.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPUrl</doc>
            <type name="RTSPUrl" c:type="const GstRTSPUrl*"/>
          </parameter>
          <parameter name="conn" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">storage for a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection**"/>
          </parameter>
        </parameters>
      </function>
      <function name="create_from_socket" c:identifier="gst_rtsp_connection_create_from_socket">
        <doc xml:space="preserve">Create a new #GstRTSPConnection for handling communication on the existing
socket @socket. The @initial_buffer contains zero terminated data already
read from @socket which should be used before starting to read new data.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK when @conn contains a valid connection.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </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="ip" transfer-ownership="none">
            <doc xml:space="preserve">the IP address of the other end</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="guint16" c:type="guint16"/>
          </parameter>
          <parameter name="initial_buffer" transfer-ownership="none">
            <doc xml:space="preserve">data already read from @fd</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="conn" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">storage for a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection**"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <callback name="RTSPConnectionAcceptCertificateFunc" c:type="GstRTSPConnectionAcceptCertificateFunc">
      
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="conn" 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>
        <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <bitfield name="RTSPEvent" glib:type-name="GstRTSPEvent" glib:get-type="gst_rtsp_event_get_type" c:type="GstRTSPEvent">
      <doc xml:space="preserve">The possible events for the connection.</doc>
      <member name="read" value="1" c:identifier="GST_RTSP_EV_READ" glib:nick="read">
        <doc xml:space="preserve">connection is readable</doc>
      </member>
      <member name="write" value="2" c:identifier="GST_RTSP_EV_WRITE" glib:nick="write">
        <doc xml:space="preserve">connection is writable</doc>
      </member>
    </bitfield>
    <interface name="RTSPExtension" c:symbol-prefix="rtsp_extension" c:type="GstRTSPExtension" glib:type-name="GstRTSPExtension" glib:get-type="gst_rtsp_extension_get_type" glib:type-struct="RTSPExtensionInterface">
      <doc xml:space="preserve">This interface is implemented e.g. by the Windows Media Streaming RTSP
 exentension (rtspwms) and the RealMedia RTSP extension (rtspreal).</doc>
      
      <virtual-method name="after_send" invoker="after_send">
        
        <return-value transfer-ownership="none">
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="req" transfer-ownership="none">
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
          <parameter name="resp" transfer-ownership="none">
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="before_send" invoker="before_send">
        
        <return-value transfer-ownership="none">
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="req" transfer-ownership="none">
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="configure_stream" invoker="configure_stream">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="caps" transfer-ownership="none">
            <type name="Gst.Caps" c:type="GstCaps*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="detect_server" invoker="detect_server">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="resp" transfer-ownership="none">
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_transports" invoker="get_transports">
        
        <return-value transfer-ownership="none">
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="protocols" transfer-ownership="none">
            <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
          </parameter>
          <parameter name="transport" transfer-ownership="none">
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="parse_sdp" invoker="parse_sdp">
        
        <return-value transfer-ownership="none">
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="sdp" transfer-ownership="none">
            <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
          </parameter>
          <parameter name="s" transfer-ownership="none">
            <type name="Gst.Structure" c:type="GstStructure*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="receive_request" invoker="receive_request">
        
        <return-value transfer-ownership="none">
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="req" transfer-ownership="none">
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="send" invoker="send">
        
        <return-value transfer-ownership="none">
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="req" transfer-ownership="none">
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
          <parameter name="resp" transfer-ownership="none">
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="setup_media" invoker="setup_media">
        
        <return-value transfer-ownership="none">
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="stream_select" invoker="stream_select">
        
        <return-value transfer-ownership="none">
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="after_send" c:identifier="gst_rtsp_extension_after_send">
        
        <return-value transfer-ownership="none">
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="req" transfer-ownership="none">
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
          <parameter name="resp" transfer-ownership="none">
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="before_send" c:identifier="gst_rtsp_extension_before_send">
        
        <return-value transfer-ownership="none">
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="req" transfer-ownership="none">
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="configure_stream" c:identifier="gst_rtsp_extension_configure_stream">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="caps" transfer-ownership="none">
            <type name="Gst.Caps" c:type="GstCaps*"/>
          </parameter>
        </parameters>
      </method>
      <method name="detect_server" c:identifier="gst_rtsp_extension_detect_server">
        
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="resp" transfer-ownership="none">
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_transports" c:identifier="gst_rtsp_extension_get_transports">
        
        <return-value transfer-ownership="none">
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="protocols" transfer-ownership="none">
            <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
          </parameter>
          <parameter name="transport" transfer-ownership="none">
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="parse_sdp" c:identifier="gst_rtsp_extension_parse_sdp">
        
        <return-value transfer-ownership="none">
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="sdp" transfer-ownership="none">
            <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
          </parameter>
          <parameter name="s" transfer-ownership="none">
            <type name="Gst.Structure" c:type="GstStructure*"/>
          </parameter>
        </parameters>
      </method>
      <method name="receive_request" c:identifier="gst_rtsp_extension_receive_request">
        
        <return-value transfer-ownership="none">
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="req" transfer-ownership="none">
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="send" c:identifier="gst_rtsp_extension_send">
        
        <return-value transfer-ownership="none">
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="req" transfer-ownership="none">
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
          <parameter name="resp" transfer-ownership="none">
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="setup_media" c:identifier="gst_rtsp_extension_setup_media">
        
        <return-value transfer-ownership="none">
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/>
          </parameter>
        </parameters>
      </method>
      <method name="stream_select" c:identifier="gst_rtsp_extension_stream_select">
        
        <return-value transfer-ownership="none">
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="ext" transfer-ownership="none">
            <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="send" when="last">
        <return-value transfer-ownership="none">
          <type name="RTSPResult"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none" nullable="1" allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none" nullable="1" allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="RTSPExtensionInterface" c:type="GstRTSPExtensionInterface" glib:is-gtype-struct-for="RTSPExtension">
      <doc xml:space="preserve">An interface representing RTSP extensions.</doc>
      
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="detect_server">
        <callback name="detect_server">
          
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="ext" transfer-ownership="none">
              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
            </parameter>
            <parameter name="resp" transfer-ownership="none">
              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="before_send">
        <callback name="before_send">
          
          <return-value transfer-ownership="none">
            <type name="RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="ext" transfer-ownership="none">
              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
            </parameter>
            <parameter name="req" transfer-ownership="none">
              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="after_send">
        <callback name="after_send">
          
          <return-value transfer-ownership="none">
            <type name="RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="ext" transfer-ownership="none">
              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
            </parameter>
            <parameter name="req" transfer-ownership="none">
              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
            </parameter>
            <parameter name="resp" transfer-ownership="none">
              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="parse_sdp">
        <callback name="parse_sdp">
          
          <return-value transfer-ownership="none">
            <type name="RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="ext" transfer-ownership="none">
              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
            </parameter>
            <parameter name="sdp" transfer-ownership="none">
              <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
            </parameter>
            <parameter name="s" transfer-ownership="none">
              <type name="Gst.Structure" c:type="GstStructure*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="setup_media">
        <callback name="setup_media">
          
          <return-value transfer-ownership="none">
            <type name="RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="ext" transfer-ownership="none">
              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
            </parameter>
            <parameter name="media" transfer-ownership="none">
              <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="configure_stream">
        <callback name="configure_stream">
          
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="ext" transfer-ownership="none">
              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
            </parameter>
            <parameter name="caps" transfer-ownership="none">
              <type name="Gst.Caps" c:type="GstCaps*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_transports">
        <callback name="get_transports">
          
          <return-value transfer-ownership="none">
            <type name="RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="ext" transfer-ownership="none">
              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
            </parameter>
            <parameter name="protocols" transfer-ownership="none">
              <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
            </parameter>
            <parameter name="transport" transfer-ownership="none">
              <type name="utf8" c:type="gchar**"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="stream_select">
        <callback name="stream_select">
          
          <return-value transfer-ownership="none">
            <type name="RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="ext" transfer-ownership="none">
              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
            </parameter>
            <parameter name="url" transfer-ownership="none">
              <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="send">
        <callback name="send">
          
          <return-value transfer-ownership="none">
            <type name="RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="ext" transfer-ownership="none">
              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
            </parameter>
            <parameter name="req" transfer-ownership="none">
              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
            </parameter>
            <parameter name="resp" transfer-ownership="none">
              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="receive_request">
        <callback name="receive_request">
          
          <return-value transfer-ownership="none">
            <type name="RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="ext" transfer-ownership="none">
              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
            </parameter>
            <parameter name="req" transfer-ownership="none">
              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
            </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>
    <enumeration name="RTSPFamily" glib:type-name="GstRTSPFamily" glib:get-type="gst_rtsp_family_get_type" c:type="GstRTSPFamily">
      <doc xml:space="preserve">The possible network families.</doc>
      <member name="none" value="0" c:identifier="GST_RTSP_FAM_NONE" glib:nick="none">
        <doc xml:space="preserve">unknown network family</doc>
      </member>
      <member name="inet" value="1" c:identifier="GST_RTSP_FAM_INET" glib:nick="inet">
        <doc xml:space="preserve">internet</doc>
      </member>
      <member name="inet6" value="2" c:identifier="GST_RTSP_FAM_INET6" glib:nick="inet6">
        <doc xml:space="preserve">internet V6</doc>
      </member>
    </enumeration>
    <enumeration name="RTSPHeaderField" glib:type-name="GstRTSPHeaderField" glib:get-type="gst_rtsp_header_field_get_type" c:type="GstRTSPHeaderField">
      <doc xml:space="preserve">Enumeration of rtsp header fields</doc>
      <member name="invalid" value="0" c:identifier="GST_RTSP_HDR_INVALID" glib:nick="invalid">
      </member>
      <member name="accept" value="1" c:identifier="GST_RTSP_HDR_ACCEPT" glib:nick="accept">
      </member>
      <member name="accept_encoding" value="2" c:identifier="GST_RTSP_HDR_ACCEPT_ENCODING" glib:nick="accept-encoding">
      </member>
      <member name="accept_language" value="3" c:identifier="GST_RTSP_HDR_ACCEPT_LANGUAGE" glib:nick="accept-language">
      </member>
      <member name="allow" value="4" c:identifier="GST_RTSP_HDR_ALLOW" glib:nick="allow">
      </member>
      <member name="authorization" value="5" c:identifier="GST_RTSP_HDR_AUTHORIZATION" glib:nick="authorization">
      </member>
      <member name="bandwidth" value="6" c:identifier="GST_RTSP_HDR_BANDWIDTH" glib:nick="bandwidth">
      </member>
      <member name="blocksize" value="7" c:identifier="GST_RTSP_HDR_BLOCKSIZE" glib:nick="blocksize">
      </member>
      <member name="cache_control" value="8" c:identifier="GST_RTSP_HDR_CACHE_CONTROL" glib:nick="cache-control">
      </member>
      <member name="conference" value="9" c:identifier="GST_RTSP_HDR_CONFERENCE" glib:nick="conference">
      </member>
      <member name="connection" value="10" c:identifier="GST_RTSP_HDR_CONNECTION" glib:nick="connection">
      </member>
      <member name="content_base" value="11" c:identifier="GST_RTSP_HDR_CONTENT_BASE" glib:nick="content-base">
      </member>
      <member name="content_encoding" value="12" c:identifier="GST_RTSP_HDR_CONTENT_ENCODING" glib:nick="content-encoding">
      </member>
      <member name="content_language" value="13" c:identifier="GST_RTSP_HDR_CONTENT_LANGUAGE" glib:nick="content-language">
      </member>
      <member name="content_length" value="14" c:identifier="GST_RTSP_HDR_CONTENT_LENGTH" glib:nick="content-length">
      </member>
      <member name="content_location" value="15" c:identifier="GST_RTSP_HDR_CONTENT_LOCATION" glib:nick="content-location">
      </member>
      <member name="content_type" value="16" c:identifier="GST_RTSP_HDR_CONTENT_TYPE" glib:nick="content-type">
      </member>
      <member name="cseq" value="17" c:identifier="GST_RTSP_HDR_CSEQ" glib:nick="cseq">
      </member>
      <member name="date" value="18" c:identifier="GST_RTSP_HDR_DATE" glib:nick="date">
      </member>
      <member name="expires" value="19" c:identifier="GST_RTSP_HDR_EXPIRES" glib:nick="expires">
      </member>
      <member name="from" value="20" c:identifier="GST_RTSP_HDR_FROM" glib:nick="from">
      </member>
      <member name="if_modified_since" value="21" c:identifier="GST_RTSP_HDR_IF_MODIFIED_SINCE" glib:nick="if-modified-since">
      </member>
      <member name="last_modified" value="22" c:identifier="GST_RTSP_HDR_LAST_MODIFIED" glib:nick="last-modified">
      </member>
      <member name="proxy_authenticate" value="23" c:identifier="GST_RTSP_HDR_PROXY_AUTHENTICATE" glib:nick="proxy-authenticate">
      </member>
      <member name="proxy_require" value="24" c:identifier="GST_RTSP_HDR_PROXY_REQUIRE" glib:nick="proxy-require">
      </member>
      <member name="public" value="25" c:identifier="GST_RTSP_HDR_PUBLIC" glib:nick="public">
      </member>
      <member name="range" value="26" c:identifier="GST_RTSP_HDR_RANGE" glib:nick="range">
      </member>
      <member name="referer" value="27" c:identifier="GST_RTSP_HDR_REFERER" glib:nick="referer">
      </member>
      <member name="require" value="28" c:identifier="GST_RTSP_HDR_REQUIRE" glib:nick="require">
      </member>
      <member name="retry_after" value="29" c:identifier="GST_RTSP_HDR_RETRY_AFTER" glib:nick="retry-after">
      </member>
      <member name="rtp_info" value="30" c:identifier="GST_RTSP_HDR_RTP_INFO" glib:nick="rtp-info">
      </member>
      <member name="scale" value="31" c:identifier="GST_RTSP_HDR_SCALE" glib:nick="scale">
      </member>
      <member name="session" value="32" c:identifier="GST_RTSP_HDR_SESSION" glib:nick="session">
      </member>
      <member name="server" value="33" c:identifier="GST_RTSP_HDR_SERVER" glib:nick="server">
      </member>
      <member name="speed" value="34" c:identifier="GST_RTSP_HDR_SPEED" glib:nick="speed">
      </member>
      <member name="transport" value="35" c:identifier="GST_RTSP_HDR_TRANSPORT" glib:nick="transport">
      </member>
      <member name="unsupported" value="36" c:identifier="GST_RTSP_HDR_UNSUPPORTED" glib:nick="unsupported">
      </member>
      <member name="user_agent" value="37" c:identifier="GST_RTSP_HDR_USER_AGENT" glib:nick="user-agent">
      </member>
      <member name="via" value="38" c:identifier="GST_RTSP_HDR_VIA" glib:nick="via">
      </member>
      <member name="www_authenticate" value="39" c:identifier="GST_RTSP_HDR_WWW_AUTHENTICATE" glib:nick="www-authenticate">
      </member>
      <member name="client_challenge" value="40" c:identifier="GST_RTSP_HDR_CLIENT_CHALLENGE" glib:nick="client-challenge">
      </member>
      <member name="real_challenge1" value="41" c:identifier="GST_RTSP_HDR_REAL_CHALLENGE1" glib:nick="real-challenge1">
      </member>
      <member name="real_challenge2" value="42" c:identifier="GST_RTSP_HDR_REAL_CHALLENGE2" glib:nick="real-challenge2">
      </member>
      <member name="real_challenge3" value="43" c:identifier="GST_RTSP_HDR_REAL_CHALLENGE3" glib:nick="real-challenge3">
      </member>
      <member name="subscribe" value="44" c:identifier="GST_RTSP_HDR_SUBSCRIBE" glib:nick="subscribe">
      </member>
      <member name="alert" value="45" c:identifier="GST_RTSP_HDR_ALERT" glib:nick="alert">
      </member>
      <member name="client_id" value="46" c:identifier="GST_RTSP_HDR_CLIENT_ID" glib:nick="client-id">
      </member>
      <member name="company_id" value="47" c:identifier="GST_RTSP_HDR_COMPANY_ID" glib:nick="company-id">
      </member>
      <member name="guid" value="48" c:identifier="GST_RTSP_HDR_GUID" glib:nick="guid">
      </member>
      <member name="region_data" value="49" c:identifier="GST_RTSP_HDR_REGION_DATA" glib:nick="region-data">
      </member>
      <member name="max_asm_width" value="50" c:identifier="GST_RTSP_HDR_MAX_ASM_WIDTH" glib:nick="max-asm-width">
      </member>
      <member name="language" value="51" c:identifier="GST_RTSP_HDR_LANGUAGE" glib:nick="language">
      </member>
      <member name="player_start_time" value="52" c:identifier="GST_RTSP_HDR_PLAYER_START_TIME" glib:nick="player-start-time">
      </member>
      <member name="location" value="53" c:identifier="GST_RTSP_HDR_LOCATION" glib:nick="location">
      </member>
      <member name="etag" value="54" c:identifier="GST_RTSP_HDR_ETAG" glib:nick="etag">
      </member>
      <member name="if_match" value="55" c:identifier="GST_RTSP_HDR_IF_MATCH" glib:nick="if-match">
      </member>
      <member name="accept_charset" value="56" c:identifier="GST_RTSP_HDR_ACCEPT_CHARSET" glib:nick="accept-charset">
      </member>
      <member name="supported" value="57" c:identifier="GST_RTSP_HDR_SUPPORTED" glib:nick="supported">
      </member>
      <member name="vary" value="58" c:identifier="GST_RTSP_HDR_VARY" glib:nick="vary">
      </member>
      <member name="x_accelerate_streaming" value="59" c:identifier="GST_RTSP_HDR_X_ACCELERATE_STREAMING" glib:nick="x-accelerate-streaming">
      </member>
      <member name="x_accept_authent" value="60" c:identifier="GST_RTSP_HDR_X_ACCEPT_AUTHENT" glib:nick="x-accept-authent">
      </member>
      <member name="x_accept_proxy_authent" value="61" c:identifier="GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT" glib:nick="x-accept-proxy-authent">
      </member>
      <member name="x_broadcast_id" value="62" c:identifier="GST_RTSP_HDR_X_BROADCAST_ID" glib:nick="x-broadcast-id">
      </member>
      <member name="x_burst_streaming" value="63" c:identifier="GST_RTSP_HDR_X_BURST_STREAMING" glib:nick="x-burst-streaming">
      </member>
      <member name="x_notice" value="64" c:identifier="GST_RTSP_HDR_X_NOTICE" glib:nick="x-notice">
      </member>
      <member name="x_player_lag_time" value="65" c:identifier="GST_RTSP_HDR_X_PLAYER_LAG_TIME" glib:nick="x-player-lag-time">
      </member>
      <member name="x_playlist" value="66" c:identifier="GST_RTSP_HDR_X_PLAYLIST" glib:nick="x-playlist">
      </member>
      <member name="x_playlist_change_notice" value="67" c:identifier="GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE" glib:nick="x-playlist-change-notice">
      </member>
      <member name="x_playlist_gen_id" value="68" c:identifier="GST_RTSP_HDR_X_PLAYLIST_GEN_ID" glib:nick="x-playlist-gen-id">
      </member>
      <member name="x_playlist_seek_id" value="69" c:identifier="GST_RTSP_HDR_X_PLAYLIST_SEEK_ID" glib:nick="x-playlist-seek-id">
      </member>
      <member name="x_proxy_client_agent" value="70" c:identifier="GST_RTSP_HDR_X_PROXY_CLIENT_AGENT" glib:nick="x-proxy-client-agent">
      </member>
      <member name="x_proxy_client_verb" value="71" c:identifier="GST_RTSP_HDR_X_PROXY_CLIENT_VERB" glib:nick="x-proxy-client-verb">
      </member>
      <member name="x_receding_playlistchange" value="72" c:identifier="GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE" glib:nick="x-receding-playlistchange">
      </member>
      <member name="x_rtp_info" value="73" c:identifier="GST_RTSP_HDR_X_RTP_INFO" glib:nick="x-rtp-info">
      </member>
      <member name="x_startupprofile" value="74" c:identifier="GST_RTSP_HDR_X_STARTUPPROFILE" glib:nick="x-startupprofile">
      </member>
      <member name="timestamp" value="75" c:identifier="GST_RTSP_HDR_TIMESTAMP" glib:nick="timestamp">
      </member>
      <member name="authentication_info" value="76" c:identifier="GST_RTSP_HDR_AUTHENTICATION_INFO" glib:nick="authentication-info">
      </member>
      <member name="host" value="77" c:identifier="GST_RTSP_HDR_HOST" glib:nick="host">
      </member>
      <member name="pragma" value="78" c:identifier="GST_RTSP_HDR_PRAGMA" glib:nick="pragma">
      </member>
      <member name="x_server_ip_address" value="79" c:identifier="GST_RTSP_HDR_X_SERVER_IP_ADDRESS" glib:nick="x-server-ip-address">
      </member>
      <member name="x_sessioncookie" value="80" c:identifier="GST_RTSP_HDR_X_SESSIONCOOKIE" glib:nick="x-sessioncookie">
      </member>
      <member name="rtcp_interval" value="81" c:identifier="GST_RTSP_HDR_RTCP_INTERVAL" glib:nick="rtcp-interval">
      </member>
      <member name="keymgmt" value="82" c:identifier="GST_RTSP_HDR_KEYMGMT" glib:nick="keymgmt">
      </member>
      <member name="pipelined_requests" value="83" c:identifier="GST_RTSP_HDR_PIPELINED_REQUESTS" glib:nick="pipelined-requests">
      </member>
      <member name="media_properties" value="84" c:identifier="GST_RTSP_HDR_MEDIA_PROPERTIES" glib:nick="media-properties">
      </member>
      <member name="seek_style" value="85" c:identifier="GST_RTSP_HDR_SEEK_STYLE" glib:nick="seek-style">
      </member>
      <member name="accept_ranges" value="86" c:identifier="GST_RTSP_HDR_ACCEPT_RANGES" glib:nick="accept-ranges">
      </member>
      <member name="frames" value="87" c:identifier="GST_RTSP_HDR_FRAMES" glib:nick="frames">
      </member>
      <member name="rate_control" value="88" c:identifier="GST_RTSP_HDR_RATE_CONTROL" glib:nick="rate-control">
      </member>
      <member name="last" value="89" c:identifier="GST_RTSP_HDR_LAST" glib:nick="last">
      </member>
    </enumeration>
    <bitfield name="RTSPLowerTrans" glib:type-name="GstRTSPLowerTrans" glib:get-type="gst_rtsp_lower_trans_get_type" c:type="GstRTSPLowerTrans">
      <doc xml:space="preserve">The different transport methods.</doc>
      <member name="unknown" value="0" c:identifier="GST_RTSP_LOWER_TRANS_UNKNOWN" glib:nick="unknown">
        <doc xml:space="preserve">invalid transport flag</doc>
      </member>
      <member name="udp" value="1" c:identifier="GST_RTSP_LOWER_TRANS_UDP" glib:nick="udp">
        <doc xml:space="preserve">stream data over UDP</doc>
      </member>
      <member name="udp_mcast" value="2" c:identifier="GST_RTSP_LOWER_TRANS_UDP_MCAST" glib:nick="udp-mcast">
        <doc xml:space="preserve">stream data over UDP multicast</doc>
      </member>
      <member name="tcp" value="4" c:identifier="GST_RTSP_LOWER_TRANS_TCP" glib:nick="tcp">
        <doc xml:space="preserve">stream data over TCP</doc>
      </member>
      <member name="http" value="16" c:identifier="GST_RTSP_LOWER_TRANS_HTTP" glib:nick="http">
        <doc xml:space="preserve">stream data tunneled over HTTP.</doc>
      </member>
      <member name="tls" value="32" c:identifier="GST_RTSP_LOWER_TRANS_TLS" glib:nick="tls">
        <doc xml:space="preserve">encrypt TCP and HTTP with TLS</doc>
      </member>
    </bitfield>
    <record name="RTSPMessage" c:type="GstRTSPMessage" glib:type-name="GstRTSPMessage" glib:get-type="gst_rtsp_msg_get_type" c:symbol-prefix="rtsp_msg">
      <doc xml:space="preserve">Provides methods for creating and parsing request, response and data messages.</doc>
      
      <field name="type" writable="1">
        <doc xml:space="preserve">the message type</doc>
        <type name="RTSPMsgType" c:type="GstRTSPMsgType"/>
      </field>
      <union name="type_data" c:type="type_data">
        
        <record name="request" c:type="request">
          
          <field name="method" writable="1">
            <type name="RTSPMethod" c:type="GstRTSPMethod"/>
          </field>
          <field name="uri" writable="1">
            <type name="utf8" c:type="gchar*"/>
          </field>
          <field name="version" writable="1">
            <type name="RTSPVersion" c:type="GstRTSPVersion"/>
          </field>
        </record>
        <record name="response" c:type="response">
          
          <field name="code" writable="1">
            <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
          </field>
          <field name="reason" writable="1">
            <type name="utf8" c:type="gchar*"/>
          </field>
          <field name="version" writable="1">
            <type name="RTSPVersion" c:type="GstRTSPVersion"/>
          </field>
        </record>
        <record name="data" c:type="data">
          
          <field name="channel" writable="1">
            <type name="guint8" c:type="guint8"/>
          </field>
        </record>
      </union>
      <field name="hdr_fields" readable="0" private="1">
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="body" readable="0" private="1">
        <type name="guint8" c:type="guint8*"/>
      </field>
      <field name="body_size" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="body_buffer" readable="0" private="1">
        <type name="Gst.Buffer" c:type="GstBuffer*"/>
      </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="add_header" c:identifier="gst_rtsp_message_add_header">
        <doc xml:space="preserve">Add a header with key @field and @value to @msg. This function takes a copy
of @value.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPHeaderField</doc>
            <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the value of the header</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_header_by_name" c:identifier="gst_rtsp_message_add_header_by_name" version="1.6">
        <doc xml:space="preserve">Add a header with key @header and @value to @msg. This function takes a copy
of @value.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve">header string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the value of the header</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="append_headers" c:identifier="gst_rtsp_message_append_headers">
        <doc xml:space="preserve">Append the currently configured headers in @msg to the #GString @str suitable
for transmission.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="const GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve">a string</doc>
            <type name="GLib.String" c:type="GString*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="gst_rtsp_message_copy" version="1.14">
        <doc xml:space="preserve">Allocate a new copy of @msg and store the result in @copy. The value in
@copy should be release with gst_rtsp_message_free function.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="const GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="copy" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">pointer to new #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
          </parameter>
        </parameters>
      </method>
      <method name="dump" c:identifier="gst_rtsp_message_dump">
        <doc xml:space="preserve">Dump the contents of @msg to stdout.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gst_rtsp_message_free">
        <doc xml:space="preserve">Free the memory used by @msg.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_body" c:identifier="gst_rtsp_message_get_body">
        <doc xml:space="preserve">Get the body of @msg. @data remains valid for as long as @msg is valid and
unchanged.

If the message body was set as a #GstBuffer before this will cause the data
to be copied and stored in the message. The #GstBuffer will no longer be
kept in the message.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="const GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="none">
            <doc xml:space="preserve">location for the data</doc>
            <array length="1" zero-terminated="0" c:type="guint8**">
              <type name="guint8" c:type="guint8*"/>
            </array>
          </parameter>
          <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">location for the size of @data</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_body_buffer" c:identifier="gst_rtsp_message_get_body_buffer" version="1.16">
        <doc xml:space="preserve">Get the body of @msg. @buffer remains valid for as long as @msg is valid and
unchanged.

If body data was set from raw memory instead of a #GstBuffer this function
will always return %NULL. The caller can check if there is a body buffer by
calling gst_rtsp_message_has_body_buffer().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="const GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="buffer" direction="out" caller-allocates="0" transfer-ownership="none">
            <doc xml:space="preserve">location for the buffer</doc>
            <type name="Gst.Buffer" c:type="GstBuffer**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_header" c:identifier="gst_rtsp_message_get_header">
        <doc xml:space="preserve">Get the @indx header value with key @field from @msg. The result in @value
stays valid as long as it remains present in @msg.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK when @field was found, #GST_RTSP_ENOTIMPL if the key
was not found.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="const GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPHeaderField</doc>
            <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
          </parameter>
          <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="none">
            <doc xml:space="preserve">pointer to hold the result</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="indx" transfer-ownership="none">
            <doc xml:space="preserve">the index of the header</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_header_by_name" c:identifier="gst_rtsp_message_get_header_by_name" version="1.6">
        <doc xml:space="preserve">Get the @index header value with key @header from @msg. The result in @value
stays valid as long as it remains present in @msg.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK when @field was found, #GST_RTSP_ENOTIMPL if the key
was not found.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPHeaderField</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" direction="out" caller-allocates="0" transfer-ownership="none">
            <doc xml:space="preserve">pointer to hold the result</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve">the index of the header</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_type" c:identifier="gst_rtsp_message_get_type">
        <doc xml:space="preserve">Get the message type of @msg.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the message type.</doc>
          <type name="RTSPMsgType" c:type="GstRTSPMsgType"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_body_buffer" c:identifier="gst_rtsp_message_has_body_buffer" version="1.16">
        <doc xml:space="preserve">Checks if @msg has a body and the body is stored as #GstBuffer.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @msg has a body and it's stored as #GstBuffer, %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="const GstRTSPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="init" c:identifier="gst_rtsp_message_init">
        <doc xml:space="preserve">Initialize @msg. This function is mostly used when @msg is allocated on the
stack. The reverse operation of this is gst_rtsp_message_unset().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="init_data" c:identifier="gst_rtsp_message_init_data">
        <doc xml:space="preserve">Initialize a new data #GstRTSPMessage for @channel.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a channel</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
        </parameters>
      </method>
      <method name="init_request" c:identifier="gst_rtsp_message_init_request">
        <doc xml:space="preserve">Initialize @msg as a request message with @method and @uri. To clear @msg
again, use gst_rtsp_message_unset().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="method" transfer-ownership="none">
            <doc xml:space="preserve">the request method to use</doc>
            <type name="RTSPMethod" c:type="GstRTSPMethod"/>
          </parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the uri of the request</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="init_response" c:identifier="gst_rtsp_message_init_response">
        <doc xml:space="preserve">Initialize @msg with @code and @reason.

When @reason is %NULL, the default reason for @code will be used.

When @request is not %NULL, the relevant headers will be copied to the new
response message.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="code" transfer-ownership="none">
            <doc xml:space="preserve">the status code</doc>
            <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
          </parameter>
          <parameter name="reason" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">the status reason or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="request" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">the request that triggered the response or %NULL</doc>
            <type name="RTSPMessage" c:type="const GstRTSPMessage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="parse_auth_credentials" c:identifier="gst_rtsp_message_parse_auth_credentials" version="1.12">
        <doc xml:space="preserve">Parses the credentials given in a WWW-Authenticate or Authorization header.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">
    %NULL-terminated array of GstRTSPAuthCredential or %NULL.</doc>
          <array c:type="GstRTSPAuthCredential**">
            <type name="RTSPAuthCredential" c:type="GstRTSPAuthCredential*"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPHeaderField</doc>
            <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
          </parameter>
        </parameters>
      </method>
      <method name="parse_data" c:identifier="gst_rtsp_message_parse_data">
        <doc xml:space="preserve">Parse the data message @msg and store the channel in @channel.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="channel" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">location to hold the channel</doc>
            <type name="guint8" c:type="guint8*"/>
          </parameter>
        </parameters>
      </method>
      <method name="parse_request" c:identifier="gst_rtsp_message_parse_request">
        <doc xml:space="preserve">Parse the request message @msg and store the values @method, @uri and
@version. The result locations can be %NULL if one is not interested in its
value.

@uri remains valid for as long as @msg is valid and unchanged.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="method" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
            <doc xml:space="preserve">location to hold the method</doc>
            <type name="RTSPMethod" c:type="GstRTSPMethod*"/>
          </parameter>
          <parameter name="uri" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1">
            <doc xml:space="preserve">location to hold the uri</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
          <parameter name="version" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1">
            <doc xml:space="preserve">location to hold the version</doc>
            <type name="RTSPVersion" c:type="GstRTSPVersion*"/>
          </parameter>
        </parameters>
      </method>
      <method name="parse_response" c:identifier="gst_rtsp_message_parse_response">
        <doc xml:space="preserve">Parse the response message @msg and store the values @code, @reason and
@version. The result locations can be %NULL if one is not interested in its
value.

@reason remains valid for as long as @msg is valid and unchanged.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="code" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
            <doc xml:space="preserve">location to hold the status code</doc>
            <type name="RTSPStatusCode" c:type="GstRTSPStatusCode*"/>
          </parameter>
          <parameter name="reason" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1">
            <doc xml:space="preserve">location to hold the status reason</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
          <parameter name="version" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1">
            <doc xml:space="preserve">location to hold the version</doc>
            <type name="RTSPVersion" c:type="GstRTSPVersion*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_header" c:identifier="gst_rtsp_message_remove_header">
        <doc xml:space="preserve">Remove the @indx header with key @field from @msg. If @indx equals -1, all
headers will be removed.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPHeaderField</doc>
            <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
          </parameter>
          <parameter name="indx" transfer-ownership="none">
            <doc xml:space="preserve">the index of the header</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_header_by_name" c:identifier="gst_rtsp_message_remove_header_by_name" version="1.6">
        <doc xml:space="preserve">Remove the @index header with key @header from @msg. If @index equals -1,
all matching headers will be removed.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve">the header string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve">the index of the header</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_body" c:identifier="gst_rtsp_message_set_body">
        <doc xml:space="preserve">Set the body of @msg to a copy of @data. Any existing body or body buffer
will be replaced by the new body.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">the data</doc>
            <array length="1" zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the size of @data</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_body_buffer" c:identifier="gst_rtsp_message_set_body_buffer" version="1.16">
        <doc xml:space="preserve">Set the body of @msg to @buffer. Any existing body or body buffer
will be replaced by the new body.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </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="steal_body" c:identifier="gst_rtsp_message_steal_body">
        <doc xml:space="preserve">Take the body of @msg and store it in @data and @size. After this method,
the body and size of @msg will be set to %NULL and 0 respectively.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="data" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">location for the data</doc>
            <array length="1" zero-terminated="0" c:type="guint8**">
              <type name="guint8" c:type="guint8*"/>
            </array>
          </parameter>
          <parameter name="size" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">location for the size of @data</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="steal_body_buffer" c:identifier="gst_rtsp_message_steal_body_buffer" version="1.16">
        <doc xml:space="preserve">Take the body of @msg and store it in @buffer. After this method,
the body and size of @msg will be set to %NULL and 0 respectively.

If body data was set from raw memory instead of a #GstBuffer this function
will always return %NULL. The caller can check if there is a body buffer by
calling gst_rtsp_message_has_body_buffer().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="buffer" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">location for the buffer</doc>
            <type name="Gst.Buffer" c:type="GstBuffer**"/>
          </parameter>
        </parameters>
      </method>
      <method name="take_body" c:identifier="gst_rtsp_message_take_body">
        <doc xml:space="preserve">Set the body of @msg to @data and @size. This method takes ownership of
@data. Any existing body or body buffer will be replaced by the new body.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="full">
            <doc xml:space="preserve">the data</doc>
            <array length="1" zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the size of @data</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="take_body_buffer" c:identifier="gst_rtsp_message_take_body_buffer" version="1.16">
        <doc xml:space="preserve">Set the body of @msg to @buffer. This method takes ownership of @buffer.
Any existing body or body buffer will be replaced by the new body.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </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="take_header" c:identifier="gst_rtsp_message_take_header">
        <doc xml:space="preserve">Add a header with key @field and @value to @msg. This function takes
ownership of @value.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPHeaderField</doc>
            <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
          </parameter>
          <parameter name="value" transfer-ownership="full">
            <doc xml:space="preserve">the value of the header</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="take_header_by_name" c:identifier="gst_rtsp_message_take_header_by_name" version="1.6">
        <doc xml:space="preserve">Add a header with key @header and @value to @msg. This function takes
ownership of @value, but not of @header.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve">a header string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="full">
            <doc xml:space="preserve">the value of the header</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unset" c:identifier="gst_rtsp_message_unset">
        <doc xml:space="preserve">Unset the contents of @msg so that it becomes an uninitialized
#GstRTSPMessage again. This function is mostly used in combination with
gst_rtsp_message_init_request(), gst_rtsp_message_init_response() and
gst_rtsp_message_init_data() on stack allocated #GstRTSPMessage structures.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <bitfield name="RTSPMethod" glib:type-name="GstRTSPMethod" glib:get-type="gst_rtsp_method_get_type" c:type="GstRTSPMethod">
      <doc xml:space="preserve">The different supported RTSP methods.</doc>
      <member name="invalid" value="0" c:identifier="GST_RTSP_INVALID" glib:nick="invalid">
        <doc xml:space="preserve">invalid method</doc>
      </member>
      <member name="describe" value="1" c:identifier="GST_RTSP_DESCRIBE" glib:nick="describe">
        <doc xml:space="preserve">the DESCRIBE method</doc>
      </member>
      <member name="announce" value="2" c:identifier="GST_RTSP_ANNOUNCE" glib:nick="announce">
        <doc xml:space="preserve">the ANNOUNCE method</doc>
      </member>
      <member name="get_parameter" value="4" c:identifier="GST_RTSP_GET_PARAMETER" glib:nick="get-parameter">
        <doc xml:space="preserve">the GET_PARAMETER method</doc>
      </member>
      <member name="options" value="8" c:identifier="GST_RTSP_OPTIONS" glib:nick="options">
        <doc xml:space="preserve">the OPTIONS method</doc>
      </member>
      <member name="pause" value="16" c:identifier="GST_RTSP_PAUSE" glib:nick="pause">
        <doc xml:space="preserve">the PAUSE method</doc>
      </member>
      <member name="play" value="32" c:identifier="GST_RTSP_PLAY" glib:nick="play">
        <doc xml:space="preserve">the PLAY method</doc>
      </member>
      <member name="record" value="64" c:identifier="GST_RTSP_RECORD" glib:nick="record">
        <doc xml:space="preserve">the RECORD method</doc>
      </member>
      <member name="redirect" value="128" c:identifier="GST_RTSP_REDIRECT" glib:nick="redirect">
        <doc xml:space="preserve">the REDIRECT method</doc>
      </member>
      <member name="setup" value="256" c:identifier="GST_RTSP_SETUP" glib:nick="setup">
        <doc xml:space="preserve">the SETUP method</doc>
      </member>
      <member name="set_parameter" value="512" c:identifier="GST_RTSP_SET_PARAMETER" glib:nick="set-parameter">
        <doc xml:space="preserve">the SET_PARAMETER method</doc>
      </member>
      <member name="teardown" value="1024" c:identifier="GST_RTSP_TEARDOWN" glib:nick="teardown">
        <doc xml:space="preserve">the TEARDOWN method</doc>
      </member>
      <member name="get" value="2048" c:identifier="GST_RTSP_GET" glib:nick="get">
        <doc xml:space="preserve">the GET method (HTTP).</doc>
      </member>
      <member name="post" value="4096" c:identifier="GST_RTSP_POST" glib:nick="post">
        <doc xml:space="preserve">the POST method (HTTP).</doc>
      </member>
      <function name="as_text" c:identifier="gst_rtsp_method_as_text">
        <doc xml:space="preserve">Convert @method to a string.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string representation of @method.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="method" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMethod</doc>
            <type name="RTSPMethod" c:type="GstRTSPMethod"/>
          </parameter>
        </parameters>
      </function>
    </bitfield>
    <enumeration name="RTSPMsgType" glib:type-name="GstRTSPMsgType" glib:get-type="gst_rtsp_msg_type_get_type" c:type="GstRTSPMsgType">
      <doc xml:space="preserve">The type of a message.</doc>
      <member name="invalid" value="0" c:identifier="GST_RTSP_MESSAGE_INVALID" glib:nick="invalid">
        <doc xml:space="preserve">invalid message type</doc>
      </member>
      <member name="request" value="1" c:identifier="GST_RTSP_MESSAGE_REQUEST" glib:nick="request">
        <doc xml:space="preserve">RTSP request message</doc>
      </member>
      <member name="response" value="2" c:identifier="GST_RTSP_MESSAGE_RESPONSE" glib:nick="response">
        <doc xml:space="preserve">RTSP response message</doc>
      </member>
      <member name="http_request" value="3" c:identifier="GST_RTSP_MESSAGE_HTTP_REQUEST" glib:nick="http-request">
        <doc xml:space="preserve">HTTP request message.</doc>
      </member>
      <member name="http_response" value="4" c:identifier="GST_RTSP_MESSAGE_HTTP_RESPONSE" glib:nick="http-response">
        <doc xml:space="preserve">HTTP response message.</doc>
      </member>
      <member name="data" value="5" c:identifier="GST_RTSP_MESSAGE_DATA" glib:nick="data">
        <doc xml:space="preserve">data message</doc>
      </member>
    </enumeration>
    <bitfield name="RTSPProfile" glib:type-name="GstRTSPProfile" glib:get-type="gst_rtsp_profile_get_type" c:type="GstRTSPProfile">
      <doc xml:space="preserve">The transfer profile to use.</doc>
      <member name="unknown" value="0" c:identifier="GST_RTSP_PROFILE_UNKNOWN" glib:nick="unknown">
        <doc xml:space="preserve">invalid profile</doc>
      </member>
      <member name="avp" value="1" c:identifier="GST_RTSP_PROFILE_AVP" glib:nick="avp">
        <doc xml:space="preserve">the Audio/Visual profile (RFC 3551)</doc>
      </member>
      <member name="savp" value="2" c:identifier="GST_RTSP_PROFILE_SAVP" glib:nick="savp">
        <doc xml:space="preserve">the secure Audio/Visual profile (RFC 3711)</doc>
      </member>
      <member name="avpf" value="4" c:identifier="GST_RTSP_PROFILE_AVPF" glib:nick="avpf">
        <doc xml:space="preserve">the Audio/Visual profile with feedback (RFC 4585)</doc>
      </member>
      <member name="savpf" value="8" c:identifier="GST_RTSP_PROFILE_SAVPF" glib:nick="savpf">
        <doc xml:space="preserve">the secure Audio/Visual profile with feedback (RFC 5124)</doc>
      </member>
    </bitfield>
    <record name="RTSPRange" c:type="GstRTSPRange">
      <doc xml:space="preserve">Provides helper functions to deal with time ranges.</doc>
      
      <field name="min" writable="1">
        <doc xml:space="preserve">minimum value of the range</doc>
        <type name="gint" c:type="gint"/>
      </field>
      <field name="max" writable="1">
        <doc xml:space="preserve">maximum value of the range</doc>
        <type name="gint" c:type="gint"/>
      </field>
      <function name="convert_units" c:identifier="gst_rtsp_range_convert_units">
        <doc xml:space="preserve">Converts the range in-place between different types of units.
Ranges containing the special value #GST_RTSP_TIME_NOW can not be
converted as these are only valid for #GST_RTSP_RANGE_NPT.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the range could be converted</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="range" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPTimeRange</doc>
            <type name="RTSPTimeRange" c:type="GstRTSPTimeRange*"/>
          </parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve">the unit to convert the range into</doc>
            <type name="RTSPRangeUnit" c:type="GstRTSPRangeUnit"/>
          </parameter>
        </parameters>
      </function>
      <function name="free" c:identifier="gst_rtsp_range_free">
        <doc xml:space="preserve">Free the memory allocated by @range.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="range" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPTimeRange</doc>
            <type name="RTSPTimeRange" c:type="GstRTSPTimeRange*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_times" c:identifier="gst_rtsp_range_get_times" version="1.2">
        <doc xml:space="preserve">Retrieve the minimum and maximum values from @range converted to
#GstClockTime in @min and @max.

A value of %GST_CLOCK_TIME_NONE will be used to signal #GST_RTSP_TIME_NOW
and #GST_RTSP_TIME_END for @min and @max respectively.

UTC times will be converted to nanoseconds since 1900.</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="range" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPTimeRange</doc>
            <type name="RTSPTimeRange" c:type="const GstRTSPTimeRange*"/>
          </parameter>
          <parameter name="min" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">result minimum #GstClockTime</doc>
            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
          </parameter>
          <parameter name="max" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">result maximum #GstClockTime</doc>
            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
          </parameter>
        </parameters>
      </function>
      <function name="parse" c:identifier="gst_rtsp_range_parse">
        <doc xml:space="preserve">Parse @rangestr to a #GstRTSPTimeRange.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <parameter name="rangestr" transfer-ownership="none">
            <doc xml:space="preserve">a range string to parse</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="range" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">location to hold the #GstRTSPTimeRange result</doc>
            <type name="RTSPTimeRange" c:type="GstRTSPTimeRange**"/>
          </parameter>
        </parameters>
      </function>
      <function name="to_string" c:identifier="gst_rtsp_range_to_string">
        <doc xml:space="preserve">Convert @range into a string representation.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The string representation of @range. g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="range" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPTimeRange</doc>
            <type name="RTSPTimeRange" c:type="const GstRTSPTimeRange*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <enumeration name="RTSPRangeUnit" glib:type-name="GstRTSPRangeUnit" glib:get-type="gst_rtsp_range_unit_get_type" c:type="GstRTSPRangeUnit">
      <doc xml:space="preserve">Different possible time range units.</doc>
      <member name="smpte" value="0" c:identifier="GST_RTSP_RANGE_SMPTE" glib:nick="smpte">
        <doc xml:space="preserve">SMPTE timecode</doc>
      </member>
      <member name="smpte_30_drop" value="1" c:identifier="GST_RTSP_RANGE_SMPTE_30_DROP" glib:nick="smpte-30-drop">
        <doc xml:space="preserve">29.97 frames per second</doc>
      </member>
      <member name="smpte_25" value="2" c:identifier="GST_RTSP_RANGE_SMPTE_25" glib:nick="smpte-25">
        <doc xml:space="preserve">25 frames per second</doc>
      </member>
      <member name="npt" value="3" c:identifier="GST_RTSP_RANGE_NPT" glib:nick="npt">
        <doc xml:space="preserve">Normal play time</doc>
      </member>
      <member name="clock" value="4" c:identifier="GST_RTSP_RANGE_CLOCK" glib:nick="clock">
        <doc xml:space="preserve">Absolute time expressed as ISO 8601 timestamps</doc>
      </member>
    </enumeration>
    <enumeration name="RTSPResult" glib:type-name="GstRTSPResult" glib:get-type="gst_rtsp_result_get_type" c:type="GstRTSPResult">
      <doc xml:space="preserve">Result codes from the RTSP functions.</doc>
      <member name="ok" value="0" c:identifier="GST_RTSP_OK" glib:nick="ok">
        <doc xml:space="preserve">no error</doc>
      </member>
      <member name="error" value="-1" c:identifier="GST_RTSP_ERROR" glib:nick="error">
        <doc xml:space="preserve">some unspecified error occurred</doc>
      </member>
      <member name="einval" value="-2" c:identifier="GST_RTSP_EINVAL" glib:nick="einval">
        <doc xml:space="preserve">invalid arguments were provided to a function</doc>
      </member>
      <member name="eintr" value="-3" c:identifier="GST_RTSP_EINTR" glib:nick="eintr">
        <doc xml:space="preserve">an operation was canceled</doc>
      </member>
      <member name="enomem" value="-4" c:identifier="GST_RTSP_ENOMEM" glib:nick="enomem">
        <doc xml:space="preserve">no memory was available for the operation</doc>
      </member>
      <member name="eresolv" value="-5" c:identifier="GST_RTSP_ERESOLV" glib:nick="eresolv">
        <doc xml:space="preserve">a host resolve error occurred</doc>
      </member>
      <member name="enotimpl" value="-6" c:identifier="GST_RTSP_ENOTIMPL" glib:nick="enotimpl">
        <doc xml:space="preserve">function not implemented</doc>
      </member>
      <member name="esys" value="-7" c:identifier="GST_RTSP_ESYS" glib:nick="esys">
        <doc xml:space="preserve">a system error occurred, errno contains more details</doc>
      </member>
      <member name="eparse" value="-8" c:identifier="GST_RTSP_EPARSE" glib:nick="eparse">
        <doc xml:space="preserve">a parsing error occurred</doc>
      </member>
      <member name="ewsastart" value="-9" c:identifier="GST_RTSP_EWSASTART" glib:nick="ewsastart">
        <doc xml:space="preserve">windows networking could not start</doc>
      </member>
      <member name="ewsaversion" value="-10" c:identifier="GST_RTSP_EWSAVERSION" glib:nick="ewsaversion">
        <doc xml:space="preserve">windows networking stack has wrong version</doc>
      </member>
      <member name="eeof" value="-11" c:identifier="GST_RTSP_EEOF" glib:nick="eeof">
        <doc xml:space="preserve">end-of-file was reached</doc>
      </member>
      <member name="enet" value="-12" c:identifier="GST_RTSP_ENET" glib:nick="enet">
        <doc xml:space="preserve">a network problem occurred, h_errno contains more details</doc>
      </member>
      <member name="enotip" value="-13" c:identifier="GST_RTSP_ENOTIP" glib:nick="enotip">
        <doc xml:space="preserve">the host is not an IP host</doc>
      </member>
      <member name="etimeout" value="-14" c:identifier="GST_RTSP_ETIMEOUT" glib:nick="etimeout">
        <doc xml:space="preserve">a timeout occurred</doc>
      </member>
      <member name="etget" value="-15" c:identifier="GST_RTSP_ETGET" glib:nick="etget">
        <doc xml:space="preserve">the tunnel GET request has been performed</doc>
      </member>
      <member name="etpost" value="-16" c:identifier="GST_RTSP_ETPOST" glib:nick="etpost">
        <doc xml:space="preserve">the tunnel POST request has been performed</doc>
      </member>
      <member name="elast" value="-17" c:identifier="GST_RTSP_ELAST" glib:nick="elast">
        <doc xml:space="preserve">last error</doc>
      </member>
    </enumeration>
    <enumeration name="RTSPState" glib:type-name="GstRTSPState" glib:get-type="gst_rtsp_state_get_type" c:type="GstRTSPState">
      <doc xml:space="preserve">The different RTSP states.</doc>
      <member name="invalid" value="0" c:identifier="GST_RTSP_STATE_INVALID" glib:nick="invalid">
        <doc xml:space="preserve">invalid state</doc>
      </member>
      <member name="init" value="1" c:identifier="GST_RTSP_STATE_INIT" glib:nick="init">
        <doc xml:space="preserve">initializing</doc>
      </member>
      <member name="ready" value="2" c:identifier="GST_RTSP_STATE_READY" glib:nick="ready">
        <doc xml:space="preserve">ready for operation</doc>
      </member>
      <member name="seeking" value="3" c:identifier="GST_RTSP_STATE_SEEKING" glib:nick="seeking">
        <doc xml:space="preserve">seeking in progress</doc>
      </member>
      <member name="playing" value="4" c:identifier="GST_RTSP_STATE_PLAYING" glib:nick="playing">
        <doc xml:space="preserve">playing</doc>
      </member>
      <member name="recording" value="5" c:identifier="GST_RTSP_STATE_RECORDING" glib:nick="recording">
        <doc xml:space="preserve">recording</doc>
      </member>
    </enumeration>
    <enumeration name="RTSPStatusCode" glib:type-name="GstRTSPStatusCode" glib:get-type="gst_rtsp_status_code_get_type" c:type="GstRTSPStatusCode">
      <doc xml:space="preserve">Enumeration of rtsp status codes</doc>
      <member name="invalid" value="0" c:identifier="GST_RTSP_STS_INVALID" glib:nick="invalid">
      </member>
      <member name="continue" value="100" c:identifier="GST_RTSP_STS_CONTINUE" glib:nick="continue">
      </member>
      <member name="ok" value="200" c:identifier="GST_RTSP_STS_OK" glib:nick="ok">
      </member>
      <member name="created" value="201" c:identifier="GST_RTSP_STS_CREATED" glib:nick="created">
      </member>
      <member name="low_on_storage" value="250" c:identifier="GST_RTSP_STS_LOW_ON_STORAGE" glib:nick="low-on-storage">
      </member>
      <member name="multiple_choices" value="300" c:identifier="GST_RTSP_STS_MULTIPLE_CHOICES" glib:nick="multiple-choices">
      </member>
      <member name="moved_permanently" value="301" c:identifier="GST_RTSP_STS_MOVED_PERMANENTLY" glib:nick="moved-permanently">
      </member>
      <member name="move_temporarily" value="302" c:identifier="GST_RTSP_STS_MOVE_TEMPORARILY" glib:nick="move-temporarily">
      </member>
      <member name="see_other" value="303" c:identifier="GST_RTSP_STS_SEE_OTHER" glib:nick="see-other">
      </member>
      <member name="not_modified" value="304" c:identifier="GST_RTSP_STS_NOT_MODIFIED" glib:nick="not-modified">
      </member>
      <member name="use_proxy" value="305" c:identifier="GST_RTSP_STS_USE_PROXY" glib:nick="use-proxy">
      </member>
      <member name="bad_request" value="400" c:identifier="GST_RTSP_STS_BAD_REQUEST" glib:nick="bad-request">
      </member>
      <member name="unauthorized" value="401" c:identifier="GST_RTSP_STS_UNAUTHORIZED" glib:nick="unauthorized">
      </member>
      <member name="payment_required" value="402" c:identifier="GST_RTSP_STS_PAYMENT_REQUIRED" glib:nick="payment-required">
      </member>
      <member name="forbidden" value="403" c:identifier="GST_RTSP_STS_FORBIDDEN" glib:nick="forbidden">
      </member>
      <member name="not_found" value="404" c:identifier="GST_RTSP_STS_NOT_FOUND" glib:nick="not-found">
      </member>
      <member name="method_not_allowed" value="405" c:identifier="GST_RTSP_STS_METHOD_NOT_ALLOWED" glib:nick="method-not-allowed">
      </member>
      <member name="not_acceptable" value="406" c:identifier="GST_RTSP_STS_NOT_ACCEPTABLE" glib:nick="not-acceptable">
      </member>
      <member name="proxy_auth_required" value="407" c:identifier="GST_RTSP_STS_PROXY_AUTH_REQUIRED" glib:nick="proxy-auth-required">
      </member>
      <member name="request_timeout" value="408" c:identifier="GST_RTSP_STS_REQUEST_TIMEOUT" glib:nick="request-timeout">
      </member>
      <member name="gone" value="410" c:identifier="GST_RTSP_STS_GONE" glib:nick="gone">
      </member>
      <member name="length_required" value="411" c:identifier="GST_RTSP_STS_LENGTH_REQUIRED" glib:nick="length-required">
      </member>
      <member name="precondition_failed" value="412" c:identifier="GST_RTSP_STS_PRECONDITION_FAILED" glib:nick="precondition-failed">
      </member>
      <member name="request_entity_too_large" value="413" c:identifier="GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE" glib:nick="request-entity-too-large">
      </member>
      <member name="request_uri_too_large" value="414" c:identifier="GST_RTSP_STS_REQUEST_URI_TOO_LARGE" glib:nick="request-uri-too-large">
      </member>
      <member name="unsupported_media_type" value="415" c:identifier="GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE" glib:nick="unsupported-media-type">
      </member>
      <member name="parameter_not_understood" value="451" c:identifier="GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD" glib:nick="parameter-not-understood">
      </member>
      <member name="conference_not_found" value="452" c:identifier="GST_RTSP_STS_CONFERENCE_NOT_FOUND" glib:nick="conference-not-found">
      </member>
      <member name="not_enough_bandwidth" value="453" c:identifier="GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH" glib:nick="not-enough-bandwidth">
      </member>
      <member name="session_not_found" value="454" c:identifier="GST_RTSP_STS_SESSION_NOT_FOUND" glib:nick="session-not-found">
      </member>
      <member name="method_not_valid_in_this_state" value="455" c:identifier="GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE" glib:nick="method-not-valid-in-this-state">
      </member>
      <member name="header_field_not_valid_for_resource" value="456" c:identifier="GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE" glib:nick="header-field-not-valid-for-resource">
      </member>
      <member name="invalid_range" value="457" c:identifier="GST_RTSP_STS_INVALID_RANGE" glib:nick="invalid-range">
      </member>
      <member name="parameter_is_readonly" value="458" c:identifier="GST_RTSP_STS_PARAMETER_IS_READONLY" glib:nick="parameter-is-readonly">
      </member>
      <member name="aggregate_operation_not_allowed" value="459" c:identifier="GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED" glib:nick="aggregate-operation-not-allowed">
      </member>
      <member name="only_aggregate_operation_allowed" value="460" c:identifier="GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED" glib:nick="only-aggregate-operation-allowed">
      </member>
      <member name="unsupported_transport" value="461" c:identifier="GST_RTSP_STS_UNSUPPORTED_TRANSPORT" glib:nick="unsupported-transport">
      </member>
      <member name="destination_unreachable" value="462" c:identifier="GST_RTSP_STS_DESTINATION_UNREACHABLE" glib:nick="destination-unreachable">
      </member>
      <member name="key_management_failure" value="463" c:identifier="GST_RTSP_STS_KEY_MANAGEMENT_FAILURE" glib:nick="key-management-failure">
      </member>
      <member name="internal_server_error" value="500" c:identifier="GST_RTSP_STS_INTERNAL_SERVER_ERROR" glib:nick="internal-server-error">
      </member>
      <member name="not_implemented" value="501" c:identifier="GST_RTSP_STS_NOT_IMPLEMENTED" glib:nick="not-implemented">
      </member>
      <member name="bad_gateway" value="502" c:identifier="GST_RTSP_STS_BAD_GATEWAY" glib:nick="bad-gateway">
      </member>
      <member name="service_unavailable" value="503" c:identifier="GST_RTSP_STS_SERVICE_UNAVAILABLE" glib:nick="service-unavailable">
      </member>
      <member name="gateway_timeout" value="504" c:identifier="GST_RTSP_STS_GATEWAY_TIMEOUT" glib:nick="gateway-timeout">
      </member>
      <member name="rtsp_version_not_supported" value="505" c:identifier="GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED" glib:nick="rtsp-version-not-supported">
      </member>
      <member name="option_not_supported" value="551" c:identifier="GST_RTSP_STS_OPTION_NOT_SUPPORTED" glib:nick="option-not-supported">
      </member>
    </enumeration>
    <record name="RTSPTime" c:type="GstRTSPTime">
      <doc xml:space="preserve">A time indication.</doc>
      
      <field name="type" writable="1">
        <doc xml:space="preserve">the time of the time</doc>
        <type name="RTSPTimeType" c:type="GstRTSPTimeType"/>
      </field>
      <field name="seconds" writable="1">
        <doc xml:space="preserve">seconds when @type is GST_RTSP_TIME_SECONDS,
          GST_RTSP_TIME_UTC and GST_RTSP_TIME_FRAMES</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
    </record>
    <record name="RTSPTime2" c:type="GstRTSPTime2" version="1.2">
      <doc xml:space="preserve">Extra fields for a time indication.</doc>
      
      <field name="frames" writable="1">
        <doc xml:space="preserve">frames and subframes when type in GstRTSPTime is
         GST_RTSP_TIME_FRAMES</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="year" writable="1">
        <doc xml:space="preserve">year when type is GST_RTSP_TIME_UTC</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <field name="month" writable="1">
        <doc xml:space="preserve">month when type is GST_RTSP_TIME_UTC</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <field name="day" writable="1">
        <doc xml:space="preserve">day when type is GST_RTSP_TIME_UTC</doc>
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <record name="RTSPTimeRange" c:type="GstRTSPTimeRange">
      <doc xml:space="preserve">A time range.</doc>
      
      <field name="unit" writable="1">
        <doc xml:space="preserve">the time units used</doc>
        <type name="RTSPRangeUnit" c:type="GstRTSPRangeUnit"/>
      </field>
      <field name="min" writable="1">
        <doc xml:space="preserve">the minimum interval</doc>
        <type name="RTSPTime" c:type="GstRTSPTime"/>
      </field>
      <field name="max" writable="1">
        <doc xml:space="preserve">the maximum interval</doc>
        <type name="RTSPTime" c:type="GstRTSPTime"/>
      </field>
      <field name="min2" writable="1">
        <doc xml:space="preserve">extra fields in the minimum interval (Since: 1.2)</doc>
        <type name="RTSPTime2" c:type="GstRTSPTime2"/>
      </field>
      <field name="max2" writable="1">
        <doc xml:space="preserve">extra fields in the maximum interval (Since: 1.2)</doc>
        <type name="RTSPTime2" c:type="GstRTSPTime2"/>
      </field>
    </record>
    <enumeration name="RTSPTimeType" glib:type-name="GstRTSPTimeType" glib:get-type="gst_rtsp_time_type_get_type" c:type="GstRTSPTimeType">
      <doc xml:space="preserve">Possible time types.</doc>
      <member name="seconds" value="0" c:identifier="GST_RTSP_TIME_SECONDS" glib:nick="seconds">
        <doc xml:space="preserve">seconds</doc>
      </member>
      <member name="now" value="1" c:identifier="GST_RTSP_TIME_NOW" glib:nick="now">
        <doc xml:space="preserve">now</doc>
      </member>
      <member name="end" value="2" c:identifier="GST_RTSP_TIME_END" glib:nick="end">
        <doc xml:space="preserve">end</doc>
      </member>
      <member name="frames" value="3" c:identifier="GST_RTSP_TIME_FRAMES" glib:nick="frames">
        <doc xml:space="preserve">frames and subframes</doc>
      </member>
      <member name="utc" value="4" c:identifier="GST_RTSP_TIME_UTC" glib:nick="utc">
        <doc xml:space="preserve">UTC time</doc>
      </member>
    </enumeration>
    <bitfield name="RTSPTransMode" glib:type-name="GstRTSPTransMode" glib:get-type="gst_rtsp_trans_mode_get_type" c:type="GstRTSPTransMode">
      <doc xml:space="preserve">The transfer mode to use.</doc>
      <member name="unknown" value="0" c:identifier="GST_RTSP_TRANS_UNKNOWN" glib:nick="unknown">
        <doc xml:space="preserve">invalid tansport mode</doc>
      </member>
      <member name="rtp" value="1" c:identifier="GST_RTSP_TRANS_RTP" glib:nick="rtp">
        <doc xml:space="preserve">transfer RTP data</doc>
      </member>
      <member name="rdt" value="2" c:identifier="GST_RTSP_TRANS_RDT" glib:nick="rdt">
        <doc xml:space="preserve">transfer RDT (RealMedia) data</doc>
      </member>
    </bitfield>
    <record name="RTSPTransport" c:type="GstRTSPTransport">
      <doc xml:space="preserve">Provides helper functions to deal with RTSP transport strings.</doc>
      
      <field name="trans" writable="1">
        <doc xml:space="preserve">the transport mode</doc>
        <type name="RTSPTransMode" c:type="GstRTSPTransMode"/>
      </field>
      <field name="profile" writable="1">
        <doc xml:space="preserve">the tansport profile</doc>
        <type name="RTSPProfile" c:type="GstRTSPProfile"/>
      </field>
      <field name="lower_transport" writable="1">
        <doc xml:space="preserve">the lower transport</doc>
        <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
      </field>
      <field name="destination" writable="1">
        <doc xml:space="preserve">the destination ip/hostname</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="source" writable="1">
        <doc xml:space="preserve">the source ip/hostname</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="layers" writable="1">
        <doc xml:space="preserve">the number of layers</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <field name="mode_play" writable="1">
        <doc xml:space="preserve">if play mode was selected</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="mode_record" writable="1">
        <doc xml:space="preserve">if record mode was selected</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="append" writable="1">
        <doc xml:space="preserve">is append mode was selected</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="interleaved" writable="1">
        <doc xml:space="preserve">the interleave range</doc>
        <type name="RTSPRange" c:type="GstRTSPRange"/>
      </field>
      <field name="ttl" writable="1">
        <doc xml:space="preserve">the time to live for multicast UDP</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <field name="port" writable="1">
        <doc xml:space="preserve">the port pair for multicast sessions</doc>
        <type name="RTSPRange" c:type="GstRTSPRange"/>
      </field>
      <field name="client_port" writable="1">
        <doc xml:space="preserve">the client port pair for receiving data. For TCP
  based transports, applications can use this field to store the
  sender and receiver ports of the client.</doc>
        <type name="RTSPRange" c:type="GstRTSPRange"/>
      </field>
      <field name="server_port" writable="1">
        <doc xml:space="preserve">the server port pair for receiving data. For TCP
  based transports, applications can use this field to store the
  sender and receiver ports of the server.</doc>
        <type name="RTSPRange" c:type="GstRTSPRange"/>
      </field>
      <field name="ssrc" writable="1">
        <doc xml:space="preserve">the ssrc that the sender/receiver will use</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <method name="as_text" c:identifier="gst_rtsp_transport_as_text">
        <doc xml:space="preserve">Convert @transport into a string that can be used to signal the transport in
an RTSP SETUP response.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a string describing the RTSP transport or %NULL when the transport
is invalid.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="transport" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPTransport</doc>
            <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gst_rtsp_transport_free">
        <doc xml:space="preserve">Free the memory used by @transport.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="transport" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPTransport</doc>
            <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_media_type" c:identifier="gst_rtsp_transport_get_media_type" version="1.4">
        <doc xml:space="preserve">Get the media type of @transport. This media type is typically
used to generate #GstCaps events.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="transport" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPTransport</doc>
            <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
          </instance-parameter>
          <parameter name="media_type" direction="out" caller-allocates="0" transfer-ownership="none">
            <doc xml:space="preserve">media type of @transport</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="init" c:identifier="gst_rtsp_transport_init">
        <doc xml:space="preserve">Initialize @transport so that it can be used.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="transport" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPTransport</doc>
            <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="get_manager" c:identifier="gst_rtsp_transport_get_manager">
        <doc xml:space="preserve">Get the #GstElement that can handle the buffers transported over @trans.

It is possible that there are several managers available, use @option to
selected one.

@manager will contain an element name or %NULL when no manager is
needed/available for @trans.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPTransMode</doc>
            <type name="RTSPTransMode" c:type="GstRTSPTransMode"/>
          </parameter>
          <parameter name="manager" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1">
            <doc xml:space="preserve">location to hold the result</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
          <parameter name="option" transfer-ownership="none">
            <doc xml:space="preserve">option index.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_mime" c:identifier="gst_rtsp_transport_get_mime" deprecated="1">
        <doc xml:space="preserve">Get the mime type of the transport mode @trans. This mime type is typically
used to generate #GstCaps events.</doc>
        <doc-deprecated xml:space="preserve">This functions only deals with the GstRTSPTransMode and only
   returns the mime type for #GST_RTSP_PROFILE_AVP. Use
   gst_rtsp_transport_get_media_type() instead.</doc-deprecated>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <parameter name="trans" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPTransMode</doc>
            <type name="RTSPTransMode" c:type="GstRTSPTransMode"/>
          </parameter>
          <parameter name="mime" transfer-ownership="none">
            <doc xml:space="preserve">location to hold the result</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
        </parameters>
      </function>
      <function name="new" c:identifier="gst_rtsp_transport_new">
        <doc xml:space="preserve">Allocate a new initialized #GstRTSPTransport. Use gst_rtsp_transport_free()
after usage.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <parameter name="transport" transfer-ownership="none">
            <doc xml:space="preserve">location to hold the new #GstRTSPTransport</doc>
            <type name="RTSPTransport" c:type="GstRTSPTransport**"/>
          </parameter>
        </parameters>
      </function>
      <function name="parse" c:identifier="gst_rtsp_transport_parse">
        <doc xml:space="preserve">Parse the RTSP transport string @str into @transport.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve">a transport string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="transport" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPTransport</doc>
            <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="RTSPUrl" c:type="GstRTSPUrl" glib:type-name="GstRTSPUrl" glib:get-type="gst_rtsp_url_get_type" c:symbol-prefix="rtsp_url">
      <doc xml:space="preserve">Provides helper functions to handle RTSP urls.</doc>
      
      <field name="transports" writable="1">
        <doc xml:space="preserve">the transports allowed</doc>
        <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
      </field>
      <field name="family" writable="1">
        <doc xml:space="preserve">the family</doc>
        <type name="RTSPFamily" c:type="GstRTSPFamily"/>
      </field>
      <field name="user" writable="1">
        <doc xml:space="preserve">the user</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="passwd" writable="1">
        <doc xml:space="preserve">the password</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="host" writable="1">
        <doc xml:space="preserve">the host</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="port" writable="1">
        <doc xml:space="preserve">the port</doc>
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="abspath" writable="1">
        <doc xml:space="preserve">the absolute path</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="query" writable="1">
        <doc xml:space="preserve">additional query parameters</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <method name="copy" c:identifier="gst_rtsp_url_copy">
        <doc xml:space="preserve">Make a copy of @url.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of @url. Free with gst_rtsp_url_free () after usage.</doc>
          <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
        </return-value>
        <parameters>
          <instance-parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPUrl</doc>
            <type name="RTSPUrl" c:type="const GstRTSPUrl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="decode_path_components" c:identifier="gst_rtsp_url_decode_path_components">
        <doc xml:space="preserve">Splits the path of @url on '/' boundaries, decoding the resulting components,

The decoding performed by this routine is "URI decoding", as defined in RFC
3986, commonly known as percent-decoding. For example, a string "foo\%2fbar"
will decode to "foo/bar" -- the \%2f being replaced by the corresponding byte
with hex value 0x2f. Note that there is no guarantee that the resulting byte
sequence is valid in any given encoding. As a special case, \%00 is not
unescaped to NUL, as that would prematurely terminate the string.

Also note that since paths usually start with a slash, the first component
will usually be the empty string.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">%NULL-terminated array of URL components. Free with
g_strfreev() when no longer needed.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPUrl</doc>
            <type name="RTSPUrl" c:type="const GstRTSPUrl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gst_rtsp_url_free">
        <doc xml:space="preserve">Free the memory used by @url.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPUrl</doc>
            <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_port" c:identifier="gst_rtsp_url_get_port">
        <doc xml:space="preserve">Get the port number of @url.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPUrl</doc>
            <type name="RTSPUrl" c:type="const GstRTSPUrl*"/>
          </instance-parameter>
          <parameter name="port" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">location to hold the port</doc>
            <type name="guint16" c:type="guint16*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_request_uri" c:identifier="gst_rtsp_url_get_request_uri">
        <doc xml:space="preserve">Get a newly allocated string describing the request URI for @url.</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a string with the request URI. g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPUrl</doc>
            <type name="RTSPUrl" c:type="const GstRTSPUrl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_request_uri_with_control" c:identifier="gst_rtsp_url_get_request_uri_with_control" version="1.18">
        <doc xml:space="preserve">Get a newly allocated string describing the request URI for @url
combined with the control path for @control_path</doc>
        
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a string with the request URI combined with the control path.
g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPUrl</doc>
            <type name="RTSPUrl" c:type="const GstRTSPUrl*"/>
          </instance-parameter>
          <parameter name="control_path" transfer-ownership="none">
            <doc xml:space="preserve">an RTSP aggregate control path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_port" c:identifier="gst_rtsp_url_set_port">
        <doc xml:space="preserve">Set the port number in @url to @port.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPUrl</doc>
            <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
          </instance-parameter>
          <parameter name="port" transfer-ownership="none">
            <doc xml:space="preserve">the port</doc>
            <type name="guint16" c:type="guint16"/>
          </parameter>
        </parameters>
      </method>
      <function name="parse" c:identifier="gst_rtsp_url_parse">
        <doc xml:space="preserve">Parse the RTSP @urlstr into a newly allocated #GstRTSPUrl. Free after usage
with gst_rtsp_url_free().</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <parameter name="urlstr" transfer-ownership="none">
            <doc xml:space="preserve">the url string to parse</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="url" direction="out" caller-allocates="0" transfer-ownership="full">
            <doc xml:space="preserve">location to hold the result.</doc>
            <type name="RTSPUrl" c:type="GstRTSPUrl**"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <enumeration name="RTSPVersion" glib:type-name="GstRTSPVersion" glib:get-type="gst_rtsp_version_get_type" c:type="GstRTSPVersion">
      <doc xml:space="preserve">The supported RTSP versions.</doc>
      <member name="invalid" value="0" c:identifier="GST_RTSP_VERSION_INVALID" glib:nick="invalid">
        <doc xml:space="preserve">unknown/invalid version</doc>
      </member>
      <member name="1_0" value="16" c:identifier="GST_RTSP_VERSION_1_0" glib:nick="1-0">
        <doc xml:space="preserve">version 1.0</doc>
      </member>
      <member name="1_1" value="17" c:identifier="GST_RTSP_VERSION_1_1" glib:nick="1-1">
        <doc xml:space="preserve">version 1.1.</doc>
      </member>
      <member name="2_0" value="32" c:identifier="GST_RTSP_VERSION_2_0" glib:nick="2-0">
        <doc xml:space="preserve">version 2.0.</doc>
      </member>
      <function name="as_text" c:identifier="gst_rtsp_version_as_text">
        <doc xml:space="preserve">Convert @version to a string.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string representation of @version.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="version" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPVersion</doc>
            <type name="RTSPVersion" c:type="GstRTSPVersion"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <record name="RTSPWatch" c:type="GstRTSPWatch" disguised="1">
      <doc xml:space="preserve">Opaque RTSP watch object that can be used for asynchronous RTSP
operations.</doc>
      
      <method name="attach" c:identifier="gst_rtsp_watch_attach">
        <doc xml:space="preserve">Adds a #GstRTSPWatch to a context so that it will be executed within that context.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the ID (greater than 0) for the watch within the GMainContext.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="watch" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPWatch</doc>
            <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">a GMainContext (if NULL, the default context will be used)</doc>
            <type name="GLib.MainContext" c:type="GMainContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_send_backlog" c:identifier="gst_rtsp_watch_get_send_backlog" version="1.2">
        <doc xml:space="preserve">Get the maximum amount of bytes and messages that will be queued in @watch.
See gst_rtsp_watch_set_send_backlog().</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="watch" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPWatch</doc>
            <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
          </instance-parameter>
          <parameter name="bytes" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
            <doc xml:space="preserve">maximum bytes</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
          <parameter name="messages" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
            <doc xml:space="preserve">maximum messages</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset" c:identifier="gst_rtsp_watch_reset">
        <doc xml:space="preserve">Reset @watch, this is usually called after gst_rtsp_connection_do_tunnel()
when the file descriptors of the connection might have changed.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="watch" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPWatch</doc>
            <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="send_message" c:identifier="gst_rtsp_watch_send_message">
        <doc xml:space="preserve">Send a @message using the connection of the @watch. If it cannot be sent
immediately, it will be queued for transmission in @watch. The contents of
@message will then be serialized and transmitted when the connection of the
@watch becomes writable. In case the @message is queued, the ID returned in
@id will be non-zero and used as the ID argument in the message_sent
callback.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="watch" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPWatch</doc>
            <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPMessage</doc>
            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
          </parameter>
          <parameter name="id" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
            <doc xml:space="preserve">location for a message ID or %NULL</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_messages" c:identifier="gst_rtsp_watch_send_messages" version="1.16">
        <doc xml:space="preserve">Sends @messages using the connection of the @watch. If they cannot be sent
immediately, they will be queued for transmission in @watch. The contents of
@messages will then be serialized and transmitted when the connection of the
@watch becomes writable. In case the @messages are queued, the ID returned in
@id will be non-zero and used as the ID argument in the message_sent
callback once the last message is sent. The callback will only be called
once for the last message.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="watch" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPWatch</doc>
            <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
          </instance-parameter>
          <parameter name="messages" transfer-ownership="none">
            <doc xml:space="preserve">the messages to send</doc>
            <array length="1" zero-terminated="0" c:type="GstRTSPMessage*">
              <type name="RTSPMessage" c:type="GstRTSPMessage"/>
            </array>
          </parameter>
          <parameter name="n_messages" transfer-ownership="none">
            <doc xml:space="preserve">the number of messages to send</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="id" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
            <doc xml:space="preserve">location for a message ID or %NULL</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_flushing" c:identifier="gst_rtsp_watch_set_flushing" version="1.4">
        <doc xml:space="preserve">When @flushing is %TRUE, abort a call to gst_rtsp_watch_wait_backlog()
and make sure gst_rtsp_watch_write_data() returns immediately with
#GST_RTSP_EINTR. And empty the queue.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="watch" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPWatch</doc>
            <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
          </instance-parameter>
          <parameter name="flushing" transfer-ownership="none">
            <doc xml:space="preserve">new flushing state</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_send_backlog" c:identifier="gst_rtsp_watch_set_send_backlog" version="1.2">
        <doc xml:space="preserve">Set the maximum amount of bytes and messages that will be queued in @watch.
When the maximum amounts are exceeded, gst_rtsp_watch_write_data() and
gst_rtsp_watch_send_message() will return #GST_RTSP_ENOMEM.

A value of 0 for @bytes or @messages means no limits.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="watch" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPWatch</doc>
            <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
          </instance-parameter>
          <parameter name="bytes" transfer-ownership="none">
            <doc xml:space="preserve">maximum bytes</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
          <parameter name="messages" transfer-ownership="none">
            <doc xml:space="preserve">maximum messages</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="gst_rtsp_watch_unref">
        <doc xml:space="preserve">Decreases the reference count of @watch by one. If the resulting reference
count is zero the watch and associated memory will be destroyed.</doc>
        
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="watch" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPWatch</doc>
            <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="wait_backlog" c:identifier="gst_rtsp_watch_wait_backlog" version="1.4" deprecated="1" deprecated-version="1.18">
        <doc xml:space="preserve">Wait until there is place in the backlog queue, @timeout is reached
or @watch is set to flushing.

If @timeout is %NULL this function can block forever. If @timeout
contains a valid timeout, this function will return %GST_RTSP_ETIMEOUT
after the timeout expired.

The typically use of this function is when gst_rtsp_watch_write_data
returns %GST_RTSP_ENOMEM. The caller then calls this function to wait for
free space in the backlog queue and try again.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%GST_RTSP_OK when if there is room in queue.
         %GST_RTSP_ETIMEOUT when @timeout was reached.
         %GST_RTSP_EINTR when @watch is flushing
         %GST_RTSP_EINVAL when called with invalid parameters.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="watch" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPWatch</doc>
            <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
          </instance-parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a GTimeVal timeout</doc>
            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="wait_backlog_usec" c:identifier="gst_rtsp_watch_wait_backlog_usec" version="1.18">
        <doc xml:space="preserve">Wait until there is place in the backlog queue, @timeout is reached
or @watch is set to flushing.

If @timeout is 0 this function can block forever. If @timeout
contains a valid timeout, this function will return %GST_RTSP_ETIMEOUT
after the timeout expired.

The typically use of this function is when gst_rtsp_watch_write_data
returns %GST_RTSP_ENOMEM. The caller then calls this function to wait for
free space in the backlog queue and try again.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%GST_RTSP_OK when if there is room in queue.
         %GST_RTSP_ETIMEOUT when @timeout was reached.
         %GST_RTSP_EINTR when @watch is flushing
         %GST_RTSP_EINVAL when called with invalid parameters.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="watch" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPWatch</doc>
            <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
          </instance-parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout in microseconds</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_data" c:identifier="gst_rtsp_watch_write_data">
        <doc xml:space="preserve">Write @data using the connection of the @watch. If it cannot be sent
immediately, it will be queued for transmission in @watch. The contents of
@message will then be serialized and transmitted when the connection of the
@watch becomes writable. In case the @message is queued, the ID returned in
@id will be non-zero and used as the ID argument in the message_sent
callback.

This function will take ownership of @data and g_free() it after use.

If the amount of queued data exceeds the limits set with
gst_rtsp_watch_set_send_backlog(), this function will return
#GST_RTSP_ENOMEM.</doc>
        
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_RTSP_OK on success. #GST_RTSP_ENOMEM when the backlog limits
are reached. #GST_RTSP_EINTR when @watch was flushing.</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="watch" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPWatch</doc>
            <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="full">
            <doc xml:space="preserve">the data to queue</doc>
            <array length="1" zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the size of @data</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="id" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
            <doc xml:space="preserve">location for a message ID or %NULL</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <function name="new" c:identifier="gst_rtsp_watch_new" introspectable="0">
        <doc xml:space="preserve">Create a watch object for @conn. The functions provided in @funcs will be
called with @user_data when activity happened on the watch.

The new watch is usually created so that it can be attached to a
maincontext with gst_rtsp_watch_attach().

@conn must exist for the entire lifetime of the watch.</doc>
        
        <return-value>
          <doc xml:space="preserve">a #GstRTSPWatch that can be used for asynchronous RTSP
communication. Free with gst_rtsp_watch_unref () after usage.</doc>
          <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
        </return-value>
        <parameters>
          <parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstRTSPConnection</doc>
            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
          </parameter>
          <parameter name="funcs" transfer-ownership="none">
            <doc xml:space="preserve">watch functions</doc>
            <type name="RTSPWatchFuncs" c:type="GstRTSPWatchFuncs*"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">user data to pass to @funcs</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" scope="async">
            <doc xml:space="preserve">notify when @user_data is not referenced anymore</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="RTSPWatchFuncs" c:type="GstRTSPWatchFuncs">
      <doc xml:space="preserve">Callback functions from a #GstRTSPWatch.</doc>
      
      <field name="message_received">
        <callback name="message_received">
          
          <return-value transfer-ownership="none">
            <type name="RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="watch" transfer-ownership="none">
              <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="message_sent">
        <callback name="message_sent">
          
          <return-value transfer-ownership="none">
            <type name="RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="watch" transfer-ownership="none">
              <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="closed">
        <callback name="closed">
          
          <return-value transfer-ownership="none">
            <type name="RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="watch" transfer-ownership="none">
              <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="error">
        <callback name="error">
          
          <return-value transfer-ownership="none">
            <type name="RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="watch" transfer-ownership="none">
              <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <type name="RTSPResult" c:type="GstRTSPResult"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="tunnel_start">
        <callback name="tunnel_start">
          
          <return-value transfer-ownership="none">
            <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
          </return-value>
          <parameters>
            <parameter name="watch" transfer-ownership="none">
              <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="tunnel_complete">
        <callback name="tunnel_complete">
          
          <return-value transfer-ownership="none">
            <type name="RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="watch" transfer-ownership="none">
              <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="error_full">
        <callback name="error_full">
          
          <return-value transfer-ownership="none">
            <type name="RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="watch" transfer-ownership="none">
              <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <type name="RTSPResult" c:type="GstRTSPResult"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="4">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="tunnel_lost">
        <callback name="tunnel_lost">
          
          <return-value transfer-ownership="none">
            <type name="RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="watch" transfer-ownership="none">
              <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="tunnel_http_response">
        <callback name="tunnel_http_response">
          
          <return-value transfer-ownership="none">
            <type name="RTSPResult" c:type="GstRTSPResult"/>
          </return-value>
          <parameters>
            <parameter name="watch" transfer-ownership="none">
              <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
            </parameter>
            <parameter name="request" transfer-ownership="none">
              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
            </parameter>
            <parameter name="response" transfer-ownership="none">
              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3">
              <type name="gpointer" c:type="gpointer"/>
            </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>
    <function-macro name="RTSP_CHECK" c:identifier="GST_RTSP_CHECK" introspectable="0">
      <doc xml:space="preserve">Macro that checks the return value of @stmt and jumps to @label when it does
not equal #GST_RTSP_OK.</doc>
      
      <parameters>
        <parameter name="stmt">
          <doc xml:space="preserve">a statement</doc>
        </parameter>
        <parameter name="label">
          <doc xml:space="preserve">a label</doc>
        </parameter>
      </parameters>
    </function-macro>
    <constant name="RTSP_DEFAULT_PORT" value="554" c:type="GST_RTSP_DEFAULT_PORT">
      <doc xml:space="preserve">The default RTSP port to connect to.</doc>
      
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="RTSP_DEPRECATED_FOR" c:identifier="GST_RTSP_DEPRECATED_FOR" introspectable="0">
      
      <parameters>
        <parameter name="f">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_EXTENSION" c:identifier="GST_RTSP_EXTENSION" introspectable="0">
      
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_EXTENSION_GET_INTERFACE" c:identifier="GST_RTSP_EXTENSION_GET_INTERFACE" introspectable="0">
      
      <parameters>
        <parameter name="inst">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MESSAGE" c:identifier="GST_RTSP_MESSAGE" introspectable="0">
      
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RTSP_MESSAGE_CAST" c:identifier="GST_RTSP_MESSAGE_CAST" introspectable="0">
      
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function name="rtsp_auth_credentials_free" c:identifier="gst_rtsp_auth_credentials_free" version="1.12">
      <doc xml:space="preserve">Free a %NULL-terminated array of credentials returned from
gst_rtsp_message_parse_auth_credentials().</doc>
      
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="credentials" transfer-ownership="none">
          <doc xml:space="preserve">a %NULL-terminated array of #GstRTSPAuthCredential</doc>
          <type name="RTSPAuthCredential" c:type="GstRTSPAuthCredential**"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_connection_accept" c:identifier="gst_rtsp_connection_accept" moved-to="RTSPConnection.accept">
      <doc xml:space="preserve">Accept a new connection on @socket and create a new #GstRTSPConnection for
handling communication on new socket.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">#GST_RTSP_OK when @conn contains a valid connection.</doc>
        <type name="RTSPResult" c:type="GstRTSPResult"/>
      </return-value>
      <parameters>
        <parameter name="socket" transfer-ownership="none">
          <doc xml:space="preserve">a socket</doc>
          <type name="Gio.Socket" c:type="GSocket*"/>
        </parameter>
        <parameter name="conn" direction="out" caller-allocates="0" transfer-ownership="full">
          <doc xml:space="preserve">storage for a #GstRTSPConnection</doc>
          <type name="RTSPConnection" c:type="GstRTSPConnection**"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1">
          <doc xml:space="preserve">a #GCancellable to cancel the operation</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_connection_create" c:identifier="gst_rtsp_connection_create" moved-to="RTSPConnection.create">
      <doc xml:space="preserve">Create a newly allocated #GstRTSPConnection from @url and store it in @conn.
The connection will not yet attempt to connect to @url, use
gst_rtsp_connection_connect().

A copy of @url will be made.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">#GST_RTSP_OK when @conn contains a valid connection.</doc>
        <type name="RTSPResult" c:type="GstRTSPResult"/>
      </return-value>
      <parameters>
        <parameter name="url" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPUrl</doc>
          <type name="RTSPUrl" c:type="const GstRTSPUrl*"/>
        </parameter>
        <parameter name="conn" direction="out" caller-allocates="0" transfer-ownership="full">
          <doc xml:space="preserve">storage for a #GstRTSPConnection</doc>
          <type name="RTSPConnection" c:type="GstRTSPConnection**"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_connection_create_from_socket" c:identifier="gst_rtsp_connection_create_from_socket" moved-to="RTSPConnection.create_from_socket">
      <doc xml:space="preserve">Create a new #GstRTSPConnection for handling communication on the existing
socket @socket. The @initial_buffer contains zero terminated data already
read from @socket which should be used before starting to read new data.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">#GST_RTSP_OK when @conn contains a valid connection.</doc>
        <type name="RTSPResult" c:type="GstRTSPResult"/>
      </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="ip" transfer-ownership="none">
          <doc xml:space="preserve">the IP address of the other end</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="guint16" c:type="guint16"/>
        </parameter>
        <parameter name="initial_buffer" transfer-ownership="none">
          <doc xml:space="preserve">data already read from @fd</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="conn" direction="out" caller-allocates="0" transfer-ownership="full">
          <doc xml:space="preserve">storage for a #GstRTSPConnection</doc>
          <type name="RTSPConnection" c:type="GstRTSPConnection**"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_find_header_field" c:identifier="gst_rtsp_find_header_field">
      <doc xml:space="preserve">Convert @header to a #GstRTSPHeaderField.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPHeaderField for @header or #GST_RTSP_HDR_INVALID if the
header field is unknown.</doc>
        <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
      </return-value>
      <parameters>
        <parameter name="header" transfer-ownership="none">
          <doc xml:space="preserve">a header string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_find_method" c:identifier="gst_rtsp_find_method">
      <doc xml:space="preserve">Convert @method to a #GstRTSPMethod.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPMethod for @method or #GST_RTSP_INVALID if the
method is unknown.</doc>
        <type name="RTSPMethod" c:type="GstRTSPMethod"/>
      </return-value>
      <parameters>
        <parameter name="method" transfer-ownership="none">
          <doc xml:space="preserve">a method</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_generate_digest_auth_response" c:identifier="gst_rtsp_generate_digest_auth_response" version="1.12">
      <doc xml:space="preserve">Calculates the digest auth response from the values given by the server and
the username and password. See RFC2069 for details.

Currently only supported algorithm "md5".</doc>
      
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">Authentication response or %NULL if unsupported</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="algorithm" transfer-ownership="none" nullable="1" allow-none="1">
          <doc xml:space="preserve">Hash algorithm to use, or %NULL for MD5</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="method" transfer-ownership="none">
          <doc xml:space="preserve">Request method, e.g. PLAY</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="realm" transfer-ownership="none">
          <doc xml:space="preserve">Realm</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="username" transfer-ownership="none">
          <doc xml:space="preserve">Username</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="password" transfer-ownership="none">
          <doc xml:space="preserve">Password</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve">Original request URI</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="nonce" transfer-ownership="none">
          <doc xml:space="preserve">Nonce</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_generate_digest_auth_response_from_md5" c:identifier="gst_rtsp_generate_digest_auth_response_from_md5" version="1.16">
      <doc xml:space="preserve">Calculates the digest auth response from the values given by the server and
the md5sum. See RFC2069 for details.

This function is useful when the passwords are not stored in clear text,
but instead in the same format as the .htdigest file.

Currently only supported algorithm "md5".</doc>
      
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">Authentication response or %NULL if unsupported</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="algorithm" transfer-ownership="none" nullable="1" allow-none="1">
          <doc xml:space="preserve">Hash algorithm to use, or %NULL for MD5</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="method" transfer-ownership="none">
          <doc xml:space="preserve">Request method, e.g. PLAY</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="md5" transfer-ownership="none">
          <doc xml:space="preserve">The md5 sum of username:realm:password</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve">Original request URI</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="nonce" transfer-ownership="none">
          <doc xml:space="preserve">Nonce</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_header_allow_multiple" c:identifier="gst_rtsp_header_allow_multiple">
      <doc xml:space="preserve">Check whether @field may appear multiple times in a message.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if multiple headers are allowed.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="field" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPHeaderField</doc>
          <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_header_as_text" c:identifier="gst_rtsp_header_as_text">
      <doc xml:space="preserve">Convert @field to a string.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a string representation of @field.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="field" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPHeaderField</doc>
          <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_message_new" c:identifier="gst_rtsp_message_new">
      <doc xml:space="preserve">Create a new initialized #GstRTSPMessage. Free with gst_rtsp_message_free().</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPResult.</doc>
        <type name="RTSPResult" c:type="GstRTSPResult"/>
      </return-value>
      <parameters>
        <parameter name="msg" direction="out" caller-allocates="0" transfer-ownership="full">
          <doc xml:space="preserve">a location for the new #GstRTSPMessage</doc>
          <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_message_new_data" c:identifier="gst_rtsp_message_new_data">
      <doc xml:space="preserve">Create a new data #GstRTSPMessage with @channel and store the
result message in @msg. Free with gst_rtsp_message_free().</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPResult.</doc>
        <type name="RTSPResult" c:type="GstRTSPResult"/>
      </return-value>
      <parameters>
        <parameter name="msg" direction="out" caller-allocates="0" transfer-ownership="full">
          <doc xml:space="preserve">a location for the new #GstRTSPMessage</doc>
          <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
        </parameter>
        <parameter name="channel" transfer-ownership="none">
          <doc xml:space="preserve">the channel</doc>
          <type name="guint8" c:type="guint8"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_message_new_request" c:identifier="gst_rtsp_message_new_request">
      <doc xml:space="preserve">Create a new #GstRTSPMessage with @method and @uri and store the result
request message in @msg. Free with gst_rtsp_message_free().</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPResult.</doc>
        <type name="RTSPResult" c:type="GstRTSPResult"/>
      </return-value>
      <parameters>
        <parameter name="msg" direction="out" caller-allocates="0" transfer-ownership="full">
          <doc xml:space="preserve">a location for the new #GstRTSPMessage</doc>
          <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
        </parameter>
        <parameter name="method" transfer-ownership="none">
          <doc xml:space="preserve">the request method to use</doc>
          <type name="RTSPMethod" c:type="GstRTSPMethod"/>
        </parameter>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve">the uri of the request</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_message_new_response" c:identifier="gst_rtsp_message_new_response">
      <doc xml:space="preserve">Create a new response #GstRTSPMessage with @code and @reason and store the
result message in @msg. Free with gst_rtsp_message_free().

When @reason is %NULL, the default reason for @code will be used.

When @request is not %NULL, the relevant headers will be copied to the new
response message.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPResult.</doc>
        <type name="RTSPResult" c:type="GstRTSPResult"/>
      </return-value>
      <parameters>
        <parameter name="msg" direction="out" caller-allocates="0" transfer-ownership="full">
          <doc xml:space="preserve">a location for the new #GstRTSPMessage</doc>
          <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
        </parameter>
        <parameter name="code" transfer-ownership="none">
          <doc xml:space="preserve">the status code</doc>
          <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
        </parameter>
        <parameter name="reason" transfer-ownership="none" nullable="1" allow-none="1">
          <doc xml:space="preserve">the status reason or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="request" transfer-ownership="none" nullable="1" allow-none="1">
          <doc xml:space="preserve">the request that triggered the response or %NULL</doc>
          <type name="RTSPMessage" c:type="const GstRTSPMessage*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_method_as_text" c:identifier="gst_rtsp_method_as_text" moved-to="RTSPMethod.as_text">
      <doc xml:space="preserve">Convert @method to a string.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a string representation of @method.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="method" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPMethod</doc>
          <type name="RTSPMethod" c:type="GstRTSPMethod"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_options_as_text" c:identifier="gst_rtsp_options_as_text">
      <doc xml:space="preserve">Convert @options to a string.</doc>
      
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a new string of @options. g_free() after usage.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="options" transfer-ownership="none">
          <doc xml:space="preserve">one or more #GstRTSPMethod</doc>
          <type name="RTSPMethod" c:type="GstRTSPMethod"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_options_from_text" c:identifier="gst_rtsp_options_from_text" version="1.2">
      <doc xml:space="preserve">Convert the comma separated list @options to a #GstRTSPMethod bitwise or
of methods. This functions is the reverse of gst_rtsp_options_as_text().</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPMethod</doc>
        <type name="RTSPMethod" c:type="GstRTSPMethod"/>
      </return-value>
      <parameters>
        <parameter name="options" transfer-ownership="none">
          <doc xml:space="preserve">a comma separated list of options</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_range_convert_units" c:identifier="gst_rtsp_range_convert_units" moved-to="RTSPRange.convert_units">
      <doc xml:space="preserve">Converts the range in-place between different types of units.
Ranges containing the special value #GST_RTSP_TIME_NOW can not be
converted as these are only valid for #GST_RTSP_RANGE_NPT.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if the range could be converted</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="range" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPTimeRange</doc>
          <type name="RTSPTimeRange" c:type="GstRTSPTimeRange*"/>
        </parameter>
        <parameter name="unit" transfer-ownership="none">
          <doc xml:space="preserve">the unit to convert the range into</doc>
          <type name="RTSPRangeUnit" c:type="GstRTSPRangeUnit"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_range_free" c:identifier="gst_rtsp_range_free" moved-to="RTSPRange.free">
      <doc xml:space="preserve">Free the memory allocated by @range.</doc>
      
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="range" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPTimeRange</doc>
          <type name="RTSPTimeRange" c:type="GstRTSPTimeRange*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_range_get_times" c:identifier="gst_rtsp_range_get_times" moved-to="RTSPRange.get_times" version="1.2">
      <doc xml:space="preserve">Retrieve the minimum and maximum values from @range converted to
#GstClockTime in @min and @max.

A value of %GST_CLOCK_TIME_NONE will be used to signal #GST_RTSP_TIME_NOW
and #GST_RTSP_TIME_END for @min and @max respectively.

UTC times will be converted to nanoseconds since 1900.</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="range" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPTimeRange</doc>
          <type name="RTSPTimeRange" c:type="const GstRTSPTimeRange*"/>
        </parameter>
        <parameter name="min" direction="out" caller-allocates="0" transfer-ownership="full">
          <doc xml:space="preserve">result minimum #GstClockTime</doc>
          <type name="Gst.ClockTime" c:type="GstClockTime*"/>
        </parameter>
        <parameter name="max" direction="out" caller-allocates="0" transfer-ownership="full">
          <doc xml:space="preserve">result maximum #GstClockTime</doc>
          <type name="Gst.ClockTime" c:type="GstClockTime*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_range_parse" c:identifier="gst_rtsp_range_parse" moved-to="RTSPRange.parse">
      <doc xml:space="preserve">Parse @rangestr to a #GstRTSPTimeRange.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">#GST_RTSP_OK on success.</doc>
        <type name="RTSPResult" c:type="GstRTSPResult"/>
      </return-value>
      <parameters>
        <parameter name="rangestr" transfer-ownership="none">
          <doc xml:space="preserve">a range string to parse</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="range" direction="out" caller-allocates="0" transfer-ownership="full">
          <doc xml:space="preserve">location to hold the #GstRTSPTimeRange result</doc>
          <type name="RTSPTimeRange" c:type="GstRTSPTimeRange**"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_range_to_string" c:identifier="gst_rtsp_range_to_string" moved-to="RTSPRange.to_string">
      <doc xml:space="preserve">Convert @range into a string representation.</doc>
      
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">The string representation of @range. g_free() after usage.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="range" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPTimeRange</doc>
          <type name="RTSPTimeRange" c:type="const GstRTSPTimeRange*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_status_as_text" c:identifier="gst_rtsp_status_as_text">
      <doc xml:space="preserve">Convert @code to a string.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a string representation of @code.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="code" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPStatusCode</doc>
          <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_strresult" c:identifier="gst_rtsp_strresult">
      <doc xml:space="preserve">Convert @result in a human readable string.</doc>
      
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a newly allocated string. g_free() after usage.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="result" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPResult</doc>
          <type name="RTSPResult" c:type="GstRTSPResult"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_transport_get_manager" c:identifier="gst_rtsp_transport_get_manager" moved-to="RTSPTransport.get_manager">
      <doc xml:space="preserve">Get the #GstElement that can handle the buffers transported over @trans.

It is possible that there are several managers available, use @option to
selected one.

@manager will contain an element name or %NULL when no manager is
needed/available for @trans.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">#GST_RTSP_OK.</doc>
        <type name="RTSPResult" c:type="GstRTSPResult"/>
      </return-value>
      <parameters>
        <parameter name="trans" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPTransMode</doc>
          <type name="RTSPTransMode" c:type="GstRTSPTransMode"/>
        </parameter>
        <parameter name="manager" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">location to hold the result</doc>
          <type name="utf8" c:type="const gchar**"/>
        </parameter>
        <parameter name="option" transfer-ownership="none">
          <doc xml:space="preserve">option index.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_transport_get_mime" c:identifier="gst_rtsp_transport_get_mime" moved-to="RTSPTransport.get_mime" deprecated="1">
      <doc xml:space="preserve">Get the mime type of the transport mode @trans. This mime type is typically
used to generate #GstCaps events.</doc>
      <doc-deprecated xml:space="preserve">This functions only deals with the GstRTSPTransMode and only
   returns the mime type for #GST_RTSP_PROFILE_AVP. Use
   gst_rtsp_transport_get_media_type() instead.</doc-deprecated>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">#GST_RTSP_OK.</doc>
        <type name="RTSPResult" c:type="GstRTSPResult"/>
      </return-value>
      <parameters>
        <parameter name="trans" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPTransMode</doc>
          <type name="RTSPTransMode" c:type="GstRTSPTransMode"/>
        </parameter>
        <parameter name="mime" transfer-ownership="none">
          <doc xml:space="preserve">location to hold the result</doc>
          <type name="utf8" c:type="const gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_transport_new" c:identifier="gst_rtsp_transport_new" moved-to="RTSPTransport.new">
      <doc xml:space="preserve">Allocate a new initialized #GstRTSPTransport. Use gst_rtsp_transport_free()
after usage.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPResult.</doc>
        <type name="RTSPResult" c:type="GstRTSPResult"/>
      </return-value>
      <parameters>
        <parameter name="transport" transfer-ownership="none">
          <doc xml:space="preserve">location to hold the new #GstRTSPTransport</doc>
          <type name="RTSPTransport" c:type="GstRTSPTransport**"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_transport_parse" c:identifier="gst_rtsp_transport_parse" moved-to="RTSPTransport.parse">
      <doc xml:space="preserve">Parse the RTSP transport string @str into @transport.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPResult.</doc>
        <type name="RTSPResult" c:type="GstRTSPResult"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve">a transport string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="transport" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPTransport</doc>
          <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_url_parse" c:identifier="gst_rtsp_url_parse" moved-to="RTSPUrl.parse">
      <doc xml:space="preserve">Parse the RTSP @urlstr into a newly allocated #GstRTSPUrl. Free after usage
with gst_rtsp_url_free().</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstRTSPResult.</doc>
        <type name="RTSPResult" c:type="GstRTSPResult"/>
      </return-value>
      <parameters>
        <parameter name="urlstr" transfer-ownership="none">
          <doc xml:space="preserve">the url string to parse</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="url" direction="out" caller-allocates="0" transfer-ownership="full">
          <doc xml:space="preserve">location to hold the result.</doc>
          <type name="RTSPUrl" c:type="GstRTSPUrl**"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_version_as_text" c:identifier="gst_rtsp_version_as_text" moved-to="RTSPVersion.as_text">
      <doc xml:space="preserve">Convert @version to a string.</doc>
      
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a string representation of @version.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="version" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPVersion</doc>
          <type name="RTSPVersion" c:type="GstRTSPVersion"/>
        </parameter>
      </parameters>
    </function>
    <function name="rtsp_watch_new" c:identifier="gst_rtsp_watch_new" moved-to="RTSPWatch.new" introspectable="0">
      <doc xml:space="preserve">Create a watch object for @conn. The functions provided in @funcs will be
called with @user_data when activity happened on the watch.

The new watch is usually created so that it can be attached to a
maincontext with gst_rtsp_watch_attach().

@conn must exist for the entire lifetime of the watch.</doc>
      
      <return-value>
        <doc xml:space="preserve">a #GstRTSPWatch that can be used for asynchronous RTSP
communication. Free with gst_rtsp_watch_unref () after usage.</doc>
        <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
      </return-value>
      <parameters>
        <parameter name="conn" transfer-ownership="none">
          <doc xml:space="preserve">a #GstRTSPConnection</doc>
          <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
        </parameter>
        <parameter name="funcs" transfer-ownership="none">
          <doc xml:space="preserve">watch functions</doc>
          <type name="RTSPWatchFuncs" c:type="GstRTSPWatchFuncs*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
          <doc xml:space="preserve">user data to pass to @funcs</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="notify" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">notify when @user_data is not referenced anymore</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
