<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Gst" version="1.0"/>
  <package name="gstreamer-sdp-1.0"/>
  <c:include name="gst/sdp/sdp.h"/>
  <namespace name="GstSdp"
             version="1.0"
             shared-library="libgstsdp-1.0.so.0"
             c:identifier-prefixes="Gst"
             c:symbol-prefixes="gst">
    <enumeration name="MIKEYCacheType" c:type="GstMIKEYCacheType">
      <doc xml:space="preserve">The different cache types</doc>
      <member name="none" value="0" c:identifier="GST_MIKEY_CACHE_NONE">
        <doc xml:space="preserve">The envelope key MUST NOT be cached</doc>
      </member>
      <member name="always" value="1" c:identifier="GST_MIKEY_CACHE_ALWAYS">
        <doc xml:space="preserve">The envelope key MUST be cached</doc>
      </member>
      <member name="for_csb" value="2" c:identifier="GST_MIKEY_CACHE_FOR_CSB">
        <doc xml:space="preserve">The envelope key MUST be cached, but only
                          to be used for the specific CSB.</doc>
      </member>
    </enumeration>
    <record name="MIKEYDecryptInfo" c:type="GstMIKEYDecryptInfo" disguised="1">
    </record>
    <enumeration name="MIKEYEncAlg" c:type="GstMIKEYEncAlg">
      <doc xml:space="preserve">The encryption algorithm used to encrypt the Encr data field</doc>
      <member name="null" value="0" c:identifier="GST_MIKEY_ENC_NULL">
        <doc xml:space="preserve">no encryption</doc>
      </member>
      <member name="aes_cm_128"
              value="1"
              c:identifier="GST_MIKEY_ENC_AES_CM_128">
        <doc xml:space="preserve">AES-CM using a 128-bit key</doc>
      </member>
      <member name="aes_kw_128"
              value="2"
              c:identifier="GST_MIKEY_ENC_AES_KW_128">
        <doc xml:space="preserve">AES Key Wrap using a 128-bit key</doc>
      </member>
    </enumeration>
    <record name="MIKEYEncryptInfo" c:type="GstMIKEYEncryptInfo" disguised="1">
    </record>
    <enumeration name="MIKEYKVType" c:type="GstMIKEYKVType">
      <doc xml:space="preserve">The key validity type</doc>
      <member name="null" value="0" c:identifier="GST_MIKEY_KV_NULL">
        <doc xml:space="preserve">No specific usage rule</doc>
      </member>
      <member name="spi" value="1" c:identifier="GST_MIKEY_KV_SPI">
        <doc xml:space="preserve">The key is associated with the SPI/MKI</doc>
      </member>
      <member name="interval" value="2" c:identifier="GST_MIKEY_KV_INTERVAL">
        <doc xml:space="preserve">The key has a start and expiration time</doc>
      </member>
    </enumeration>
    <enumeration name="MIKEYKeyDataType" c:type="GstMIKEYKeyDataType">
      <doc xml:space="preserve">The type of key.</doc>
      <member name="tgk" value="0" c:identifier="GST_MIKEY_KD_TGK">
        <doc xml:space="preserve">a TEK Generation Key</doc>
      </member>
      <member name="tek" value="2" c:identifier="GST_MIKEY_KD_TEK">
        <doc xml:space="preserve">Traffic-Encrypting Key</doc>
      </member>
    </enumeration>
    <enumeration name="MIKEYMacAlg" c:type="GstMIKEYMacAlg">
      <doc xml:space="preserve">Specifies the authentication algorithm used</doc>
      <member name="null" value="0" c:identifier="GST_MIKEY_MAC_NULL">
        <doc xml:space="preserve">no authentication</doc>
      </member>
      <member name="hmac_sha_1_160"
              value="1"
              c:identifier="GST_MIKEY_MAC_HMAC_SHA_1_160">
        <doc xml:space="preserve">HMAC-SHA-1-160</doc>
      </member>
    </enumeration>
    <record name="MIKEYMapSRTP" c:type="GstMIKEYMapSRTP">
      <doc xml:space="preserve">The Security policy Map item for SRTP</doc>
      <field name="policy" writable="1">
        <doc xml:space="preserve">The security policy applied for the stream with @ssrc</doc>
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="ssrc" writable="1">
        <doc xml:space="preserve">the SSRC that must be used for the stream</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="roc" writable="1">
        <doc xml:space="preserve">current rollover counter</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
    </record>
    <enumeration name="MIKEYMapType" c:type="GstMIKEYMapType">
      <doc xml:space="preserve">Specifies the method of uniquely mapping Crypto Sessions to the security
protocol sessions.</doc>
      <member name="mikey_map_type_srtp"
              value="0"
              c:identifier="GST_MIKEY_MAP_TYPE_SRTP">
      </member>
    </enumeration>
    <record name="MIKEYMessage"
            c:type="GstMIKEYMessage"
            glib:type-name="GstMIKEYMessage"
            glib:get-type="gst_mikey_message_get_type"
            c:symbol-prefix="mikey_message">
      <doc xml:space="preserve">Structure holding the information of the MIKEY message</doc>
      <field name="mini_object" readable="0" private="1">
        <type name="Gst.MiniObject" c:type="GstMiniObject"/>
      </field>
      <field name="version" writable="1">
        <doc xml:space="preserve">the version</doc>
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="type" writable="1">
        <doc xml:space="preserve">the #GstMIKEYType message type</doc>
        <type name="MIKEYType" c:type="GstMIKEYType"/>
      </field>
      <field name="V" writable="1">
        <doc xml:space="preserve">verify flag</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="prf_func" writable="1">
        <doc xml:space="preserve">a #GstMIKEYPRFFunc</doc>
        <type name="MIKEYPRFFunc" c:type="GstMIKEYPRFFunc"/>
      </field>
      <field name="CSB_id" writable="1">
        <doc xml:space="preserve">Identifies the Crypto Session Bundle</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="map_type" writable="1">
        <doc xml:space="preserve">a #GstMIKEYMapType</doc>
        <type name="MIKEYMapType" c:type="GstMIKEYMapType"/>
      </field>
      <field name="map_info" writable="1">
        <doc xml:space="preserve">map info array of type depending on @map_type</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="payloads" writable="1">
        <doc xml:space="preserve">the payload array of #GstMIKEYPayload</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <constructor name="new"
                   c:identifier="gst_mikey_message_new"
                   version="1.4">
        <doc xml:space="preserve">Make a new MIKEY message.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstMIKEYMessage on success</doc>
          <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_bytes"
                   c:identifier="gst_mikey_message_new_from_bytes"
                   version="1.4"
                   throws="1">
        <doc xml:space="preserve">Make a new #GstMIKEYMessage from @bytes.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstMIKEYMessage</doc>
          <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
        </return-value>
        <parameters>
          <parameter name="bytes" transfer-ownership="none">
            <doc xml:space="preserve">a #GBytes</doc>
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYDecryptInfo</doc>
            <type name="MIKEYDecryptInfo" c:type="GstMIKEYDecryptInfo*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_caps"
                   c:identifier="gst_mikey_message_new_from_caps"
                   version="1.8">
        <doc xml:space="preserve">Makes mikey message including:
 - Security Policy Payload
 - Key Data Transport Payload
 - Key Data Sub-Payload</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GstMIKEYMessage,
or %NULL if there is no srtp information in the caps.</doc>
          <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
        </return-value>
        <parameters>
          <parameter name="caps" transfer-ownership="none">
            <doc xml:space="preserve">a #GstCaps, including SRTP parameters (srtp/srtcp cipher, authorization, key data)</doc>
            <type name="Gst.Caps" c:type="GstCaps*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_data"
                   c:identifier="gst_mikey_message_new_from_data"
                   version="1.4"
                   throws="1">
        <doc xml:space="preserve">Parse @size bytes from @data into a #GstMIKEYMessage. @info contains the
parameters to decrypt and verify the data.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GstMIKEYMessage on success or %NULL when parsing failed and
@error will be set.</doc>
          <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">bytes to read</doc>
            <array length="1" zero-terminated="0" c:type="gconstpointer">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">length of @data</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">#GstMIKEYDecryptInfo</doc>
            <type name="MIKEYDecryptInfo" c:type="GstMIKEYDecryptInfo*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_cs_srtp"
              c:identifier="gst_mikey_message_add_cs_srtp"
              version="1.4">
        <doc xml:space="preserve">Add a Crypto policy for SRTP to @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="policy" transfer-ownership="none">
            <doc xml:space="preserve">The security policy applied for the stream with @ssrc</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
          <parameter name="ssrc" transfer-ownership="none">
            <doc xml:space="preserve">the SSRC that must be used for the stream</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="roc" transfer-ownership="none">
            <doc xml:space="preserve">current rollover counter</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_payload"
              c:identifier="gst_mikey_message_add_payload"
              version="1.4">
        <doc xml:space="preserve">Add a new payload to @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="payload" transfer-ownership="full">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_pke"
              c:identifier="gst_mikey_message_add_pke"
              version="1.4">
        <doc xml:space="preserve">Add a new PKE payload to @msg with the given parameters.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="C" transfer-ownership="none">
            <doc xml:space="preserve">envelope key cache indicator</doc>
            <type name="MIKEYCacheType" c:type="GstMIKEYCacheType"/>
          </parameter>
          <parameter name="data_len" transfer-ownership="none">
            <doc xml:space="preserve">the length of @data</doc>
            <type name="guint16" c:type="guint16"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">the encrypted envelope key</doc>
            <array length="1" zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="add_rand"
              c:identifier="gst_mikey_message_add_rand"
              version="1.4">
        <doc xml:space="preserve">Add a new RAND payload to @msg with the given parameters.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve">the length of @rand</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
          <parameter name="rand" transfer-ownership="none">
            <doc xml:space="preserve">random data</doc>
            <array length="0" zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="add_rand_len"
              c:identifier="gst_mikey_message_add_rand_len"
              version="1.4">
        <doc xml:space="preserve">Add a new RAND payload to @msg with @len random bytes.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve">length</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_t"
              c:identifier="gst_mikey_message_add_t"
              version="1.4">
        <doc xml:space="preserve">Add a new T payload to @msg with the given parameters.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">specifies the timestamp type used</doc>
            <type name="MIKEYTSType" c:type="GstMIKEYTSType"/>
          </parameter>
          <parameter name="ts_value" transfer-ownership="none">
            <doc xml:space="preserve">The timestamp value of the specified @type</doc>
            <array zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="add_t_now_ntp_utc"
              c:identifier="gst_mikey_message_add_t_now_ntp_utc"
              version="1.4">
        <doc xml:space="preserve">Add a new T payload to @msg that contains the current time
in NTP-UTC format.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="base64_encode"
              c:identifier="gst_mikey_message_base64_encode"
              version="1.8">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #gchar, base64-encoded data</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="find_payload"
              c:identifier="gst_mikey_message_find_payload"
              version="1.4">
        <doc xml:space="preserve">Find the @nth occurence of the payload with @type in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the @nth #GstMIKEYPayload of @type.</doc>
          <type name="MIKEYPayload" c:type="const GstMIKEYPayload*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="const GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayloadType</doc>
            <type name="MIKEYPayloadType" c:type="GstMIKEYPayloadType"/>
          </parameter>
          <parameter name="nth" transfer-ownership="none">
            <doc xml:space="preserve">payload to find</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_cs_srtp"
              c:identifier="gst_mikey_message_get_cs_srtp"
              version="1.4">
        <doc xml:space="preserve">Get the policy information of @msg at @idx.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstMIKEYMapSRTP</doc>
          <type name="MIKEYMapSRTP" c:type="const GstMIKEYMapSRTP*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="const GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_n_cs"
              c:identifier="gst_mikey_message_get_n_cs"
              version="1.4">
        <doc xml:space="preserve">Get the number of crypto sessions in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of crypto sessions</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="const GstMIKEYMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_payloads"
              c:identifier="gst_mikey_message_get_n_payloads"
              version="1.4">
        <doc xml:space="preserve">Get the number of payloads in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of payloads in @msg</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="const GstMIKEYMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_payload"
              c:identifier="gst_mikey_message_get_payload"
              version="1.4">
        <doc xml:space="preserve">Get the #GstMIKEYPayload at @idx in @msg</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GstMIKEYPayload at @idx. The payload
remains valid for as long as it is part of @msg.</doc>
          <type name="MIKEYPayload" c:type="const GstMIKEYPayload*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="const GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_cs_srtp"
              c:identifier="gst_mikey_message_insert_cs_srtp"
              version="1.4">
        <doc xml:space="preserve">Insert a Crypto Session map for SRTP in @msg at @idx

When @idx is -1, the policy will be appended.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the index to insert at</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="map" transfer-ownership="none">
            <doc xml:space="preserve">the map info</doc>
            <type name="MIKEYMapSRTP" c:type="const GstMIKEYMapSRTP*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_payload"
              c:identifier="gst_mikey_message_insert_payload"
              version="1.4">
        <doc xml:space="preserve">Insert the @payload at index @idx in @msg. If @idx is -1, the payload
will be appended to @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="payload" transfer-ownership="full">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_cs_srtp"
              c:identifier="gst_mikey_message_remove_cs_srtp"
              version="1.4">
        <doc xml:space="preserve">Remove the SRTP policy at @idx.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the index to remove</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_payload"
              c:identifier="gst_mikey_message_remove_payload"
              version="1.4">
        <doc xml:space="preserve">Remove the payload in @msg at @idx</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="replace_cs_srtp"
              c:identifier="gst_mikey_message_replace_cs_srtp"
              version="1.4">
        <doc xml:space="preserve">Replace a Crypto Session map for SRTP in @msg at @idx with @map.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the index to insert at</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="map" transfer-ownership="none">
            <doc xml:space="preserve">the map info</doc>
            <type name="MIKEYMapSRTP" c:type="const GstMIKEYMapSRTP*"/>
          </parameter>
        </parameters>
      </method>
      <method name="replace_payload"
              c:identifier="gst_mikey_message_replace_payload"
              version="1.4">
        <doc xml:space="preserve">Replace the payload at @idx in @msg with @payload.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="payload" transfer-ownership="full">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_info"
              c:identifier="gst_mikey_message_set_info"
              version="1.4">
        <doc xml:space="preserve">Set the information in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="version" transfer-ownership="none">
            <doc xml:space="preserve">a version</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYType</doc>
            <type name="MIKEYType" c:type="GstMIKEYType"/>
          </parameter>
          <parameter name="V" transfer-ownership="none">
            <doc xml:space="preserve">verify flag</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="prf_func" transfer-ownership="none">
            <doc xml:space="preserve">the #GstMIKEYPRFFunc function to use</doc>
            <type name="MIKEYPRFFunc" c:type="GstMIKEYPRFFunc"/>
          </parameter>
          <parameter name="CSB_id" transfer-ownership="none">
            <doc xml:space="preserve">the Crypto Session Bundle id</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="map_type" transfer-ownership="none">
            <doc xml:space="preserve">the #GstMIKEYCSIDMapType</doc>
            <type name="MIKEYMapType" c:type="GstMIKEYMapType"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_bytes"
              c:identifier="gst_mikey_message_to_bytes"
              version="1.4"
              throws="1">
        <doc xml:space="preserve">Convert @msg to a #GBytes.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GBytes for @msg.</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYEncryptInfo</doc>
            <type name="MIKEYEncryptInfo" c:type="GstMIKEYEncryptInfo*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_caps"
              c:identifier="gst_mikey_message_to_caps"
              version="1.8.1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="const GstMIKEYMessage*"/>
          </instance-parameter>
          <parameter name="caps" transfer-ownership="none">
            <doc xml:space="preserve">a #GstCaps to be filled with SRTP parameters (srtp/srtcp cipher, authorization, key data)</doc>
            <type name="Gst.Caps" c:type="GstCaps*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="MIKEYPRFFunc" c:type="GstMIKEYPRFFunc">
      <doc xml:space="preserve">The PRF function that has been/will be used for key derivation</doc>
      <member name="mikey_prf_mikey_1"
              value="0"
              c:identifier="GST_MIKEY_PRF_MIKEY_1">
        <doc xml:space="preserve">MIKEY-1 PRF function</doc>
      </member>
    </enumeration>
    <record name="MIKEYPayload"
            c:type="GstMIKEYPayload"
            glib:type-name="GstMIKEYPayload"
            glib:get-type="gst_mikey_payload_get_type"
            c:symbol-prefix="mikey_payload">
      <doc xml:space="preserve">Hold the common fields for all payloads</doc>
      <field name="mini_object" readable="0" private="1">
        <type name="Gst.MiniObject" c:type="GstMiniObject"/>
      </field>
      <field name="type" writable="1">
        <doc xml:space="preserve">the payload type</doc>
        <type name="MIKEYPayloadType" c:type="GstMIKEYPayloadType"/>
      </field>
      <field name="len" writable="1">
        <doc xml:space="preserve">length of the payload</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <constructor name="new"
                   c:identifier="gst_mikey_payload_new"
                   version="1.4">
        <doc xml:space="preserve">Make a new #GstMIKEYPayload with @type.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a new #GstMIKEYPayload or %NULL on failure.</doc>
          <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayloadType</doc>
            <type name="MIKEYPayloadType" c:type="GstMIKEYPayloadType"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="kemac_add_sub"
              c:identifier="gst_mikey_payload_kemac_add_sub"
              version="1.4">
        <doc xml:space="preserve">Add a new sub payload to @payload.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </instance-parameter>
          <parameter name="newpay" transfer-ownership="full">
            <doc xml:space="preserve">a #GstMIKEYPayload to add</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </parameter>
        </parameters>
      </method>
      <method name="kemac_get_n_sub"
              c:identifier="gst_mikey_payload_kemac_get_n_sub"
              version="1.4">
        <doc xml:space="preserve">Get the number of sub payloads of @payload. @payload should be of type
%GST_MIKEY_PT_KEMAC.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of sub payloads in @payload</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="const GstMIKEYPayload*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="kemac_get_sub"
              c:identifier="gst_mikey_payload_kemac_get_sub"
              version="1.4">
        <doc xml:space="preserve">Get the sub payload of @payload at @idx. @payload should be of type
%GST_MIKEY_PT_KEMAC.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GstMIKEYPayload at @idx.</doc>
          <type name="MIKEYPayload" c:type="const GstMIKEYPayload*"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="const GstMIKEYPayload*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="kemac_remove_sub"
              c:identifier="gst_mikey_payload_kemac_remove_sub"
              version="1.4">
        <doc xml:space="preserve">Remove the sub payload at @idx in @payload.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the index to remove</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="kemac_set"
              c:identifier="gst_mikey_payload_kemac_set"
              version="1.4">
        <doc xml:space="preserve">Set the KEMAC parameters. @payload should point to a %GST_MIKEY_PT_KEMAC
payload.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </instance-parameter>
          <parameter name="enc_alg" transfer-ownership="none">
            <doc xml:space="preserve">the #GstMIKEYEncAlg</doc>
            <type name="MIKEYEncAlg" c:type="GstMIKEYEncAlg"/>
          </parameter>
          <parameter name="mac_alg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYMacAlg</doc>
            <type name="MIKEYMacAlg" c:type="GstMIKEYMacAlg"/>
          </parameter>
        </parameters>
      </method>
      <method name="key_data_set_interval"
              c:identifier="gst_mikey_payload_key_data_set_interval"
              version="1.4">
        <doc xml:space="preserve">Set the key validity period in the %GST_MIKEY_PT_KEY_DATA @payload.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </instance-parameter>
          <parameter name="vf_len" transfer-ownership="none">
            <doc xml:space="preserve">the length of @vf_data</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
          <parameter name="vf_data" transfer-ownership="none">
            <doc xml:space="preserve">the Valid From data</doc>
            <array length="1" zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="vt_len" transfer-ownership="none">
            <doc xml:space="preserve">the length of @vt_data</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
          <parameter name="vt_data" transfer-ownership="none">
            <doc xml:space="preserve">the Valid To data</doc>
            <array length="2" zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="key_data_set_key"
              c:identifier="gst_mikey_payload_key_data_set_key"
              version="1.4">
        <doc xml:space="preserve">Set @key_len bytes of @key_data of type @key_type as the key for the
%GST_MIKEY_PT_KEY_DATA @payload.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </instance-parameter>
          <parameter name="key_type" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYKeyDataType</doc>
            <type name="MIKEYKeyDataType" c:type="GstMIKEYKeyDataType"/>
          </parameter>
          <parameter name="key_len" transfer-ownership="none">
            <doc xml:space="preserve">the length of @key_data</doc>
            <type name="guint16" c:type="guint16"/>
          </parameter>
          <parameter name="key_data" transfer-ownership="none">
            <doc xml:space="preserve">the key of type @key_type</doc>
            <array length="1" zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="key_data_set_salt"
              c:identifier="gst_mikey_payload_key_data_set_salt"
              version="1.4">
        <doc xml:space="preserve">Set the salt key data. If @salt_len is 0 and @salt_data is %NULL, the
salt data will be removed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </instance-parameter>
          <parameter name="salt_len" transfer-ownership="none">
            <doc xml:space="preserve">the length of @salt_data</doc>
            <type name="guint16" c:type="guint16"/>
          </parameter>
          <parameter name="salt_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the salt</doc>
            <array length="0" zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="key_data_set_spi"
              c:identifier="gst_mikey_payload_key_data_set_spi"
              version="1.4">
        <doc xml:space="preserve">Set the SPI/MKI validity in the %GST_MIKEY_PT_KEY_DATA @payload.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </instance-parameter>
          <parameter name="spi_len" transfer-ownership="none">
            <doc xml:space="preserve">the length of @spi_data</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
          <parameter name="spi_data" transfer-ownership="none">
            <doc xml:space="preserve">the SPI/MKI data</doc>
            <array length="0" zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="pke_set"
              c:identifier="gst_mikey_payload_pke_set"
              version="1.4">
        <doc xml:space="preserve">Set the PKE values in @payload. @payload must be of type
%GST_MIKEY_PT_PKE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </instance-parameter>
          <parameter name="C" transfer-ownership="none">
            <doc xml:space="preserve">envelope key cache indicator</doc>
            <type name="MIKEYCacheType" c:type="GstMIKEYCacheType"/>
          </parameter>
          <parameter name="data_len" transfer-ownership="none">
            <doc xml:space="preserve">the length of @data</doc>
            <type name="guint16" c:type="guint16"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">the encrypted envelope key</doc>
            <array length="1" zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="rand_set"
              c:identifier="gst_mikey_payload_rand_set"
              version="1.4">
        <doc xml:space="preserve">Set the random values in a %GST_MIKEY_PT_RAND @payload.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </instance-parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve">the length of @rand</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
          <parameter name="rand" transfer-ownership="none">
            <doc xml:space="preserve">random values</doc>
            <array length="0" zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="sp_add_param"
              c:identifier="gst_mikey_payload_sp_add_param"
              version="1.4">
        <doc xml:space="preserve">Add a new parameter to the %GST_MIKEY_PT_SP @payload with @type, @len
and @val.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">a type</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve">a length</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <doc xml:space="preserve">@len bytes of data</doc>
            <array length="1" zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="sp_get_n_params"
              c:identifier="gst_mikey_payload_sp_get_n_params"
              version="1.4">
        <doc xml:space="preserve">Get the number of security policy parameters in a %GST_MIKEY_PT_SP
@payload.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of parameters in @payload</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="const GstMIKEYPayload*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="sp_get_param"
              c:identifier="gst_mikey_payload_sp_get_param"
              version="1.4">
        <doc xml:space="preserve">Get the Security Policy parameter in a %GST_MIKEY_PT_SP @payload
at @idx.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GstMIKEYPayloadSPParam at @idx in @payload</doc>
          <type name="MIKEYPayloadSPParam"
                c:type="const GstMIKEYPayloadSPParam*"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="const GstMIKEYPayload*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="sp_remove_param"
              c:identifier="gst_mikey_payload_sp_remove_param"
              version="1.4">
        <doc xml:space="preserve">Remove the Security Policy parameters from a %GST_MIKEY_PT_SP
@payload at @idx.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="sp_set"
              c:identifier="gst_mikey_payload_sp_set"
              version="1.4">
        <doc xml:space="preserve">Set the Security Policy parameters for @payload.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </instance-parameter>
          <parameter name="policy" transfer-ownership="none">
            <doc xml:space="preserve">the policy number</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="proto" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYSecProto</doc>
            <type name="MIKEYSecProto" c:type="GstMIKEYSecProto"/>
          </parameter>
        </parameters>
      </method>
      <method name="t_set"
              c:identifier="gst_mikey_payload_t_set"
              version="1.4">
        <doc xml:space="preserve">Set the timestamp in a %GST_MIKEY_PT_T @payload.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="payload" transfer-ownership="none">
            <doc xml:space="preserve">a #GstMIKEYPayload</doc>
            <type name="MIKEYPayload" c:type="GstMIKEYPayload*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">the #GstMIKEYTSType</doc>
            <type name="MIKEYTSType" c:type="GstMIKEYTSType"/>
          </parameter>
          <parameter name="ts_value" transfer-ownership="none">
            <doc xml:space="preserve">the timestamp value</doc>
            <array zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
    </record>
    <record name="MIKEYPayloadKEMAC" c:type="GstMIKEYPayloadKEMAC">
      <doc xml:space="preserve">A structure holding the KEMAC payload</doc>
      <field name="pt" writable="1">
        <doc xml:space="preserve">the common #GstMIKEYPayload</doc>
        <type name="MIKEYPayload" c:type="GstMIKEYPayload"/>
      </field>
      <field name="enc_alg" writable="1">
        <doc xml:space="preserve">the #GstMIKEYEncAlg</doc>
        <type name="MIKEYEncAlg" c:type="GstMIKEYEncAlg"/>
      </field>
      <field name="mac_alg" writable="1">
        <doc xml:space="preserve">the #GstMIKEYMacAlg</doc>
        <type name="MIKEYMacAlg" c:type="GstMIKEYMacAlg"/>
      </field>
      <field name="subpayloads" writable="1">
        <doc xml:space="preserve">the subpayloads</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="MIKEYPayloadKeyData" c:type="GstMIKEYPayloadKeyData">
      <doc xml:space="preserve">The Key data payload contains key material. It should be added as sub
payload to the KEMAC.</doc>
      <field name="pt" writable="1">
        <doc xml:space="preserve">the payload header</doc>
        <type name="MIKEYPayload" c:type="GstMIKEYPayload"/>
      </field>
      <field name="key_type" writable="1">
        <type name="MIKEYKeyDataType" c:type="GstMIKEYKeyDataType"/>
      </field>
      <field name="key_len" writable="1">
        <doc xml:space="preserve">length of @key_data</doc>
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="key_data" writable="1">
        <type name="guint8" c:type="guint8*"/>
      </field>
      <field name="salt_len" writable="1">
        <doc xml:space="preserve">the length of @salt_data, can be 0</doc>
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="salt_data" writable="1">
        <doc xml:space="preserve">salt data</doc>
        <type name="guint8" c:type="guint8*"/>
      </field>
      <field name="kv_type" writable="1">
        <doc xml:space="preserve">the Key Validity type</doc>
        <type name="MIKEYKVType" c:type="GstMIKEYKVType"/>
      </field>
      <field name="kv_len" writable="1">
        <doc xml:space="preserve">length of @kv_data</doc>
        <array zero-terminated="0" c:type="guint8" fixed-size="2">
          <type name="guint8" c:type="guint8"/>
        </array>
      </field>
      <field name="kv_data" writable="1">
        <doc xml:space="preserve">key validity data</doc>
        <array zero-terminated="0" c:type="guint8" fixed-size="2">
          <type name="guint8" c:type="guint8*"/>
        </array>
      </field>
    </record>
    <record name="MIKEYPayloadPKE" c:type="GstMIKEYPayloadPKE">
      <doc xml:space="preserve">The Envelope data payload contains the encrypted envelope key that is
used in the public-key transport to protect the data in the Key data
transport payload.  The encryption algorithm used is implicit from
the certificate/public key used.</doc>
      <field name="pt" writable="1">
        <doc xml:space="preserve">the common #GstMIKEYPayload</doc>
        <type name="MIKEYPayload" c:type="GstMIKEYPayload"/>
      </field>
      <field name="C" writable="1">
        <doc xml:space="preserve">envelope key cache indicator</doc>
        <type name="MIKEYCacheType" c:type="GstMIKEYCacheType"/>
      </field>
      <field name="data_len" writable="1">
        <doc xml:space="preserve">length of @data</doc>
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="data" writable="1">
        <doc xml:space="preserve">the encrypted envelope key</doc>
        <type name="guint8" c:type="guint8*"/>
      </field>
    </record>
    <record name="MIKEYPayloadRAND" c:type="GstMIKEYPayloadRAND">
      <doc xml:space="preserve">The RAND payload consists of a (pseudo-)random bit-string</doc>
      <field name="pt" writable="1">
        <doc xml:space="preserve">the payload header</doc>
        <type name="MIKEYPayload" c:type="GstMIKEYPayload"/>
      </field>
      <field name="len" writable="1">
        <doc xml:space="preserve">the length of @rand</doc>
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="rand" writable="1">
        <doc xml:space="preserve">random values</doc>
        <type name="guint8" c:type="guint8*"/>
      </field>
    </record>
    <record name="MIKEYPayloadSP" c:type="GstMIKEYPayloadSP">
      <doc xml:space="preserve">The Security Policy payload defines a set of policies that apply to a
specific security protocol</doc>
      <field name="pt" writable="1">
        <doc xml:space="preserve">the payload header</doc>
        <type name="MIKEYPayload" c:type="GstMIKEYPayload"/>
      </field>
      <field name="policy" writable="1">
        <doc xml:space="preserve">the policy number</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <field name="proto" writable="1">
        <doc xml:space="preserve">the security protocol</doc>
        <type name="MIKEYSecProto" c:type="GstMIKEYSecProto"/>
      </field>
      <field name="params" writable="1">
        <doc xml:space="preserve">array of #GstMIKEYPayloadPSParam</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="MIKEYPayloadSPParam" c:type="GstMIKEYPayloadSPParam">
      <doc xml:space="preserve">A Type/Length/Value field for security paramaters</doc>
      <field name="type" writable="1">
        <doc xml:space="preserve">specifies the type of the parameter</doc>
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="len" writable="1">
        <doc xml:space="preserve">specifies the length of @val</doc>
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="val" writable="1">
        <doc xml:space="preserve">specifies the value of the parameter</doc>
        <type name="guint8" c:type="guint8*"/>
      </field>
    </record>
    <record name="MIKEYPayloadT" c:type="GstMIKEYPayloadT">
      <doc xml:space="preserve">The timestamp payload carries the timestamp information</doc>
      <field name="pt" writable="1">
        <doc xml:space="preserve">the payload header</doc>
        <type name="MIKEYPayload" c:type="GstMIKEYPayload"/>
      </field>
      <field name="type" writable="1">
        <doc xml:space="preserve">a #GstMIKEYTSType</doc>
        <type name="MIKEYTSType" c:type="GstMIKEYTSType"/>
      </field>
      <field name="ts_value" writable="1">
        <doc xml:space="preserve">the timestamp value</doc>
        <type name="guint8" c:type="guint8*"/>
      </field>
    </record>
    <enumeration name="MIKEYPayloadType" c:type="GstMIKEYPayloadType">
      <doc xml:space="preserve">Different MIKEY Payload types.</doc>
      <member name="last" value="0" c:identifier="GST_MIKEY_PT_LAST">
        <doc xml:space="preserve">Last payload</doc>
      </member>
      <member name="kemac" value="1" c:identifier="GST_MIKEY_PT_KEMAC">
        <doc xml:space="preserve">Key data transport payload</doc>
      </member>
      <member name="pke" value="2" c:identifier="GST_MIKEY_PT_PKE">
        <doc xml:space="preserve">Envelope data payload</doc>
      </member>
      <member name="dh" value="3" c:identifier="GST_MIKEY_PT_DH">
        <doc xml:space="preserve">DH data payload</doc>
      </member>
      <member name="sign" value="4" c:identifier="GST_MIKEY_PT_SIGN">
        <doc xml:space="preserve">Signature payload</doc>
      </member>
      <member name="t" value="5" c:identifier="GST_MIKEY_PT_T">
        <doc xml:space="preserve">Timestamp payload</doc>
      </member>
      <member name="id" value="6" c:identifier="GST_MIKEY_PT_ID">
        <doc xml:space="preserve">ID payload</doc>
      </member>
      <member name="cert" value="7" c:identifier="GST_MIKEY_PT_CERT">
        <doc xml:space="preserve">Certificate Payload</doc>
      </member>
      <member name="chash" value="8" c:identifier="GST_MIKEY_PT_CHASH">
        <doc xml:space="preserve">Cert hash payload</doc>
      </member>
      <member name="v" value="9" c:identifier="GST_MIKEY_PT_V">
        <doc xml:space="preserve">Verfication message payload</doc>
      </member>
      <member name="sp" value="10" c:identifier="GST_MIKEY_PT_SP">
        <doc xml:space="preserve">Security Policy payload</doc>
      </member>
      <member name="rand" value="11" c:identifier="GST_MIKEY_PT_RAND">
        <doc xml:space="preserve">RAND payload</doc>
      </member>
      <member name="err" value="12" c:identifier="GST_MIKEY_PT_ERR">
        <doc xml:space="preserve">Error payload</doc>
      </member>
      <member name="key_data" value="20" c:identifier="GST_MIKEY_PT_KEY_DATA">
        <doc xml:space="preserve">Key data sub-payload</doc>
      </member>
      <member name="gen_ext" value="21" c:identifier="GST_MIKEY_PT_GEN_EXT">
        <doc xml:space="preserve">General Extension Payload</doc>
      </member>
    </enumeration>
    <enumeration name="MIKEYSecProto" c:type="GstMIKEYSecProto">
      <doc xml:space="preserve">Specifies the security protocol</doc>
      <member name="mikey_sec_proto_srtp"
              value="0"
              c:identifier="GST_MIKEY_SEC_PROTO_SRTP">
      </member>
    </enumeration>
    <enumeration name="MIKEYSecSRTP" c:type="GstMIKEYSecSRTP">
      <doc xml:space="preserve">This policy specifies the parameters for SRTP and SRTCP</doc>
      <member name="enc_alg"
              value="0"
              c:identifier="GST_MIKEY_SP_SRTP_ENC_ALG">
        <doc xml:space="preserve">Encryption algorithm</doc>
      </member>
      <member name="enc_key_len"
              value="1"
              c:identifier="GST_MIKEY_SP_SRTP_ENC_KEY_LEN">
        <doc xml:space="preserve">Session Encr. key length</doc>
      </member>
      <member name="auth_alg"
              value="2"
              c:identifier="GST_MIKEY_SP_SRTP_AUTH_ALG">
        <doc xml:space="preserve">Authentication algorithm</doc>
      </member>
      <member name="auth_key_len"
              value="3"
              c:identifier="GST_MIKEY_SP_SRTP_AUTH_KEY_LEN">
        <doc xml:space="preserve">Session Auth. key length</doc>
      </member>
      <member name="salt_key_len"
              value="4"
              c:identifier="GST_MIKEY_SP_SRTP_SALT_KEY_LEN">
        <doc xml:space="preserve">Session Salt key length</doc>
      </member>
      <member name="prf" value="5" c:identifier="GST_MIKEY_SP_SRTP_PRF">
        <doc xml:space="preserve">SRTP Pseudo Random Function</doc>
      </member>
      <member name="key_deriv_rate"
              value="6"
              c:identifier="GST_MIKEY_SP_SRTP_KEY_DERIV_RATE">
        <doc xml:space="preserve">Key derivation rate</doc>
      </member>
      <member name="srtp_enc"
              value="7"
              c:identifier="GST_MIKEY_SP_SRTP_SRTP_ENC">
        <doc xml:space="preserve">SRTP encryption off/on, 0 if off, 1 if on</doc>
      </member>
      <member name="srtcp_enc"
              value="8"
              c:identifier="GST_MIKEY_SP_SRTP_SRTCP_ENC">
        <doc xml:space="preserve">SRTCP encryption off/on, 0 if off, 1 if on</doc>
      </member>
      <member name="fec_order"
              value="9"
              c:identifier="GST_MIKEY_SP_SRTP_FEC_ORDER">
        <doc xml:space="preserve">sender's FEC order</doc>
      </member>
      <member name="srtp_auth"
              value="10"
              c:identifier="GST_MIKEY_SP_SRTP_SRTP_AUTH">
        <doc xml:space="preserve">SRTP authentication off/on, 0 if off, 1 if on</doc>
      </member>
      <member name="auth_tag_len"
              value="11"
              c:identifier="GST_MIKEY_SP_SRTP_AUTH_TAG_LEN">
        <doc xml:space="preserve">Authentication tag length</doc>
      </member>
      <member name="srtp_prefix_len"
              value="12"
              c:identifier="GST_MIKEY_SP_SRTP_SRTP_PREFIX_LEN">
        <doc xml:space="preserve">SRTP prefix length</doc>
      </member>
    </enumeration>
    <enumeration name="MIKEYTSType" c:type="GstMIKEYTSType">
      <doc xml:space="preserve">Specifies the timestamp type.</doc>
      <member name="ntp_utc"
              value="0"
              c:identifier="GST_MIKEY_TS_TYPE_NTP_UTC">
        <doc xml:space="preserve">an NTP time in UTC timezone</doc>
      </member>
      <member name="ntp" value="1" c:identifier="GST_MIKEY_TS_TYPE_NTP">
        <doc xml:space="preserve">an NTP time</doc>
      </member>
      <member name="counter"
              value="2"
              c:identifier="GST_MIKEY_TS_TYPE_COUNTER">
        <doc xml:space="preserve">a counter</doc>
      </member>
    </enumeration>
    <enumeration name="MIKEYType" c:type="GstMIKEYType">
      <doc xml:space="preserve">Different MIKEY data types.</doc>
      <member name="invalid" value="-1" c:identifier="GST_MIKEY_TYPE_INVALID">
        <doc xml:space="preserve">Invalid type</doc>
      </member>
      <member name="psk_init" value="0" c:identifier="GST_MIKEY_TYPE_PSK_INIT">
        <doc xml:space="preserve">Initiator's pre-shared key message</doc>
      </member>
      <member name="psk_verify"
              value="1"
              c:identifier="GST_MIKEY_TYPE_PSK_VERIFY">
        <doc xml:space="preserve">Verification message of a Pre-shared key message</doc>
      </member>
      <member name="pk_init" value="2" c:identifier="GST_MIKEY_TYPE_PK_INIT">
        <doc xml:space="preserve">Initiator's public-key transport message</doc>
      </member>
      <member name="pk_verify"
              value="3"
              c:identifier="GST_MIKEY_TYPE_PK_VERIFY">
        <doc xml:space="preserve">Verification message of a public-key message</doc>
      </member>
      <member name="dh_init" value="4" c:identifier="GST_MIKEY_TYPE_DH_INIT">
        <doc xml:space="preserve">Initiator's DH exchange message</doc>
      </member>
      <member name="dh_resp" value="5" c:identifier="GST_MIKEY_TYPE_DH_RESP">
        <doc xml:space="preserve">Responder's DH exchange message</doc>
      </member>
      <member name="error" value="6" c:identifier="GST_MIKEY_TYPE_ERROR">
        <doc xml:space="preserve">Error message</doc>
      </member>
    </enumeration>
    <constant name="MIKEY_VERSION" value="1" c:type="GST_MIKEY_VERSION">
      <doc xml:space="preserve">The supported MIKEY version 1.</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <record name="SDPAttribute" c:type="GstSDPAttribute">
      <doc xml:space="preserve">The contents of the SDP "a=" field which contains a key/value pair.</doc>
      <field name="key" writable="1">
        <doc xml:space="preserve">the attribute key</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="value" writable="1">
        <doc xml:space="preserve">the attribute value or NULL when it was a property attribute</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <method name="clear"
              c:identifier="gst_sdp_attribute_clear"
              version="1.2">
        <doc xml:space="preserve">Clear the attribute.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">@GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="attr" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPAttribute</doc>
            <type name="SDPAttribute" c:type="GstSDPAttribute*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set" c:identifier="gst_sdp_attribute_set" version="1.2">
        <doc xml:space="preserve">Set the attribute with @key and @value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">@GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="attr" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPAttribute</doc>
            <type name="SDPAttribute" c:type="GstSDPAttribute*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <record name="SDPBandwidth" c:type="GstSDPBandwidth">
      <doc xml:space="preserve">The contents of the SDP "b=" field which specifies the proposed bandwidth to
be used by the session or media.</doc>
      <field name="bwtype" writable="1">
        <doc xml:space="preserve">the bandwidth modifier type</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="bandwidth" writable="1">
        <doc xml:space="preserve">the bandwidth in kilobits per second</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <method name="clear"
              c:identifier="gst_sdp_bandwidth_clear"
              version="1.2">
        <doc xml:space="preserve">Reset the bandwidth information in @bw.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="bw" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPBandwidth</doc>
            <type name="SDPBandwidth" c:type="GstSDPBandwidth*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set" c:identifier="gst_sdp_bandwidth_set" version="1.2">
        <doc xml:space="preserve">Set bandwidth information in @bw.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="bw" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPBandwidth</doc>
            <type name="SDPBandwidth" c:type="GstSDPBandwidth*"/>
          </instance-parameter>
          <parameter name="bwtype" transfer-ownership="none">
            <doc xml:space="preserve">the bandwidth modifier type</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="bandwidth" transfer-ownership="none">
            <doc xml:space="preserve">the bandwidth in kilobits per second</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <record name="SDPConnection" c:type="GstSDPConnection">
      <doc xml:space="preserve">The contents of the SDP "c=" field which contains connection data.</doc>
      <field name="nettype" writable="1">
        <doc xml:space="preserve">the type of network. "IN" is defined to have the meaning
   "Internet".</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="addrtype" writable="1">
        <doc xml:space="preserve">the type of @address.</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="address" writable="1">
        <doc xml:space="preserve">the address</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="ttl" writable="1">
        <doc xml:space="preserve">the time to live of the address</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <field name="addr_number" writable="1">
        <doc xml:space="preserve">the number of layers</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <method name="clear"
              c:identifier="gst_sdp_connection_clear"
              version="1.2">
        <doc xml:space="preserve">Clear the connection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">@GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPConnection</doc>
            <type name="SDPConnection" c:type="GstSDPConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set" c:identifier="gst_sdp_connection_set" version="1.2">
        <doc xml:space="preserve">Set the connection with the given parameters.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">@GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPConnection</doc>
            <type name="SDPConnection" c:type="GstSDPConnection*"/>
          </instance-parameter>
          <parameter name="nettype" transfer-ownership="none">
            <doc xml:space="preserve">the type of network. "IN" is defined to have the meaning
"Internet".</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="addrtype" transfer-ownership="none">
            <doc xml:space="preserve">the type of address.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="address" transfer-ownership="none">
            <doc xml:space="preserve">the address</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="ttl" transfer-ownership="none">
            <doc xml:space="preserve">the time to live of the address</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="addr_number" transfer-ownership="none">
            <doc xml:space="preserve">the number of layers</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <record name="SDPKey" c:type="GstSDPKey">
      <doc xml:space="preserve">The contents of the SDP "k=" field which is used to convey encryption
keys.</doc>
      <field name="type" writable="1">
        <doc xml:space="preserve">the encryption type</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="data" writable="1">
        <doc xml:space="preserve">the encryption data</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <record name="SDPMedia" c:type="GstSDPMedia">
      <doc xml:space="preserve">The contents of the SDP "m=" field with all related fields.</doc>
      <field name="media" writable="1">
        <doc xml:space="preserve">the media type</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="port" writable="1">
        <doc xml:space="preserve">the transport port to which the media stream will be sent</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <field name="num_ports" writable="1">
        <doc xml:space="preserve">the number of ports or -1 if only one port was specified</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <field name="proto" writable="1">
        <doc xml:space="preserve">the transport protocol</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="fmts" writable="1">
        <doc xml:space="preserve">an array of #gchar formats</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="information" writable="1">
        <doc xml:space="preserve">the media title</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="connections" writable="1">
        <doc xml:space="preserve">array of #GstSDPConnection with media connection information</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="bandwidths" writable="1">
        <doc xml:space="preserve">array of #GstSDPBandwidth with media bandwidth information</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="key" writable="1">
        <doc xml:space="preserve">the encryption key</doc>
        <type name="SDPKey" c:type="GstSDPKey"/>
      </field>
      <field name="attributes" writable="1">
        <doc xml:space="preserve">array of #GstSDPAttribute with the additional media attributes</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <method name="add_attribute" c:identifier="gst_sdp_media_add_attribute">
        <doc xml:space="preserve">Add the attribute with @key and @value to @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">a key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">a value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_bandwidth" c:identifier="gst_sdp_media_add_bandwidth">
        <doc xml:space="preserve">Add the bandwidth information with @bwtype and @bandwidth to @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="bwtype" transfer-ownership="none">
            <doc xml:space="preserve">the bandwidth modifier type</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="bandwidth" transfer-ownership="none">
            <doc xml:space="preserve">the bandwidth in kilobits per second</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_connection"
              c:identifier="gst_sdp_media_add_connection">
        <doc xml:space="preserve">Add the given connection parameters to @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="nettype" transfer-ownership="none">
            <doc xml:space="preserve">the type of network. "IN" is defined to have the meaning
"Internet".</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="addrtype" transfer-ownership="none">
            <doc xml:space="preserve">the type of address.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="address" transfer-ownership="none">
            <doc xml:space="preserve">the address</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="ttl" transfer-ownership="none">
            <doc xml:space="preserve">the time to live of the address</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="addr_number" transfer-ownership="none">
            <doc xml:space="preserve">the number of layers</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_format" c:identifier="gst_sdp_media_add_format">
        <doc xml:space="preserve">Add the format information to @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve">the format</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="as_text" c:identifier="gst_sdp_media_as_text">
        <doc xml:space="preserve">Convert the contents of @media to a text string.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A dynamically allocated string representing the media.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="attributes_len"
              c:identifier="gst_sdp_media_attributes_len">
        <doc xml:space="preserve">Get the number of attribute fields in @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of attributes in @media.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="attributes_to_caps"
              c:identifier="gst_sdp_media_attributes_to_caps"
              version="1.8">
        <doc xml:space="preserve">Mapping of attributes of #GstSDPMedia to #GstCaps</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="caps" transfer-ownership="none">
            <doc xml:space="preserve">a #GstCaps</doc>
            <type name="Gst.Caps" c:type="GstCaps*"/>
          </parameter>
        </parameters>
      </method>
      <method name="bandwidths_len"
              c:identifier="gst_sdp_media_bandwidths_len">
        <doc xml:space="preserve">Get the number of bandwidth fields in @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of bandwidths in @media.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="connections_len"
              c:identifier="gst_sdp_media_connections_len">
        <doc xml:space="preserve">Get the number of connection fields in @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of connections in @media.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="gst_sdp_media_copy" version="1.2">
        <doc xml:space="preserve">Allocate a new copy of @media and store the result in @copy. The value in
@copy should be release with gst_sdp_media_free function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="copy"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">pointer to new #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia**"/>
          </parameter>
        </parameters>
      </method>
      <method name="formats_len" c:identifier="gst_sdp_media_formats_len">
        <doc xml:space="preserve">Get the number of formats in @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of formats in @media.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gst_sdp_media_free">
        <doc xml:space="preserve">Free all resources allocated by @media. @media should not be used anymore after
this function. This function should be used when @media was dynamically
allocated with gst_sdp_media_new().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_attribute" c:identifier="gst_sdp_media_get_attribute">
        <doc xml:space="preserve">Get the attribute at position @idx in @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GstSDPAttribute at position @idx.</doc>
          <type name="SDPAttribute" c:type="const GstSDPAttribute*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attribute_val"
              c:identifier="gst_sdp_media_get_attribute_val">
        <doc xml:space="preserve">Get the first attribute value for @key in @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the first attribute value for @key.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">a key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attribute_val_n"
              c:identifier="gst_sdp_media_get_attribute_val_n">
        <doc xml:space="preserve">Get the @nth attribute value for @key in @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the @nth attribute value.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">a key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="nth" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_bandwidth" c:identifier="gst_sdp_media_get_bandwidth">
        <doc xml:space="preserve">Get the bandwidth at position @idx in @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GstSDPBandwidth at position @idx.</doc>
          <type name="SDPBandwidth" c:type="const GstSDPBandwidth*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_caps_from_media"
              c:identifier="gst_sdp_media_get_caps_from_media"
              version="1.8">
        <doc xml:space="preserve">Mapping of caps from SDP fields:

a=rtpmap:(payload) (encoding_name)/(clock_rate)[/(encoding_params)]

a=framesize:(payload) (width)-(height)

a=fmtp:(payload) (param)[=(value)];...</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GstCaps, or %NULL if an error happened</doc>
          <type name="Gst.Caps" c:type="GstCaps*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="pt" transfer-ownership="none">
            <doc xml:space="preserve">a payload type</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_connection"
              c:identifier="gst_sdp_media_get_connection">
        <doc xml:space="preserve">Get the connection at position @idx in @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GstSDPConnection at position @idx.</doc>
          <type name="SDPConnection" c:type="const GstSDPConnection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_format" c:identifier="gst_sdp_media_get_format">
        <doc xml:space="preserve">Get the format information at position @idx in @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the format at position @idx.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_information"
              c:identifier="gst_sdp_media_get_information">
        <doc xml:space="preserve">Get the information of @media</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the information of @media.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_key" c:identifier="gst_sdp_media_get_key">
        <doc xml:space="preserve">Get the encryption information from @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPKey.</doc>
          <type name="SDPKey" c:type="const GstSDPKey*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_media" c:identifier="gst_sdp_media_get_media">
        <doc xml:space="preserve">Get the media description of @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the media description.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_num_ports" c:identifier="gst_sdp_media_get_num_ports">
        <doc xml:space="preserve">Get the number of ports for @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of ports for @media.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_port" c:identifier="gst_sdp_media_get_port">
        <doc xml:space="preserve">Get the port number for @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the port number of @media.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_proto" c:identifier="gst_sdp_media_get_proto">
        <doc xml:space="preserve">Get the transport protocol of @media</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the transport protocol of @media.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="init" c:identifier="gst_sdp_media_init">
        <doc xml:space="preserve">Initialize @media so that its contents are as if it was freshly allocated
with gst_sdp_media_new(). This function is mostly used to initialize a media
allocated on the stack. gst_sdp_media_uninit() undoes this operation.

When this function is invoked on newly allocated data (with malloc or on the
stack), its contents should be set to 0 before calling this function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="insert_attribute"
              c:identifier="gst_sdp_media_insert_attribute"
              version="1.2">
        <doc xml:space="preserve">Insert the attribute to @media at @idx. When @idx is -1,
the attribute is appended.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="attr" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPAttribute</doc>
            <type name="SDPAttribute" c:type="GstSDPAttribute*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_bandwidth"
              c:identifier="gst_sdp_media_insert_bandwidth"
              version="1.2">
        <doc xml:space="preserve">Insert the bandwidth information to @media at @idx. When @idx is -1,
the bandwidth is appended.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="bw" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPBandwidth</doc>
            <type name="SDPBandwidth" c:type="GstSDPBandwidth*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_connection"
              c:identifier="gst_sdp_media_insert_connection"
              version="1.2">
        <doc xml:space="preserve">Insert the connection information to @media at @idx. When @idx is -1,
the connection is appended.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPConnection</doc>
            <type name="SDPConnection" c:type="GstSDPConnection*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_format"
              c:identifier="gst_sdp_media_insert_format"
              version="1.2">
        <doc xml:space="preserve">Insert the format information to @media at @idx. When @idx is -1,
the format is appended.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve">the format</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="parse_keymgmt"
              c:identifier="gst_sdp_media_parse_keymgmt"
              version="1.8.1">
        <doc xml:space="preserve">Creates a new #GstMIKEYMessage after parsing the key-mgmt attribute
from a #GstSDPMedia.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="const GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="mikey"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">pointer to new #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage**"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_attribute"
              c:identifier="gst_sdp_media_remove_attribute"
              version="1.2">
        <doc xml:space="preserve">Remove the attribute in @media at @idx.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_bandwidth"
              c:identifier="gst_sdp_media_remove_bandwidth"
              version="1.2">
        <doc xml:space="preserve">Remove the bandwidth information in @media at @idx.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_connection"
              c:identifier="gst_sdp_media_remove_connection"
              version="1.2">
        <doc xml:space="preserve">Remove the connection information in @media at @idx.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_format"
              c:identifier="gst_sdp_media_remove_format"
              version="1.2">
        <doc xml:space="preserve">Remove the format information in @media at @idx.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="replace_attribute"
              c:identifier="gst_sdp_media_replace_attribute"
              version="1.2">
        <doc xml:space="preserve">Replace the attribute in @media at @idx with @attr.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="attr" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPAttribute</doc>
            <type name="SDPAttribute" c:type="GstSDPAttribute*"/>
          </parameter>
        </parameters>
      </method>
      <method name="replace_bandwidth"
              c:identifier="gst_sdp_media_replace_bandwidth"
              version="1.2">
        <doc xml:space="preserve">Replace the bandwidth information in @media at @idx with @bw.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="bw" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPBandwidth</doc>
            <type name="SDPBandwidth" c:type="GstSDPBandwidth*"/>
          </parameter>
        </parameters>
      </method>
      <method name="replace_connection"
              c:identifier="gst_sdp_media_replace_connection"
              version="1.2">
        <doc xml:space="preserve">Replace the connection information in @media at @idx with @conn.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPConnection</doc>
            <type name="SDPConnection" c:type="GstSDPConnection*"/>
          </parameter>
        </parameters>
      </method>
      <method name="replace_format"
              c:identifier="gst_sdp_media_replace_format"
              version="1.2">
        <doc xml:space="preserve">Replace the format information in @media at @idx with @format.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve">the format</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_information"
              c:identifier="gst_sdp_media_set_information">
        <doc xml:space="preserve">Set the media information of @media to @information.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="information" transfer-ownership="none">
            <doc xml:space="preserve">the media information</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_key" c:identifier="gst_sdp_media_set_key">
        <doc xml:space="preserve">Adds the encryption information to @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">the encryption type</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">the encryption data</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_media" c:identifier="gst_sdp_media_set_media">
        <doc xml:space="preserve">Set the media description of @media to @med.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="med" transfer-ownership="none">
            <doc xml:space="preserve">the media description</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_port_info" c:identifier="gst_sdp_media_set_port_info">
        <doc xml:space="preserve">Set the port information in @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="port" transfer-ownership="none">
            <doc xml:space="preserve">the port number</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="num_ports" transfer-ownership="none">
            <doc xml:space="preserve">the number of ports</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_proto" c:identifier="gst_sdp_media_set_proto">
        <doc xml:space="preserve">Set the media transport protocol of @media to @proto.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
          <parameter name="proto" transfer-ownership="none">
            <doc xml:space="preserve">the media transport protocol</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="uninit" c:identifier="gst_sdp_media_uninit">
        <doc xml:space="preserve">Free all resources allocated in @media. @media should not be used anymore after
this function. This function should be used when @media was allocated on the
stack and initialized with gst_sdp_media_init().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="new" c:identifier="gst_sdp_media_new">
        <doc xml:space="preserve">Allocate a new GstSDPMedia and store the result in @media.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <parameter name="media"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">pointer to new #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia**"/>
          </parameter>
        </parameters>
      </function>
      <function name="set_media_from_caps"
                c:identifier="gst_sdp_media_set_media_from_caps"
                version="1.8">
        <doc xml:space="preserve">Mapping of caps to SDP fields:

a=rtpmap:(payload) (encoding_name) or (clock_rate)[or (encoding_params)]

a=framesize:(payload) (width)-(height)

a=fmtp:(payload) (param)[=(value)];...

a=rtcp-fb:(payload) (param1) [param2]...</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <parameter name="caps" transfer-ownership="none">
            <doc xml:space="preserve">a #GstCaps</doc>
            <type name="Gst.Caps" c:type="const GstCaps*"/>
          </parameter>
          <parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="SDPMessage"
            c:type="GstSDPMessage"
            glib:type-name="GstSDPMessage"
            glib:get-type="gst_sdp_message_get_type"
            c:symbol-prefix="sdp_message">
      <doc xml:space="preserve">The GstSDPMessage helper functions makes it easy to parse and create SDP
messages.</doc>
      <field name="version" writable="1">
        <doc xml:space="preserve">the protocol version</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="origin" writable="1">
        <doc xml:space="preserve">owner/creator and session identifier</doc>
        <type name="SDPOrigin" c:type="GstSDPOrigin"/>
      </field>
      <field name="session_name" writable="1">
        <doc xml:space="preserve">session name</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="information" writable="1">
        <doc xml:space="preserve">session information</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="uri" writable="1">
        <doc xml:space="preserve">URI of description</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="emails" writable="1">
        <doc xml:space="preserve">array of #gchar with email addresses</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="phones" writable="1">
        <doc xml:space="preserve">array of #gchar with phone numbers</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="connection" writable="1">
        <doc xml:space="preserve">connection information for the session</doc>
        <type name="SDPConnection" c:type="GstSDPConnection"/>
      </field>
      <field name="bandwidths" writable="1">
        <doc xml:space="preserve">array of #GstSDPBandwidth with bandwidth information</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="times" writable="1">
        <doc xml:space="preserve">array of #GstSDPTime with time descriptions</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="zones" writable="1">
        <doc xml:space="preserve">array of #GstSDPZone with time zone adjustments</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="key" writable="1">
        <doc xml:space="preserve">encryption key</doc>
        <type name="SDPKey" c:type="GstSDPKey"/>
      </field>
      <field name="attributes" writable="1">
        <doc xml:space="preserve">array of #GstSDPAttribute with session attributes</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="medias" writable="1">
        <doc xml:space="preserve">array of #GstSDPMedia with media descriptions</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <method name="add_attribute"
              c:identifier="gst_sdp_message_add_attribute">
        <doc xml:space="preserve">Add the attribute with @key and @value to @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">@GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_bandwidth"
              c:identifier="gst_sdp_message_add_bandwidth">
        <doc xml:space="preserve">Add the specified bandwidth information to @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="bwtype" transfer-ownership="none">
            <doc xml:space="preserve">the bandwidth modifier type</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="bandwidth" transfer-ownership="none">
            <doc xml:space="preserve">the bandwidth in kilobits per second</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_email" c:identifier="gst_sdp_message_add_email">
        <doc xml:space="preserve">Add @email to the list of emails in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="email" transfer-ownership="none">
            <doc xml:space="preserve">an email</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_media" c:identifier="gst_sdp_message_add_media">
        <doc xml:space="preserve">Adds @media to the array of medias in @msg. This function takes ownership of
the contents of @media so that @media will have to be reinitialized with
gst_sdp_media_init() before it can be used again.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMedia to add</doc>
            <type name="SDPMedia" c:type="GstSDPMedia*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_phone" c:identifier="gst_sdp_message_add_phone">
        <doc xml:space="preserve">Add @phone to the list of phones in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="phone" transfer-ownership="none">
            <doc xml:space="preserve">a phone</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_time" c:identifier="gst_sdp_message_add_time">
        <doc xml:space="preserve">Add time information @start and @stop to @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve">the start time</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="stop" transfer-ownership="none">
            <doc xml:space="preserve">the stop time</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="repeat" transfer-ownership="none">
            <doc xml:space="preserve">the repeat times</doc>
            <array c:type="gchar**">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="add_zone" c:identifier="gst_sdp_message_add_zone">
        <doc xml:space="preserve">Add time zone information to @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="adj_time" transfer-ownership="none">
            <doc xml:space="preserve">the NTP time that a time zone adjustment happens</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="typed_time" transfer-ownership="none">
            <doc xml:space="preserve">the offset from the time when the session was first scheduled</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="as_text" c:identifier="gst_sdp_message_as_text">
        <doc xml:space="preserve">Convert the contents of @msg to a text string.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A dynamically allocated string representing the SDP description.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="attributes_len"
              c:identifier="gst_sdp_message_attributes_len">
        <doc xml:space="preserve">Get the number of attributes in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of attributes in @msg.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="attributes_to_caps"
              c:identifier="gst_sdp_message_attributes_to_caps"
              version="1.8">
        <doc xml:space="preserve">Mapping of attributes of #GstSDPMessage to #GstCaps</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="caps" transfer-ownership="none">
            <doc xml:space="preserve">a #GstCaps</doc>
            <type name="Gst.Caps" c:type="GstCaps*"/>
          </parameter>
        </parameters>
      </method>
      <method name="bandwidths_len"
              c:identifier="gst_sdp_message_bandwidths_len">
        <doc xml:space="preserve">Get the number of bandwidth information in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of bandwidth information in @msg.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="gst_sdp_message_copy" version="1.2">
        <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_sdp_message_free function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="copy"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">pointer to new #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage**"/>
          </parameter>
        </parameters>
      </method>
      <method name="dump" c:identifier="gst_sdp_message_dump">
        <doc xml:space="preserve">Dump the parsed contents of @msg to stdout.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="emails_len" c:identifier="gst_sdp_message_emails_len">
        <doc xml:space="preserve">Get the number of emails in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of emails in @msg.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gst_sdp_message_free">
        <doc xml:space="preserve">Free all resources allocated by @msg. @msg should not be used anymore after
this function. This function should be used when @msg was dynamically
allocated with gst_sdp_message_new().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_attribute"
              c:identifier="gst_sdp_message_get_attribute">
        <doc xml:space="preserve">Get the attribute at position @idx in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GstSDPAttribute at position @idx.</doc>
          <type name="SDPAttribute" c:type="const GstSDPAttribute*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attribute_val"
              c:identifier="gst_sdp_message_get_attribute_val">
        <doc xml:space="preserve">Get the first attribute with key @key in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the attribute value of the first attribute with @key.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attribute_val_n"
              c:identifier="gst_sdp_message_get_attribute_val_n">
        <doc xml:space="preserve">Get the @nth attribute with key @key in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the attribute value of the @nth attribute with @key.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="nth" transfer-ownership="none">
            <doc xml:space="preserve">the index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_bandwidth"
              c:identifier="gst_sdp_message_get_bandwidth">
        <doc xml:space="preserve">Get the bandwidth at index @idx from @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPBandwidth.</doc>
          <type name="SDPBandwidth" c:type="const GstSDPBandwidth*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the bandwidth index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_connection"
              c:identifier="gst_sdp_message_get_connection">
        <doc xml:space="preserve">Get the connection of @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPConnection. The result remains valid as long as @msg is valid.</doc>
          <type name="SDPConnection" c:type="const GstSDPConnection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_email" c:identifier="gst_sdp_message_get_email">
        <doc xml:space="preserve">Get the email with number @idx from @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the email at position @idx.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an email index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_information"
              c:identifier="gst_sdp_message_get_information">
        <doc xml:space="preserve">Get the information in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_key" c:identifier="gst_sdp_message_get_key">
        <doc xml:space="preserve">Get the encryption information from @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPKey.</doc>
          <type name="SDPKey" c:type="const GstSDPKey*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_media" c:identifier="gst_sdp_message_get_media">
        <doc xml:space="preserve">Get the media description at index @idx in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPMedia.</doc>
          <type name="SDPMedia" c:type="const GstSDPMedia*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_origin" c:identifier="gst_sdp_message_get_origin">
        <doc xml:space="preserve">Get the origin of @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPOrigin. The result remains valid as long as @msg is valid.</doc>
          <type name="SDPOrigin" c:type="const GstSDPOrigin*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_phone" c:identifier="gst_sdp_message_get_phone">
        <doc xml:space="preserve">Get the phone with number @idx from @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the phone at position @idx.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">a phone index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_session_name"
              c:identifier="gst_sdp_message_get_session_name">
        <doc xml:space="preserve">Get the session name in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_time" c:identifier="gst_sdp_message_get_time">
        <doc xml:space="preserve">Get time information with index @idx from @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPTime.</doc>
          <type name="SDPTime" c:type="const GstSDPTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the time index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_uri" c:identifier="gst_sdp_message_get_uri">
        <doc xml:space="preserve">Get the URI in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_version" c:identifier="gst_sdp_message_get_version">
        <doc xml:space="preserve">Get the version in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_zone" c:identifier="gst_sdp_message_get_zone">
        <doc xml:space="preserve">Get time zone information with index @idx from @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPZone.</doc>
          <type name="SDPZone" c:type="const GstSDPZone*"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the zone index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="init" c:identifier="gst_sdp_message_init">
        <doc xml:space="preserve">Initialize @msg so that its contents are as if it was freshly allocated
with gst_sdp_message_new(). This function is mostly used to initialize a message
allocated on the stack. gst_sdp_message_uninit() undoes this operation.

When this function is invoked on newly allocated data (with malloc or on the
stack), its contents should be set to 0 before calling this function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="insert_attribute"
              c:identifier="gst_sdp_message_insert_attribute"
              version="1.2">
        <doc xml:space="preserve">Insert attribute into the array of attributes in @msg
at index @idx.
When -1 is given as @idx, the attribute is inserted at the end.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="attr" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPAttribute</doc>
            <type name="SDPAttribute" c:type="GstSDPAttribute*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_bandwidth"
              c:identifier="gst_sdp_message_insert_bandwidth"
              version="1.2">
        <doc xml:space="preserve">Insert bandwidth parameters into the array of bandwidths in @msg
at index @idx.
When -1 is given as @idx, the bandwidth is inserted at the end.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="bw" transfer-ownership="none">
            <doc xml:space="preserve">the bandwidth</doc>
            <type name="SDPBandwidth" c:type="GstSDPBandwidth*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_email"
              c:identifier="gst_sdp_message_insert_email"
              version="1.2">
        <doc xml:space="preserve">Insert @email into the array of emails in @msg at index @idx.
When -1 is given as @idx, the email is inserted at the end.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="email" transfer-ownership="none">
            <doc xml:space="preserve">an email</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_phone"
              c:identifier="gst_sdp_message_insert_phone"
              version="1.2">
        <doc xml:space="preserve">Insert @phone into the array of phone numbers in @msg at index @idx.
When -1 is given as @idx, the phone is inserted at the end.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">a phone index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="phone" transfer-ownership="none">
            <doc xml:space="preserve">a phone</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_time"
              c:identifier="gst_sdp_message_insert_time"
              version="1.2">
        <doc xml:space="preserve">Insert time parameters into the array of times in @msg
at index @idx.
When -1 is given as @idx, the times are inserted at the end.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="t" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPTime</doc>
            <type name="SDPTime" c:type="GstSDPTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_zone"
              c:identifier="gst_sdp_message_insert_zone"
              version="1.2">
        <doc xml:space="preserve">Insert zone parameters into the array of zones in @msg
at index @idx.
When -1 is given as @idx, the zone is inserted at the end.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an index
@zone a #GstSDPZone</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="zone" transfer-ownership="none">
            <type name="SDPZone" c:type="GstSDPZone*"/>
          </parameter>
        </parameters>
      </method>
      <method name="medias_len" c:identifier="gst_sdp_message_medias_len">
        <doc xml:space="preserve">Get the number of media descriptions in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of media descriptions in @msg.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="parse_keymgmt"
              c:identifier="gst_sdp_message_parse_keymgmt"
              version="1.8.1">
        <doc xml:space="preserve">Creates a new #GstMIKEYMessage after parsing the key-mgmt attribute
from a #GstSDPMessage.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="mikey"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">pointer to new #GstMIKEYMessage</doc>
            <type name="MIKEYMessage" c:type="GstMIKEYMessage**"/>
          </parameter>
        </parameters>
      </method>
      <method name="phones_len" c:identifier="gst_sdp_message_phones_len">
        <doc xml:space="preserve">Get the number of phones in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of phones in @msg.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_attribute"
              c:identifier="gst_sdp_message_remove_attribute"
              version="1.2">
        <doc xml:space="preserve">Remove the attribute in @msg at index @idx.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_bandwidth"
              c:identifier="gst_sdp_message_remove_bandwidth"
              version="1.2">
        <doc xml:space="preserve">Remove the bandwidth information in @msg at index @idx.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the bandwidth index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_email"
              c:identifier="gst_sdp_message_remove_email"
              version="1.2">
        <doc xml:space="preserve">Remove the email in @msg at index @idx.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an email index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_phone"
              c:identifier="gst_sdp_message_remove_phone"
              version="1.2">
        <doc xml:space="preserve">Remove the phone number in @msg at index @idx.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">a phone index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_time"
              c:identifier="gst_sdp_message_remove_time"
              version="1.2">
        <doc xml:space="preserve">Remove the time information in @msg at index @idx.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_zone"
              c:identifier="gst_sdp_message_remove_zone"
              version="1.2">
        <doc xml:space="preserve">Remove the zone information in @msg at index @idx.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="replace_attribute"
              c:identifier="gst_sdp_message_replace_attribute"
              version="1.2">
        <doc xml:space="preserve">Replace the attribute in @msg at index @idx with @attr.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="attr" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPAttribute</doc>
            <type name="SDPAttribute" c:type="GstSDPAttribute*"/>
          </parameter>
        </parameters>
      </method>
      <method name="replace_bandwidth"
              c:identifier="gst_sdp_message_replace_bandwidth"
              version="1.2">
        <doc xml:space="preserve">Replace the bandwidth information in @msg at index @idx with @bw.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the bandwidth index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="bw" transfer-ownership="none">
            <doc xml:space="preserve">the bandwidth</doc>
            <type name="SDPBandwidth" c:type="GstSDPBandwidth*"/>
          </parameter>
        </parameters>
      </method>
      <method name="replace_email"
              c:identifier="gst_sdp_message_replace_email"
              version="1.2">
        <doc xml:space="preserve">Replace the email in @msg at index @idx with @email.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">an email index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="email" transfer-ownership="none">
            <doc xml:space="preserve">an email</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="replace_phone"
              c:identifier="gst_sdp_message_replace_phone"
              version="1.2">
        <doc xml:space="preserve">Replace the phone number in @msg at index @idx with @phone.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">a phone index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="phone" transfer-ownership="none">
            <doc xml:space="preserve">a phone</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="replace_time"
              c:identifier="gst_sdp_message_replace_time"
              version="1.2">
        <doc xml:space="preserve">Replace the time information in @msg at index @idx with @t.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="t" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPTime</doc>
            <type name="SDPTime" c:type="GstSDPTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="replace_zone"
              c:identifier="gst_sdp_message_replace_zone"
              version="1.2">
        <doc xml:space="preserve">Replace the zone information in @msg at index @idx with @zone.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="zone" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPZone</doc>
            <type name="SDPZone" c:type="GstSDPZone*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_connection"
              c:identifier="gst_sdp_message_set_connection">
        <doc xml:space="preserve">Configure the SDP connection in @msg with the given parameters.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="nettype" transfer-ownership="none">
            <doc xml:space="preserve">the type of network. "IN" is defined to have the meaning
"Internet".</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="addrtype" transfer-ownership="none">
            <doc xml:space="preserve">the type of address.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="address" transfer-ownership="none">
            <doc xml:space="preserve">the address</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="ttl" transfer-ownership="none">
            <doc xml:space="preserve">the time to live of the address</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="addr_number" transfer-ownership="none">
            <doc xml:space="preserve">the number of layers</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_information"
              c:identifier="gst_sdp_message_set_information">
        <doc xml:space="preserve">Set the information in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="information" transfer-ownership="none">
            <doc xml:space="preserve">the information</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_key" c:identifier="gst_sdp_message_set_key">
        <doc xml:space="preserve">Adds the encryption information to @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">the encryption type</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">the encryption data</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_origin" c:identifier="gst_sdp_message_set_origin">
        <doc xml:space="preserve">Configure the SDP origin in @msg with the given parameters.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="username" transfer-ownership="none">
            <doc xml:space="preserve">the user name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="sess_id" transfer-ownership="none">
            <doc xml:space="preserve">a session id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="sess_version" transfer-ownership="none">
            <doc xml:space="preserve">a session version</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="nettype" transfer-ownership="none">
            <doc xml:space="preserve">a network type</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="addrtype" transfer-ownership="none">
            <doc xml:space="preserve">an address type</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="addr" transfer-ownership="none">
            <doc xml:space="preserve">an address</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_session_name"
              c:identifier="gst_sdp_message_set_session_name">
        <doc xml:space="preserve">Set the session name in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="session_name" transfer-ownership="none">
            <doc xml:space="preserve">the session name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uri" c:identifier="gst_sdp_message_set_uri">
        <doc xml:space="preserve">Set the URI in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the URI</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_version" c:identifier="gst_sdp_message_set_version">
        <doc xml:space="preserve">Set the version in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
          <parameter name="version" transfer-ownership="none">
            <doc xml:space="preserve">the version</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="times_len" c:identifier="gst_sdp_message_times_len">
        <doc xml:space="preserve">Get the number of time information entries in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of time information entries in @msg.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="uninit" c:identifier="gst_sdp_message_uninit">
        <doc xml:space="preserve">Free all resources allocated in @msg. @msg should not be used anymore after
this function. This function should be used when @msg was allocated on the
stack and initialized with gst_sdp_message_init().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="zones_len" c:identifier="gst_sdp_message_zones_len">
        <doc xml:space="preserve">Get the number of time zone information entries in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of time zone information entries in @msg.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="as_uri" c:identifier="gst_sdp_message_as_uri">
        <doc xml:space="preserve">Creates a uri from @msg with the given @scheme. The uri has the format:

 \@scheme:///[#type=value *[&amp;type=value]]

 Where each value is url encoded.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a uri for @msg.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="scheme" transfer-ownership="none">
            <doc xml:space="preserve">the uri scheme</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">the #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="const GstSDPMessage*"/>
          </parameter>
        </parameters>
      </function>
      <function name="new" c:identifier="gst_sdp_message_new">
        <doc xml:space="preserve">Allocate a new GstSDPMessage and store the result in @msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <parameter name="msg"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">pointer to new #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage**"/>
          </parameter>
        </parameters>
      </function>
      <function name="parse_buffer"
                c:identifier="gst_sdp_message_parse_buffer">
        <doc xml:space="preserve">Parse the contents of @size bytes pointed to by @data and store the result in
@msg.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK on success.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">the start of the buffer</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 the buffer</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">the result #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </parameter>
        </parameters>
      </function>
      <function name="parse_uri" c:identifier="gst_sdp_message_parse_uri">
        <doc xml:space="preserve">Parse the null-terminated @uri and store the result in @msg.

The uri should be of the form:

 scheme://[address[:ttl=ttl][:noa=noa]]/[sessionname]
              [#type=value *[&amp;type=value]]

 where value is url encoded. This looslely resembles
 http://tools.ietf.org/html/draft-fujikawa-sdp-url-01</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#GST_SDP_OK on success.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the start of the uri</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve">the result #GstSDPMessage</doc>
            <type name="SDPMessage" c:type="GstSDPMessage*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="SDPOrigin" c:type="GstSDPOrigin">
      <doc xml:space="preserve">The contents of the SDP "o=" field which gives the originator of the session
(their username and the address of the user's host) plus a session id and
session version number.</doc>
      <field name="username" writable="1">
        <doc xml:space="preserve">the user's login on the originating host, or it is "-"
   if the originating host does not support the concept of user ids.</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="sess_id" writable="1">
        <doc xml:space="preserve">is a numeric string such that the tuple of @username, @sess_id,
   @nettype, @addrtype and @addr form a globally unique identifier for the
   session.</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="sess_version" writable="1">
        <doc xml:space="preserve">a version number for this announcement</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="nettype" writable="1">
        <doc xml:space="preserve">the type of network. "IN" is defined to have the meaning
   "Internet".</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="addrtype" writable="1">
        <doc xml:space="preserve">the type of @addr.</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="addr" writable="1">
        <doc xml:space="preserve">the globally unique address of the machine from which the session was
    created.</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <enumeration name="SDPResult" c:type="GstSDPResult">
      <doc xml:space="preserve">Return values for the SDP functions.</doc>
      <member name="ok" value="0" c:identifier="GST_SDP_OK">
        <doc xml:space="preserve">A successful return value</doc>
      </member>
      <member name="einval" value="-1" c:identifier="GST_SDP_EINVAL">
        <doc xml:space="preserve">a function was given invalid parameters</doc>
      </member>
    </enumeration>
    <record name="SDPTime" c:type="GstSDPTime">
      <doc xml:space="preserve">The contents of the SDP "t=" field which specify the start and stop times for
a conference session.</doc>
      <field name="start" writable="1">
        <doc xml:space="preserve">start time for the conference. The value is the decimal
    representation of Network Time Protocol (NTP) time values in seconds</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="stop" writable="1">
        <doc xml:space="preserve">stop time for the conference. The value is the decimal
    representation of Network Time Protocol (NTP) time values in seconds</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="repeat" writable="1">
        <doc xml:space="preserve">repeat times for a session</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <method name="clear" c:identifier="gst_sdp_time_clear" version="1.2">
        <doc xml:space="preserve">Reset the time information in @t.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="t" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPTime</doc>
            <type name="SDPTime" c:type="GstSDPTime*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set" c:identifier="gst_sdp_time_set" version="1.2">
        <doc xml:space="preserve">Set time information @start, @stop and @repeat in @t.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="t" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPTime</doc>
            <type name="SDPTime" c:type="GstSDPTime*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve">the start time</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="stop" transfer-ownership="none">
            <doc xml:space="preserve">the stop time</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="repeat" transfer-ownership="none">
            <doc xml:space="preserve">the repeat times</doc>
            <array c:type="gchar**">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
        </parameters>
      </method>
    </record>
    <record name="SDPZone" c:type="GstSDPZone">
      <doc xml:space="preserve">The contents of the SDP "z=" field which allows the sender to
specify a list of time zone adjustments and offsets from the base
time.</doc>
      <field name="time" writable="1">
        <doc xml:space="preserve">the NTP time that a time zone adjustment happens</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="typed_time" writable="1">
        <doc xml:space="preserve">the offset from the time when the session was first scheduled</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <method name="clear" c:identifier="gst_sdp_zone_clear" version="1.2">
        <doc xml:space="preserve">Reset the zone information in @zone.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="zone" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPZone</doc>
            <type name="SDPZone" c:type="GstSDPZone*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set" c:identifier="gst_sdp_zone_set" version="1.2">
        <doc xml:space="preserve">Set zone information in @zone.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPResult.</doc>
          <type name="SDPResult" c:type="GstSDPResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="zone" transfer-ownership="none">
            <doc xml:space="preserve">a #GstSDPZone</doc>
            <type name="SDPZone" c:type="GstSDPZone*"/>
          </instance-parameter>
          <parameter name="adj_time" transfer-ownership="none">
            <doc xml:space="preserve">the NTP time that a time zone adjustment happens</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="typed_time" transfer-ownership="none">
            <doc xml:space="preserve">the offset from the time when the session was first scheduled</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <constant name="SDP_BWTYPE_AS" value="AS" c:type="GST_SDP_BWTYPE_AS">
      <doc xml:space="preserve">The Application-Specific Maximum bandwidth modifier.</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="SDP_BWTYPE_CT" value="CT" c:type="GST_SDP_BWTYPE_CT">
      <doc xml:space="preserve">The Conference Total bandwidth modifier.</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="SDP_BWTYPE_EXT_PREFIX"
              value="X-"
              c:type="GST_SDP_BWTYPE_EXT_PREFIX">
      <doc xml:space="preserve">The extension prefix bandwidth modifier.</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="SDP_BWTYPE_RR" value="RR" c:type="GST_SDP_BWTYPE_RR">
      <doc xml:space="preserve">RTCP bandwidth allocated to data receivers (RFC 3556).</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="SDP_BWTYPE_RS" value="RS" c:type="GST_SDP_BWTYPE_RS">
      <doc xml:space="preserve">RTCP bandwidth allocated to active data senders (RFC 3556).</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="SDP_BWTYPE_TIAS" value="TIAS" c:type="GST_SDP_BWTYPE_TIAS">
      <doc xml:space="preserve">Transport Independent Application Specific Maximum bandwidth (RFC 3890).</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function name="sdp_address_is_multicast"
              c:identifier="gst_sdp_address_is_multicast">
      <doc xml:space="preserve">Check if the given @addr is a multicast address.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">TRUE when @addr is multicast.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="nettype" transfer-ownership="none">
          <doc xml:space="preserve">a network type</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="addrtype" transfer-ownership="none">
          <doc xml:space="preserve">an address type</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="addr" transfer-ownership="none">
          <doc xml:space="preserve">an address</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="sdp_make_keymgmt"
              c:identifier="gst_sdp_make_keymgmt"
              version="1.8">
      <doc xml:space="preserve">Makes key management data</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a #gchar key-mgmt data,</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve">a #gchar URI</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="base64" transfer-ownership="none">
          <doc xml:space="preserve">a #gchar base64-encoded key data</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="sdp_media_new"
              c:identifier="gst_sdp_media_new"
              moved-to="SDPMedia.new">
      <doc xml:space="preserve">Allocate a new GstSDPMedia and store the result in @media.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstSDPResult.</doc>
        <type name="SDPResult" c:type="GstSDPResult"/>
      </return-value>
      <parameters>
        <parameter name="media"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">pointer to new #GstSDPMedia</doc>
          <type name="SDPMedia" c:type="GstSDPMedia**"/>
        </parameter>
      </parameters>
    </function>
    <function name="sdp_media_set_media_from_caps"
              c:identifier="gst_sdp_media_set_media_from_caps"
              moved-to="SDPMedia.set_media_from_caps"
              version="1.8">
      <doc xml:space="preserve">Mapping of caps to SDP fields:

a=rtpmap:(payload) (encoding_name) or (clock_rate)[or (encoding_params)]

a=framesize:(payload) (width)-(height)

a=fmtp:(payload) (param)[=(value)];...

a=rtcp-fb:(payload) (param1) [param2]...</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstSDPResult.</doc>
        <type name="SDPResult" c:type="GstSDPResult"/>
      </return-value>
      <parameters>
        <parameter name="caps" transfer-ownership="none">
          <doc xml:space="preserve">a #GstCaps</doc>
          <type name="Gst.Caps" c:type="const GstCaps*"/>
        </parameter>
        <parameter name="media" transfer-ownership="none">
          <doc xml:space="preserve">a #GstSDPMedia</doc>
          <type name="SDPMedia" c:type="GstSDPMedia*"/>
        </parameter>
      </parameters>
    </function>
    <function name="sdp_message_as_uri"
              c:identifier="gst_sdp_message_as_uri"
              moved-to="SDPMessage.as_uri">
      <doc xml:space="preserve">Creates a uri from @msg with the given @scheme. The uri has the format:

 \@scheme:///[#type=value *[&amp;type=value]]

 Where each value is url encoded.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a uri for @msg.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="scheme" transfer-ownership="none">
          <doc xml:space="preserve">the uri scheme</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="msg" transfer-ownership="none">
          <doc xml:space="preserve">the #GstSDPMessage</doc>
          <type name="SDPMessage" c:type="const GstSDPMessage*"/>
        </parameter>
      </parameters>
    </function>
    <function name="sdp_message_new"
              c:identifier="gst_sdp_message_new"
              moved-to="SDPMessage.new">
      <doc xml:space="preserve">Allocate a new GstSDPMessage and store the result in @msg.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstSDPResult.</doc>
        <type name="SDPResult" c:type="GstSDPResult"/>
      </return-value>
      <parameters>
        <parameter name="msg"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">pointer to new #GstSDPMessage</doc>
          <type name="SDPMessage" c:type="GstSDPMessage**"/>
        </parameter>
      </parameters>
    </function>
    <function name="sdp_message_parse_buffer"
              c:identifier="gst_sdp_message_parse_buffer"
              moved-to="SDPMessage.parse_buffer">
      <doc xml:space="preserve">Parse the contents of @size bytes pointed to by @data and store the result in
@msg.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">#GST_SDP_OK on success.</doc>
        <type name="SDPResult" c:type="GstSDPResult"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <doc xml:space="preserve">the start of the buffer</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 the buffer</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="msg" transfer-ownership="none">
          <doc xml:space="preserve">the result #GstSDPMessage</doc>
          <type name="SDPMessage" c:type="GstSDPMessage*"/>
        </parameter>
      </parameters>
    </function>
    <function name="sdp_message_parse_uri"
              c:identifier="gst_sdp_message_parse_uri"
              moved-to="SDPMessage.parse_uri">
      <doc xml:space="preserve">Parse the null-terminated @uri and store the result in @msg.

The uri should be of the form:

 scheme://[address[:ttl=ttl][:noa=noa]]/[sessionname]
              [#type=value *[&amp;type=value]]

 where value is url encoded. This looslely resembles
 http://tools.ietf.org/html/draft-fujikawa-sdp-url-01</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">#GST_SDP_OK on success.</doc>
        <type name="SDPResult" c:type="GstSDPResult"/>
      </return-value>
      <parameters>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve">the start of the uri</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="msg" transfer-ownership="none">
          <doc xml:space="preserve">the result #GstSDPMessage</doc>
          <type name="SDPMessage" c:type="GstSDPMessage*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
