An address
      
      
        the #GstRTSPAddressPool owner of this address
        
      
      
        the address
        
      
      
        the port number
        
      
      
        number of ports
        
      
      
        TTL or 0 for unicast addresses
        
      
      
        
      
      
        Make a copy of @addr.
        
        
          a copy of @addr.
          
        
        
          
            a #GstRTSPAddress
            
          
        
      
      
        Free @addr and releasing it back into the pool when owned by a
pool.
        
        
          
        
        
          
            a #GstRTSPAddress
            
          
        
      
    
    
      Flags used to control allocation of addresses
      
      
        no flags
      
      
        an IPv4 address
      
      
        and IPv6 address
      
      
        address with an even port
      
      
        a multicast address
      
      
        a unicast address
      
    
    
      An address pool, all member are private
      
      
        Make a new #GstRTSPAddressPool.
        
        
          a new #GstRTSPAddressPool
          
        
      
      
        Take an address and ports from @pool. @flags can be used to control the
allocation. @n_ports consecutive ports will be allocated of which the first
one can be found in @port.
        
        
          a #GstRTSPAddress that should be freed with
gst_rtsp_address_free after use or %NULL when no address could be
acquired.
          
        
        
          
            a #GstRTSPAddressPool
            
          
          
            flags
            
          
          
            the amount of ports
            
          
        
      
      
        Adds the addresses from @min_addess to @max_address (inclusive)
to @pool. The valid port range for the addresses will be from @min_port to
@max_port inclusive.
When @ttl is 0, @min_address and @max_address should be unicast addresses.
@min_address and @max_address can be set to
#GST_RTSP_ADDRESS_POOL_ANY_IPV4 or #GST_RTSP_ADDRESS_POOL_ANY_IPV6 to bind
to all available IPv4 or IPv6 addresses.
When @ttl > 0, @min_address and @max_address should be multicast addresses.
        
        
          %TRUE if the addresses could be added.
          
        
        
          
            a #GstRTSPAddressPool
            
          
          
            a minimum address to add
            
          
          
            a maximum address to add
            
          
          
            the minimum port
            
          
          
            the maximum port
            
          
          
            a TTL or 0 for unicast addresses
            
          
        
      
      
        Clear all addresses in @pool. There should be no outstanding
allocations.
        
        
          
        
        
          
            a #GstRTSPAddressPool
            
          
        
      
      
        Dump the free and allocated addresses to stdout.
        
        
          
        
        
          
            a #GstRTSPAddressPool
            
          
        
      
      
        Used to know if the pool includes any unicast addresses.
        
        
          %TRUE if the pool includes any unicast addresses, %FALSE otherwise
          
        
        
          
            a #GstRTSPAddressPool
            
          
        
      
      
        Take a specific address and ports from @pool. @n_ports consecutive
ports will be allocated of which the first one can be found in
@port.
If @ttl is 0, @address should be a unicast address. If @ttl > 0, @address
should be a valid multicast address.
        
        
          #GST_RTSP_ADDRESS_POOL_OK if an address was reserved. The address
is returned in @address and should be freed with gst_rtsp_address_free
after use.
          
        
        
          
            a #GstRTSPAddressPool
            
          
          
            The IP address to reserve
            
          
          
            The first port to reserve
            
          
          
            The number of ports
            
          
          
            The requested ttl
            
          
          
            storage for a #GstRTSPAddress
            
          
        
      
      
        the parent GObject
        
      
      
        
      
      
        
          
        
      
    
    
      Opaque Address pool class.
      
      
        
      
      
        
          
        
      
    
    
      
    
    
      Result codes from RTSP address pool functions.
      
      
        no error
      
      
        invalid arguments were provided to a function
      
      
        the addres has already been reserved
      
      
        the address is not in the pool
      
      
        last error
      
    
    
      The authentication structure.
      
      
        Create a new #GstRTSPAuth instance.
        
        
          a new #GstRTSPAuth
          
        
      
      
        Check if @check is allowed in the current context.
        
        
          FALSE if check failed.
          
        
        
          
            the item to check
            
          
        
      
      
        Construct a Basic authorisation token from @user and @pass.
        
        
          the base64 encoding of the string @user:@pass.
g_free() after usage.
          
        
        
          
            a userid
            
          
          
            a password
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Add a basic token for the default authentication algorithm that
enables the client with privileges listed in @token.
        
        
          
        
        
          
            a #GstRTSPAuth
            
          
          
            the basic token
            
          
          
            authorisation token
            
          
        
      
      
        Add a digest @user and @pass for the default authentication algorithm that
enables the client with privileges listed in @token.
        
        
          
        
        
          
            a #GstRTSPAuth
            
          
          
            the digest user name
            
          
          
            the digest password
            
          
          
            authorisation token
            
          
        
      
      
        Get the default token for @auth. This token will be used for unauthenticated
users.
        
        
          the #GstRTSPToken of @auth. gst_rtsp_token_unref() after
usage.
          
        
        
          
            a #GstRTSPAuth
            
          
        
      
      
        
        
          the @realm of @auth
          
        
        
          
            
          
        
      
      
        Gets the supported authentication methods of @auth.
        
        
          The supported authentication methods
          
        
        
          
            a #GstRTSPAuth
            
          
        
      
      
        Get the #GTlsAuthenticationMode.
        
        
          the #GTlsAuthenticationMode.
          
        
        
          
            a #GstRTSPAuth
            
          
        
      
      
        Get the #GTlsCertificate used for negotiating TLS @auth.
        
        
          the #GTlsCertificate of @auth. g_object_unref() after
usage.
          
        
        
          
            a #GstRTSPAuth
            
          
        
      
      
        Get the #GTlsDatabase used for verifying client certificate.
        
        
          the #GTlsDatabase of @auth. g_object_unref() after
usage.
          
        
        
          
            a #GstRTSPAuth
            
          
        
      
      
        Parse the contents of the file at @path and enable the privileges
listed in @token for the users it describes.
The format of the file is expected to match the format described by
<https://en.wikipedia.org/wiki/Digest_access_authentication#The_.htdigest_file>,
as output by the `htdigest` command.
        
        
          %TRUE if the file was successfully parsed, %FALSE otherwise.
          
        
        
          
            
          
          
            Path to the htdigest file
            
          
          
            authorisation token
            
          
        
      
      
        Removes @basic authentication token.
        
        
          
        
        
          
            a #GstRTSPAuth
            
          
          
            the basic token
            
          
        
      
      
        Removes a digest user.
        
        
          
        
        
          
            a #GstRTSPAuth
            
          
          
            the digest user name
            
          
        
      
      
        Set the default #GstRTSPToken to @token in @auth. The default token will
be used for unauthenticated users.
        
        
          
        
        
          
            a #GstRTSPAuth
            
          
          
            a #GstRTSPToken
            
          
        
      
      
        Set the @realm of @auth
        
        
          
        
        
          
            
          
          
            The realm to set
            
          
        
      
      
        Sets the supported authentication @methods for @auth.
        
        
          
        
        
          
            a #GstRTSPAuth
            
          
          
            supported methods
            
          
        
      
      
        The #GTlsAuthenticationMode to set on the underlying GTlsServerConnection.
When set to another value than %G_TLS_AUTHENTICATION_NONE,
#GstRTSPAuth::accept-certificate signal will be emitted and must be handled.
        
        
          
        
        
          
            a #GstRTSPAuth
            
          
          
            a #GTlsAuthenticationMode
            
          
        
      
      
        Set the TLS certificate for the auth. Client connections will only
be accepted when TLS is negotiated.
        
        
          
        
        
          
            a #GstRTSPAuth
            
          
          
            a #GTlsCertificate
            
          
        
      
      
        Sets the certificate database that is used to verify peer certificates.
If set to %NULL (the default), then peer certificate validation will always
set the %G_TLS_CERTIFICATE_UNKNOWN_CA error.
        
        
          
        
        
          
            a #GstRTSPAuth
            
          
          
            a #GTlsDatabase
            
          
        
      
      
        
      
      
        
      
      
        
          
        
      
      
        Emitted during the TLS handshake after the client certificate has
been received. See also gst_rtsp_auth_set_tls_authentication_mode().
        
          %TRUE to accept @peer_cert (which will also
immediately end the signal emission). %FALSE to allow the signal
emission to continue, which will cause the handshake to fail if
no one else overrides it.
          
        
        
          
            a #GTlsConnection
            
          
          
            the peer's #GTlsCertificate
            
          
          
            the problems with @peer_cert.
            
          
        
      
    
    
      The authentication class.
      
      
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
            
              
            
            
              
            
          
        
      
      
        
          
        
      
    
    
      
    
    
      The client object represents the connection and its state with a client.
      
      
        Create a new #GstRTSPClient instance.
        
        
          a new #GstRTSPClient
          
        
      
      
        Called before sending error response to give the application the
possibility to adjust the error code.
        
        
          a #GstRTSPStatusCode, containing the adjusted error code.
          
        
        
          
            a #GstRTSPClient
            
          
          
            a #GstRTSPContext
            
          
          
            a #GstRTSPStatusCode
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
          
            
          
          
            
          
          
            
          
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
          
            
          
        
      
      
        Attaches @client to @context. When the mainloop for @context is run, the
client will be dispatched. When @context is %NULL, the default context will be
used).
This function should be called when the client properties and urls are fully
configured and the client is ready to start.
        
        
          the ID (greater than 0) for the source within the GMainContext.
          
        
        
          
            a #GstRTSPClient
            
          
          
            a #GMainContext
            
          
        
      
      
        Close the connection of @client and remove all media it was managing.
        
        
          
        
        
          
            a #GstRTSPClient
            
          
        
      
      
        Get the #GstRTSPAuth used as the authentication manager of @client.
        
        
          the #GstRTSPAuth of @client.
g_object_unref() after usage.
          
        
        
          
            a #GstRTSPClient
            
          
        
      
      
        Get the #GstRTSPConnection of @client.
        
        
          the #GstRTSPConnection of @client.
The connection object returned remains valid until the client is freed.
          
        
        
          
            a #GstRTSPClient
            
          
        
      
      
        Get the Content-Length limit of @client.
        
        
          the Content-Length limit.
          
        
        
          
            a #GstRTSPClient
            
          
        
      
      
        Get the #GstRTSPMountPoints object that @client uses to manage its sessions.
        
        
          a #GstRTSPMountPoints, unref after usage.
          
        
        
          
            a #GstRTSPClient
            
          
        
      
      
        Get the #GstRTSPSessionPool object that @client uses to manage its sessions.
        
        
          a #GstRTSPSessionPool, unref after usage.
          
        
        
          
            a #GstRTSPClient
            
          
        
      
      
        This is useful when providing a send function through
gst_rtsp_client_set_send_func() when doing RTSP over TCP:
the send function must call gst_rtsp_stream_transport_message_sent ()
on the appropriate transport when data has been received for streaming
to continue.
        
        
          the #GstRTSPStreamTransport associated with @channel.
          
        
        
          
            
          
          
            
          
        
      
      
        Get the #GstRTSPThreadPool used as the thread pool of @client.
        
        
          the #GstRTSPThreadPool of @client. g_object_unref() after
usage.
          
        
        
          
            a #GstRTSPClient
            
          
        
      
      
        Let the client handle @message.
        
        
          a #GstRTSPResult.
          
        
        
          
            a #GstRTSPClient
            
          
          
            an #GstRTSPMessage
            
          
        
      
      
        Send a message message to the remote end. @message must be a
#GST_RTSP_MESSAGE_REQUEST or a #GST_RTSP_MESSAGE_RESPONSE.
        
        
          
        
        
          
            a #GstRTSPClient
            
          
          
            a #GstRTSPSession to send
  the message to or %NULL
            
          
          
            The #GstRTSPMessage to send
            
          
        
      
      
        Call @func for each session managed by @client. The result value of @func
determines what happens to the session. @func will be called with @client
locked so no further actions on @client can be performed from @func.
If @func returns #GST_RTSP_FILTER_REMOVE, the session will be removed from
@client.
If @func returns #GST_RTSP_FILTER_KEEP, the session will remain in @client.
If @func returns #GST_RTSP_FILTER_REF, the session will remain in @client but
will also be added with an additional ref to the result #GList of this
function..
When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for each session.
        
        
          a #GList with all
sessions for which @func returned #GST_RTSP_FILTER_REF. After usage, each
element in the #GList should be unreffed before the list is freed.
          
            
          
        
        
          
            a #GstRTSPClient
            
          
          
            a callback
            
          
          
            user data passed to @func
            
          
        
      
      
        configure @auth to be used as the authentication manager of @client.
        
        
          
        
        
          
            a #GstRTSPClient
            
          
          
            a #GstRTSPAuth
            
          
        
      
      
        Set the #GstRTSPConnection of @client. This function takes ownership of
@conn.
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPClient
            
          
          
            a #GstRTSPConnection
            
          
        
      
      
        Configure @client to use the specified Content-Length limit.
Define an appropriate request size limit and reject requests exceeding the
limit with response status 413 Request Entity Too Large
        
        
          
        
        
          
            a #GstRTSPClient
            
          
          
            Content-Length limit
            
          
        
      
      
        Set @mounts as the mount points for @client which it will use to map urls
to media streams. These mount points are usually inherited from the server that
created the client but can be overriden later.
        
        
          
        
        
          
            a #GstRTSPClient
            
          
          
            a #GstRTSPMountPoints
            
          
        
      
      
        Set @func as the callback that will be called when a new message needs to be
sent to the client. @user_data is passed to @func and @notify is called when
@user_data is no longer in use.
By default, the client will send the messages on the #GstRTSPConnection that
was configured with gst_rtsp_client_attach() was called.
It is only allowed to set either a `send_func` or a `send_messages_func`
but not both at the same time.
        
        
          
        
        
          
            a #GstRTSPClient
            
          
          
            a #GstRTSPClientSendFunc
            
          
          
            user data passed to @func
            
          
          
            called when @user_data is no longer in use
            
          
        
      
      
        Set @func as the callback that will be called when new messages needs to be
sent to the client. @user_data is passed to @func and @notify is called when
@user_data is no longer in use.
By default, the client will send the messages on the #GstRTSPConnection that
was configured with gst_rtsp_client_attach() was called.
It is only allowed to set either a `send_func` or a `send_messages_func`
but not both at the same time.
        
        
          
        
        
          
            a #GstRTSPClient
            
          
          
            a #GstRTSPClientSendMessagesFunc
            
          
          
            user data passed to @func
            
          
          
            called when @user_data is no longer in use
            
          
        
      
      
        Set @pool as the sessionpool for @client which it will use to find
or allocate sessions. the sessionpool is usually inherited from the server
that created the client but can be overridden later.
        
        
          
        
        
          
            a #GstRTSPClient
            
          
          
            a #GstRTSPSessionPool
            
          
        
      
      
        configure @pool to be used as the thread pool of @client.
        
        
          
        
        
          
            a #GstRTSPClient
            
          
          
            a #GstRTSPThreadPool
            
          
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
          
        
      
      
        
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          a newly allocated string with comma-separated list of
         unsupported options. An empty string must be returned if
         all options are supported.
          
        
        
          
            a #GstRTSPContext
            
          
          
            a NULL-terminated array of strings
            
              
            
          
        
      
      
        
          
        
      
      
        
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          
        
        
          
            
          
        
      
      
        
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          a #GstRTSPStatusCode, GST_RTSP_STS_OK in case of success,
         otherwise an appropriate return code
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          
        
        
          
            The session
            
          
          
            The message
            
          
        
      
      
        
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        
          
        
        
          
            a #GstRTSPContext
            
          
        
      
    
    
      The client class structure.
      
      
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
            
              
            
            
              
            
            
              
            
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            a #GstRTSPStatusCode, containing the adjusted error code.
            
          
          
            
              a #GstRTSPClient
              
            
            
              a #GstRTSPContext
              
            
            
              a #GstRTSPStatusCode
              
            
          
        
      
      
        
          
        
      
    
    
      
    
    
      This callback is called when @client wants to send @message. When @close is
%TRUE, the connection should be closed when the message has been sent.
      
      
        %TRUE on success.
        
      
      
        
          a #GstRTSPClient
          
        
        
          a #GstRTSPMessage
          
        
        
          close the connection
          
        
        
          user data when registering the callback
          
        
      
    
    
      This callback is called when @client wants to send @messages. When @close is
%TRUE, the connection should be closed when the message has been sent.
      
      
        %TRUE on success.
        
      
      
        
          a #GstRTSPClient
          
        
        
          #GstRTSPMessage
          
        
        
          number of messages
          
        
        
          close the connection
          
        
        
          user data when registering the callback
          
        
      
    
    
      This function will be called by the gst_rtsp_client_session_filter(). An
implementation should return a value of #GstRTSPFilterResult.
When this function returns #GST_RTSP_FILTER_REMOVE, @sess will be removed
from @client.
A return value of #GST_RTSP_FILTER_KEEP will leave @sess untouched in
@client.
A value of #GST_RTSP_FILTER_REF will add @sess to the result #GList of
gst_rtsp_client_session_filter().
      
      
        a #GstRTSPFilterResult.
        
      
      
        
          a #GstRTSPClient object
          
        
        
          a #GstRTSPSession in @client
          
        
        
          user data that has been given to gst_rtsp_client_session_filter()
          
        
      
    
    
      Information passed around containing the context of a request.
      
      
        the server
        
      
      
        the connection
        
      
      
        the client
        
      
      
        the complete request
        
      
      
        the complete url parsed from @request
        
      
      
        the parsed method of @uri
        
      
      
        the current auth object or %NULL
        
      
      
        authorisation token
        
      
      
        the session, can be %NULL
        
      
      
        the session media for the url can be %NULL
        
      
      
        the media factory for the url, can be %NULL
        
      
      
        the media for the url can be %NULL
        
      
      
        the stream for the url can be %NULL
        
      
      
        the response
        
      
      
        the stream transport, can be %NULL
        
      
      
        
          
        
      
      
        Pops @ctx off the context stack (verifying that @ctx
is on the top of the stack).
        
        
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        Pushes @ctx onto the context stack. The current
context can then be received using gst_rtsp_context_get_current().
        
        
          
        
        
          
            a #GstRTSPContext
            
          
        
      
      
        Set the token for @ctx.
        
        
          
        
        
          
            a #GstRTSPContext
            
          
          
            a #GstRTSPToken
            
          
        
      
      
        Get the current #GstRTSPContext. This object is retrieved from the
current thread that is handling the request for a client.
        
        
          a #GstRTSPContext
          
        
      
    
    
      Possible return values for gst_rtsp_session_pool_filter().
      
      
        Remove session
      
      
        Keep session in the pool
      
      
        Ref session in the result list
      
    
    
      Function registered with gst_rtsp_stream_transport_set_keepalive() and called
when the stream is active.
      
      
        
      
      
        
          user data
          
        
      
    
    
      A class that contains the GStreamer element along with a list of
#GstRTSPStream objects that can produce data.
This object is usually created from a #GstRTSPMediaFactory.
      
      
        Create a new #GstRTSPMedia instance. @element is the bin element that
provides the different streams. The #GstRTSPMedia object contains the
element to produce RTP data for one or more related (audio/video/..)
streams.
Ownership is taken of @element.
        
        
          a new #GstRTSPMedia object.
          
        
        
          
            a #GstElement
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Configure an SDP on @media for receiving streams
        
        
          TRUE on success.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            a #GstSDPMessage
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Prepare @media for streaming. This function will create the objects
to manage the streaming. A pipeline must have been set on @media with
gst_rtsp_media_take_pipeline().
It will preroll the pipeline and collect vital information about the streams
such as the duration.
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            a #GstRTSPThread to run the
  bus handler or %NULL
            
          
        
      
      
        
        
          
        
        
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Add @media specific info to @sdp. @info is used to configure the connection
information in the SDP.
        
        
          TRUE on success.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            a #GstSDPMessage
            
          
          
            a #GstSDPInfo
            
          
        
      
      
        Suspend @media. The state of the pipeline managed by @media is set to
GST_STATE_NULL but all streams are kept. @media can be prepared again
with gst_rtsp_media_unsuspend()
@media must be prepared with gst_rtsp_media_prepare();
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Unprepare @media. After this call, the media should be prepared again before
it can be used again. If the media is set to be non-reusable, a new instance
must be created.
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        
        
          
        
        
          
            
          
        
      
      
        Unsuspend @media if it was in a suspended state. This method does nothing
when the media was not in the suspended state.
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Check if the pipeline for @media can be shared between multiple clients.
This checks if the media is shareable and whether it is either reusable or
was never unprepared before.
The function must be called with gst_rtsp_media_lock().
        
        
          %TRUE if the media can be shared between clients.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Find all payloader elements, they should be named pay\%d in the
element of @media, and create #GstRTSPStreams for them.
Collect all dynamic elements, named dynpay\%d, and add them to
the list of dynamic elements.
Find all depayloader elements, they should be named depay\%d in the
element of @media, and create #GstRTSPStreams for them.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Add a receiver and sender parts to the pipeline based on the transport from
SETUP.
        
        
          %TRUE if the media pipeline has been sucessfully updated.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            a list of #GstRTSPTransport
            
              
            
          
        
      
      
        Create a new stream in @media that provides RTP data on @pad.
@pad should be a pad of an element inside @media->element.
        
        
          a new #GstRTSPStream that remains valid for as long
as @media exists.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            a #GstElement
            
          
          
            a #GstPad
            
          
        
      
      
        Find a stream in @media with @control as the control uri.
        
        
          the #GstRTSPStream with
control uri @control or %NULL when a stream with that control did
not exist.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the control of the stream
            
          
        
      
      
        Get the #GstRTSPAddressPool used as the address pool of @media.
        
        
          the #GstRTSPAddressPool of @media.
g_object_unref() after usage.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Get the base_time that is used by the pipeline in @media.
@media must be prepared before this method returns a valid base_time.
        
        
          the base_time used by @media.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Get the kernel UDP buffer size.
        
        
          the kernel UDP buffer size.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Get the clock that is used by the pipeline in @media.
@media must be prepared before this method returns a valid clock object.
        
        
          the #GstClock used by @media. unref after usage.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        
        
          Whether retransmission requests will be sent
          
        
        
          
            
          
        
      
      
        Get the configured DSCP QoS of attached media.
        
        
          the DSCP QoS value of attached streams or -1 if disabled.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Get the element that was used when constructing @media.
        
        
          a #GstElement. Unref after usage.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Get ensure-keyunit-on-start flag.
        
        
          The ensure-keyunit-on-start flag.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Get ensure-keyunit-on-start-timeout time.
        
        
          The ensure-keyunit-on-start-timeout time.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Get the latency that is used for receiving media.
        
        
          latency in milliseconds
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Get the the maximum time-to-live value of outgoing multicast packets.
        
        
          the maximum time-to-live value of outgoing multicast packets.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Get the multicast interface used for @media.
        
        
          the multicast interface for @media.
g_free() after usage.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Get the permissions object from @media.
        
        
          a #GstRTSPPermissions object, unref after usage.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Get the allowed profiles of @media.
        
        
          a #GstRTSPProfile
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Get the allowed protocols of @media.
        
        
          a #GstRTSPLowerTrans
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Gets if and how the media clock should be published according to RFC7273.
        
        
          The GstRTSPPublishClockMode
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Get the current range as a string. @media must be prepared with
gst_rtsp_media_prepare ().
        
        
          The range as a string, g_free() after usage.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            for the PLAY request
            
          
          
            the unit to use for the string
            
          
        
      
      
        
        
          whether @media will follow the Rate-Control=no behaviour as specified
in the ONVIF replay spec.
          
        
        
          
            
          
        
      
      
        Get the rate and applied_rate of the current segment.
        
        
          %FALSE if looking up the rate and applied rate failed. Otherwise
%TRUE is returned and @rate and @applied_rate are set to the rate and
applied_rate of the current segment.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the rate of the current segment
            
          
          
            the applied_rate of the current segment
            
          
        
      
      
        Get the amount of time to store retransmission data.
        
        
          the amount of time to store retransmission data.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Get the status of @media. When @media is busy preparing, this function waits
until @media is prepared or in error.
        
        
          the status of @media.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Retrieve the stream with index @idx from @media.
        
        
          the #GstRTSPStream at index
@idx or %NULL when a stream with that index did not exist.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the stream index
            
          
        
      
      
        Get how @media will be suspended.
        
        
          #GstRTSPSuspendMode.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Get the #GstNetTimeProvider for the clock used by @media. The time provider
will listen on @address and @port for client time requests.
        
        
          the #GstNetTimeProvider of @media.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            an address or %NULL
            
          
          
            a port or 0
            
          
        
      
      
        Check if the pipeline for @media can be used for PLAY or RECORD methods.
        
        
          The transport mode.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Configure an SDP on @media for receiving streams
        
        
          TRUE on success.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            a #GstSDPMessage
            
          
        
      
      
        See gst_rtsp_stream_is_complete(), gst_rtsp_stream_is_sender().
        
        
          whether @media has at least one complete sender stream.
          
        
        
          
            
          
        
      
      
        Check if multicast sockets are configured to be bound to multicast addresses.
        
        
          %TRUE if multicast sockets are configured to be bound to multicast addresses.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Check if the pipeline for @media will send an EOS down the pipeline before
unpreparing.
        
        
          %TRUE if the media will send EOS before unpreparing.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        
        
          %TRUE if @media is receive-only, %FALSE otherwise.
          
        
        
          
            
          
        
      
      
        Check if the pipeline for @media can be reused after an unprepare.
        
        
          %TRUE if the media can be reused
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Check if the pipeline for @media can be shared between multiple clients in
theory. This simply returns the value set via gst_rtsp_media_set_shared().
To know if a media can be shared in practice, i.e. if it's shareable and
either reusable or was never unprepared before, use
gst_rtsp_media_can_be_shared().
        
        
          %TRUE if the media can be shared between clients.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Check if the pipeline for @media will be stopped when a client disconnects
without sending TEARDOWN.
        
        
          %TRUE if the media will be stopped when a client disconnects
    without sending TEARDOWN.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Check if @media can provide a #GstNetTimeProvider for its pipeline clock.
Use gst_rtsp_media_get_time_provider() to get the network clock.
        
        
          %TRUE if @media can provide a #GstNetTimeProvider.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Lock the entire media. This is needed by callers such as rtsp_client to
protect the media when it is shared by many clients.
The lock prevents that concurrent clients alters the shared media,
while one client already is working with it.
Typically the lock is taken in external RTSP API calls that uses shared media
such as DESCRIBE, SETUP, ANNOUNCE, TEARDOWN, PLAY, PAUSE.
As best practice take the lock as soon as the function get hold of a shared
media object. Release the lock right before the function returns.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Get the number of streams in this media.
        
        
          The number of streams.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Prepare @media for streaming. This function will create the objects
to manage the streaming. A pipeline must have been set on @media with
gst_rtsp_media_take_pipeline().
It will preroll the pipeline and collect vital information about the streams
such as the duration.
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            a #GstRTSPThread to run the
  bus handler or %NULL
            
          
        
      
      
        Seek the pipeline of @media to @range. @media must be prepared with
gst_rtsp_media_prepare().
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            a #GstRTSPTimeRange
            
          
        
      
      
        Seek the pipeline of @media to @range with the given @flags.
@media must be prepared with gst_rtsp_media_prepare().
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            a #GstRTSPTimeRange
            
          
          
            The minimal set of #GstSeekFlags to use
            
          
        
      
      
        Seek the pipeline of @media to @range with the given @flags and @rate,
and @trickmode_interval.
@media must be prepared with gst_rtsp_media_prepare().
In order to perform the seek operation, the pipeline must contain all
needed transport parts (transport sinks).
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            a #GstRTSPTimeRange
            
          
          
            The minimal set of #GstSeekFlags to use
            
          
          
            the rate to use in the seek
            
          
          
            The trickmode interval to use for KEY_UNITS trick mode
            
          
        
      
      
        Check if the pipeline for @media seek and up to what point in time,
it can seek.
        
        
          -1 if the stream is not seekable, 0 if seekable only to the beginning
and > 0 to indicate the longest duration between any two random access points.
%G_MAXINT64 means any value is possible.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        configure @pool to be used as the address pool of @media.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            a #GstRTSPAddressPool
            
          
        
      
      
        Decide whether the multicast socket should be bound to a multicast address or
INADDR_ANY.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the new value
            
          
        
      
      
        Set the kernel UDP buffer size.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the new value
            
          
        
      
      
        Configure the clock used for the media.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            #GstClock to be used
            
          
        
      
      
        Set whether retransmission requests will be sent
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Configure the dscp qos of attached streams to @dscp_qos.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            a new dscp qos value (0-63, or -1 to disable)
            
          
        
      
      
        Set whether or not a keyunit should be ensured when a client connects. It
will also configure the streams to drop delta units to ensure that they start
on a keyunit.
Note that this will only affect non-shared medias for now.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the new value
            
          
        
      
      
        Sets the maximum allowed time before the first keyunit is considered
expired.
Note that this will only have an effect when ensure-keyunit-on-start is
enabled.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the new value
            
          
        
      
      
        Set or unset if an EOS event will be sent to the pipeline for @media before
it is unprepared.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the new value
            
          
        
      
      
        Configure the latency used for receiving media.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            latency in milliseconds
            
          
        
      
      
        Set the maximum time-to-live value of outgoing multicast packets.
        
        
          %TRUE if the requested ttl has been set successfully.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the new multicast ttl value
            
          
        
      
      
        configure @multicast_iface to be used for @media.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            a multicast interface name
            
          
        
      
      
        Set @permissions on @media.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            a #GstRTSPPermissions
            
          
        
      
      
        Set the state of the pipeline managed by @media to @state
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the target state of the pipeline
            
          
        
      
      
        Configure the allowed lower transport for @media.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the new flags
            
          
        
      
      
        Configure the allowed lower transport for @media.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the new flags
            
          
        
      
      
        Sets if and how the media clock should be published according to RFC7273.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the clock publish mode
            
          
        
      
      
        Define whether @media will follow the Rate-Control=no behaviour as specified
in the ONVIF replay spec.
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Set the amount of time to store retransmission packets.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the new value
            
          
        
      
      
        Set or unset if the pipeline for @media can be reused after the pipeline has
been unprepared.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the new value
            
          
        
      
      
        Set or unset if the pipeline for @media can be shared will multiple clients.
When @shared is %TRUE, client requests for this media will share the media
pipeline.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the new value
            
          
        
      
      
        Set the state of @media to @state and for the transports in @transports.
@media must be prepared with gst_rtsp_media_prepare();
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the target state of the media
            
          
          
            
a #GPtrArray of #GstRTSPStreamTransport pointers
            
              
            
          
        
      
      
        Set or unset if the pipeline for @media should be stopped when a
client disconnects without sending TEARDOWN.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the new value
            
          
        
      
      
        Control how @ media will be suspended after the SDP has been generated and
after a PAUSE request has been performed.
Media must be unprepared when setting the suspend mode.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the new #GstRTSPSuspendMode
            
          
        
      
      
        Sets if the media pipeline can work in PLAY or RECORD mode
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the new value
            
          
        
      
      
        Add @media specific info to @sdp. @info is used to configure the connection
information in the SDP.
        
        
          TRUE on success.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            a #GstSDPMessage
            
          
          
            a #GstSDPInfo
            
          
        
      
      
        Suspend @media. The state of the pipeline managed by @media is set to
GST_STATE_NULL but all streams are kept. @media can be prepared again
with gst_rtsp_media_unsuspend()
@media must be prepared with gst_rtsp_media_prepare();
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Set @pipeline as the #GstPipeline for @media. Ownership is
taken of @pipeline.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            a #GstPipeline
            
          
        
      
      
        Unlock the media.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Unprepare @media. After this call, the media should be prepared again before
it can be used again. If the media is set to be non-reusable, a new instance
must be created.
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Unsuspend @media if it was in a suspended state. This method does nothing
when the media was not in the suspended state.
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Set @media to provide a #GstNetTimeProvider.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            if a #GstNetTimeProvider should be used
            
          
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        Whether or not a keyunit should be ensured when a client connects. It
will also configure the streams to drop delta units to ensure that they start
on a keyunit.
Note that this will only affect non-shared medias for now.
        
      
      
        The maximum allowed time before the first keyunit is considered
expired.
Note that this will only have an effect when ensure-keyunit-on-start is
enabled.
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
          
        
      
      
        Will be emitted when a message appears on the pipeline bus.
        
          a #gboolean indicating if the call was successful or not.
          
        
        
          
            a #GstMessage
            
          
        
      
      
        
          
        
        
          
            
          
        
      
      
        
          
        
        
          
            
          
        
      
      
        
          
        
      
      
        
          
        
        
          
            
          
        
      
      
        
          
        
        
          
            
          
        
      
      
        
          
        
      
    
    
      The RTSP media class
      
      
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            %TRUE on success.
            
          
          
            
              a #GstRTSPMedia
              
            
            
              a #GstRTSPThread to run the
  bus handler or %NULL
              
            
          
        
      
      
        
          
          
            %TRUE on success.
            
          
          
            
              a #GstRTSPMedia
              
            
          
        
      
      
        
          
          
            %TRUE on success.
            
          
          
            
              a #GstRTSPMedia
              
            
          
        
      
      
        
          
          
            %TRUE on success.
            
          
          
            
              a #GstRTSPMedia
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            TRUE on success.
            
          
          
            
              a #GstRTSPMedia
              
            
            
              a #GstSDPMessage
              
            
            
              a #GstSDPInfo
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            TRUE on success.
            
          
          
            
              a #GstRTSPMedia
              
            
            
              a #GstSDPMessage
              
            
          
        
      
      
        
          
        
      
    
    
      The definition and logic for constructing the pipeline for a media. The media
can contain multiple streams like audio and video.
      
      
        Create a new #GstRTSPMediaFactory instance.
        
        
          a new #GstRTSPMediaFactory object.
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Construct the media object and create its streams. Implementations
should create the needed gstreamer elements and add them to the result
object. No state changes should be performed on them yet.
One or more GstRTSPStream objects should be created from the result
with gst_rtsp_media_create_stream ().
After the media is constructed, it can be configured and then prepared
with gst_rtsp_media_prepare ().
The returned media will be locked and must be unlocked afterwards.
        
        
          a new #GstRTSPMedia if the media could be prepared.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the url used
            
          
        
      
      
        Construct and return a #GstElement that is a #GstBin containing
the elements to use for streaming the media.
The bin should contain payloaders pay\%d for each stream. The default
implementation of this function returns the bin created from the
launch parameter.
        
        
          a new #GstElement.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the url used
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        A convenience method to add @role with @fieldname and additional arguments to
the permissions of @factory. If @factory had no permissions, new permissions
will be created and the role will be added to it.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            a role
            
          
          
            the first field name
            
          
          
            additional arguments
            
          
        
      
      
        A convenience wrapper around gst_rtsp_permissions_add_role_from_structure().
If @factory had no permissions, new permissions will be created and the
role will be added to it.
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Construct the media object and create its streams. Implementations
should create the needed gstreamer elements and add them to the result
object. No state changes should be performed on them yet.
One or more GstRTSPStream objects should be created from the result
with gst_rtsp_media_create_stream ().
After the media is constructed, it can be configured and then prepared
with gst_rtsp_media_prepare ().
The returned media will be locked and must be unlocked afterwards.
        
        
          a new #GstRTSPMedia if the media could be prepared.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the url used
            
          
        
      
      
        Construct and return a #GstElement that is a #GstBin containing
the elements to use for streaming the media.
The bin should contain payloaders pay\%d for each stream. The default
implementation of this function returns the bin created from the
launch parameter.
        
        
          a new #GstElement.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the url used
            
          
        
      
      
        Get the #GstRTSPAddressPool used as the address pool of @factory.
        
        
          the #GstRTSPAddressPool of @factory. g_object_unref() after
usage.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get the kernel UDP buffer size.
        
        
          the kernel UDP buffer size.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Returns the clock that is going to be used by the pipelines
of all medias created from this factory.
        
        
          The GstClock
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        
        
          Whether retransmission requests will be sent for receiving media
          
        
        
          
            
          
        
      
      
        Get the configured media DSCP QoS.
        
        
          the media DSCP QoS value or -1 if disabled.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get ensure-keyunit-on-start flag.
        
        
          The ensure-keyunit-on-start flag.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get ensure-keyunit-on-start-timeout time.
        
        
          The ensure-keyunit-on-start-timeout time.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get the latency that is used for receiving media
        
        
          latency in milliseconds
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get the gst_parse_launch() pipeline description that will be used in the
default prepare vmethod.
        
        
          the configured launch description. g_free() after
usage.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get the the maximum time-to-live value of outgoing multicast packets.
        
        
          the maximum time-to-live value of outgoing multicast packets.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Return the GType of the GstRTSPMedia subclass this
factory will create.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get the multicast interface used for @factory.
        
        
          the multicast interface for @factory. g_free() after
usage.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get the permissions object from @factory.
        
        
          a #GstRTSPPermissions object, unref after usage.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get the allowed profiles of @factory.
        
        
          a #GstRTSPProfile
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get the allowed protocols of @factory.
        
        
          a #GstRTSPLowerTrans
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Gets if and how the media clock should be published according to RFC7273.
        
        
          The GstRTSPPublishClockMode
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get the time that is stored for retransmission purposes
        
        
          a #GstClockTime
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get how media created from this factory will be suspended.
        
        
          a #GstRTSPSuspendMode.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get if media created from this factory can be used for PLAY or RECORD
methods.
        
        
          The transport mode.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Check if multicast sockets are configured to be bound to multicast addresses.
        
        
          %TRUE if multicast sockets are configured to be bound to multicast addresses.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Check if created media will send and receive RTCP
        
        
          %TRUE if created media will send and receive RTCP
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get if media created from this factory will have an EOS event sent to the
pipeline before shutdown.
        
        
          %TRUE if the media will receive EOS before shutdown.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get if media created from this factory can be shared between clients.
        
        
          %TRUE if the media will be shared between clients.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        
        
          
        
        
          
            
          
        
      
      
        configure @pool to be used as the address pool of @factory.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            a #GstRTSPAddressPool
            
          
        
      
      
        Decide whether the multicast socket should be bound to a multicast address or
INADDR_ANY.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the new value
            
          
        
      
      
        Set the kernel UDP buffer size.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the new value
            
          
        
      
      
        Configures a specific clock to be used by the pipelines
of all medias created from this factory.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the clock to be used by the media factory
            
          
        
      
      
        Set whether retransmission requests will be sent for
receiving media
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Configure the media dscp qos to @dscp_qos.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            a new dscp qos value (0-63, or -1 to disable)
            
          
        
      
      
        Decide whether the created media should send and receive RTCP
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the new value
            
          
        
      
      
        If media from this factory should ensure a key unit when a client connects.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the new value
            
          
        
      
      
        Configures medias from this factory to consider keyunits older than timeout
to be expired. Expired keyunits will be discarded.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the new value
            
          
        
      
      
        Configure if media created from this factory will have an EOS sent to the
pipeline before shutdown.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the new value
            
          
        
      
      
        Configure the latency used for receiving media
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            latency in milliseconds
            
          
        
      
      
        The gst_parse_launch() line to use for constructing the pipeline in the
default prepare vmethod.
The pipeline description should return a GstBin as the toplevel element
which can be accomplished by enclosing the description with brackets '('
')'.
The description should return a pipeline with payloaders named pay0, pay1,
etc.. Each of the payloaders will result in a stream.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the launch description
            
          
        
      
      
        Set the maximum time-to-live value of outgoing multicast packets.
        
        
          %TRUE if the requested ttl has been set successfully.
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the new multicast ttl value
            
          
        
      
      
        Configure the GType of the GstRTSPMedia subclass to
create (by default, overridden construct vmethods
may of course do something different)
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the GType of the class to create
            
          
        
      
      
        configure @multicast_iface to be used for @factory.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            a multicast interface name
            
          
        
      
      
        Set @permissions on @factory.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            a #GstRTSPPermissions
            
          
        
      
      
        Configure the allowed profiles for @factory.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the new flags
            
          
        
      
      
        Configure the allowed lower transport for @factory.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the new flags
            
          
        
      
      
        Sets if and how the media clock should be published according to RFC7273.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the clock publish mode
            
          
        
      
      
        Configure the time to store for possible retransmission
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            a #GstClockTime
            
          
        
      
      
        Configure if media created from this factory can be shared between clients.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the new value
            
          
        
      
      
        Configure if media created from this factory should be stopped
when a client disconnects without sending TEARDOWN.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the new value
            
          
        
      
      
        Configure how media created from this factory will be suspended.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the new #GstRTSPSuspendMode
            
          
        
      
      
        Configure if this factory creates media for PLAY or RECORD modes.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the new value
            
          
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        Whether the created media should send and receive RTCP
        
      
      
        If media from this factory should ensure a key unit when a client connects.
This property will ensure that the stream always starts on a key unit
instead of a delta unit which the client would not be able to decode.
Note that this will only affect non-shared medias for now.
        
      
      
        Timeout in milliseconds used to determine if a keyunit should be discarded
when a client connects.
If the timeout has been reached a new keyframe will be forced, otherwise
the currently blocking keyframe will be used.
This options is only relevant when ensure-keyunit-on-start is enabled.
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
          
        
      
      
        
          
        
        
          
            
          
        
      
      
        
          
        
        
          
            
          
        
      
    
    
      The #GstRTSPMediaFactory class structure.
      
      
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            a new #GstElement.
            
          
          
            
              a #GstRTSPMediaFactory
              
            
            
              the url used
              
            
          
        
      
      
        
          
          
            a new #GstRTSPMedia if the media could be prepared.
            
          
          
            
              a #GstRTSPMediaFactory
              
            
            
              the url used
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
        
      
    
    
      
    
    
      A media factory that creates a pipeline to play any uri.
      
      
        Create a new #GstRTSPMediaFactoryURI instance.
        
        
          a new #GstRTSPMediaFactoryURI object.
          
        
      
      
        Get the URI that will provide media for this factory.
        
        
          the configured URI. g_free() after usage.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Set the URI of the resource that will be streamed by this factory.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the uri the stream
            
          
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
          
        
      
    
    
      The #GstRTSPMediaFactoryURI class structure.
      
      
        
      
      
        
          
        
      
    
    
      
    
    
      
    
    
      The state of the media pipeline.
      
      
        media pipeline not prerolled
      
      
        media pipeline is busy doing a clean
                                    shutdown.
      
      
        media pipeline is prerolling
      
      
        media pipeline is prerolled
      
      
        media is suspended
      
      
        media pipeline is in error
      
    
    
      Function registered with gst_rtsp_stream_transport_set_message_sent()
and called when a message has been sent on the transport.
      
      
        
      
      
        
          user data
          
        
      
    
    
      Function registered with gst_rtsp_stream_transport_set_message_sent_full()
and called when a message has been sent on the transport.
      
      
        
      
      
        
          
        
        
          user data
          
        
      
    
    
      Creates a #GstRTSPMediaFactory object for a given url.
      
      
        Make a new mount points object.
        
        
          a new #GstRTSPMountPoints
          
        
      
      
        Make a path string from @url.
        
        
          a path string for @url, g_free() after usage.
          
        
        
          
            a #GstRTSPMountPoints
            
          
          
            a #GstRTSPUrl
            
          
        
      
      
        Attach @factory to the mount point @path in @mounts.
@path is either of the form (/node)+ or the root path '/'. (An empty path is
not allowed.) Any previous mount point will be freed.
Ownership is taken of the reference on @factory so that @factory should not be
used after calling this function.
        
        
          
        
        
          
            a #GstRTSPMountPoints
            
          
          
            a mount point
            
          
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Make a path string from @url.
        
        
          a path string for @url, g_free() after usage.
          
        
        
          
            a #GstRTSPMountPoints
            
          
          
            a #GstRTSPUrl
            
          
        
      
      
        Find the factory in @mounts that has the longest match with @path.
If @matched is %NULL, @path will match the factory exactly otherwise
the amount of characters that matched is returned in @matched.
        
        
          the #GstRTSPMediaFactory for @path.
g_object_unref() after usage.
          
        
        
          
            a #GstRTSPMountPoints
            
          
          
            a mount point
            
          
          
            the amount of @path matched
            
          
        
      
      
        Remove the #GstRTSPMediaFactory associated with @path in @mounts.
        
        
          
        
        
          
            a #GstRTSPMountPoints
            
          
          
            a mount point
            
          
        
      
      
        
      
      
        
      
      
        
          
        
      
    
    
      The class for the media mounts object.
      
      
        
      
      
        
          
          
            a path string for @url, g_free() after usage.
            
          
          
            
              a #GstRTSPMountPoints
              
            
            
              a #GstRTSPUrl
              
            
          
        
      
      
        
          
        
      
    
    
      
    
    
      
      
        Create a new #GstRTSPOnvifClient instance.
        
        
          a new #GstRTSPOnvifClient
          
        
      
      
        
      
      
        
          
        
      
    
    
      
      
        
      
      
        
          
        
      
    
    
      
      
        Find the ONVIF backchannel depayloader element. It should be named
'depay_backchannel', be placed in a bin called 'onvif-backchannel'
and return all supported RTP caps on a caps query. Complete RTP caps with
at least the payload type, clock-rate and encoding-name are required.
A new #GstRTSPStream is created for the backchannel if found.
        
        
          %TRUE if a backchannel stream could be found and created
          
        
        
          
            a #GstRTSPOnvifMedia
            
          
        
      
      
        Get the configured/supported bandwidth of the ONVIF backchannel pipeline in
bits per second.
        
        
          the configured/supported backchannel bandwidth.
          
        
        
          
            a #GstRTSPMedia
            
          
        
      
      
        Set the configured/supported bandwidth of the ONVIF backchannel pipeline in
bits per second.
        
        
          
        
        
          
            a #GstRTSPMedia
            
          
          
            the bandwidth in bits per second
            
          
        
      
      
        
      
      
        
      
      
        
          
        
      
    
    
      
      
        
      
      
        
          
        
      
    
    
      
      
        Create a new #GstRTSPOnvifMediaFactory
        
        
          A new #GstRTSPOnvifMediaFactory
          
        
      
      
        Checks whether the client request requires backchannel.
        
        
          %TRUE if the client request requires backchannel.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            
          
        
      
      
        Returns %TRUE if an ONVIF backchannel is supported by the media factory.
        
        
          %TRUE if an ONVIF backchannel is supported by the media factory.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get the configured/supported bandwidth of the ONVIF backchannel pipeline in
bits per second.
        
        
          the configured/supported backchannel bandwidth.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Get the gst_parse_launch() pipeline description that will be used in the
default prepare vmethod for generating the ONVIF backchannel pipeline.
        
        
          the configured backchannel launch description. g_free() after
usage.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        Returns %TRUE if an ONVIF backchannel is supported by the media factory.
        
        
          %TRUE if an ONVIF backchannel is supported by the media factory.
          
        
        
          
            a #GstRTSPMediaFactory
            
          
        
      
      
        
        
          %TRUE if ONVIF replay is supported by the media factory.
          
        
        
          
            
          
        
      
      
        Set the configured/supported bandwidth of the ONVIF backchannel pipeline in
bits per second.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the bandwidth in bits per second
            
          
        
      
      
        The gst_parse_launch() line to use for constructing the ONVIF backchannel
pipeline in the default prepare vmethod if requested by the client.
The pipeline description should return a GstBin as the toplevel element
which can be accomplished by enclosing the description with brackets '('
')'.
The description should return a pipeline with a single depayloader named
depay_backchannel. A caps query on the depayloader's sinkpad should return
all possible, complete RTP caps that are going to be supported. At least
the payload type, clock-rate and encoding-name need to be specified.
Note: The pipeline part passed here must end in sinks that are not waiting
until pre-rolling before reaching the PAUSED state, i.e. setting
async=false on #GstBaseSink. Otherwise the whole media will not be able to
prepare.
        
        
          
        
        
          
            a #GstRTSPMediaFactory
            
          
          
            the launch description
            
          
        
      
      
        Set to %TRUE if ONVIF replay is supported by the media factory.
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
      
      
        
      
      
        
          
        
      
    
    
      
      
        
      
      
        
          
          
            %TRUE if an ONVIF backchannel is supported by the media factory.
            
          
          
            
              a #GstRTSPMediaFactory
              
            
          
        
      
      
        
          
        
      
    
    
      
    
    
      
    
    
      
      
        Create a new #GstRTSPOnvifServer instance.
        
        
          a new #GstRTSPOnvifServer
          
        
      
      
        
      
      
        
          
        
      
    
    
      
      
        
      
      
        
          
        
      
    
    
      The opaque permissions structure. It is used to define the permissions
of objects in different roles.
      
      
        
      
      
        Create a new empty Authorization permissions.
        
        
          a new empty authorization permissions.
          
        
      
      
        Add a new @permission for @role to @permissions with the access in @allowed.
        
        
          
        
        
          
            a #GstRTSPPermissions
            
          
          
            a role
            
          
          
            the permission
            
          
          
            whether the role has this permission or not
            
          
        
      
      
        Add a new @role to @permissions with the given variables. The fields
are the same layout as gst_structure_new().
        
        
          
        
        
          
            a #GstRTSPPermissions
            
          
          
            a role
            
          
          
            the first field name
            
          
          
            additional arguments
            
          
        
      
      
        Add a new @role to @permissions without any permissions. You can add
permissions for the role with gst_rtsp_permissions_add_permission_for_role().
        
        
          
        
        
          
            a #GstRTSPPermissions
            
          
          
            a role
            
          
        
      
      
        Add a new role to @permissions based on @structure, for example
given a role named `tester`, which should be granted a permission named
`permission1`, the structure could be created with:
```
gst_structure_new ("tester", "permission1", G_TYPE_BOOLEAN, TRUE, NULL);
```
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Add a new @role to @permissions with the given variables. Structure fields
are set according to the varargs in a manner similar to gst_structure_new().
        
        
          
        
        
          
            a #GstRTSPPermissions
            
          
          
            a role
            
          
          
            the first field name
            
          
          
            additional fields to add
            
          
        
      
      
        Get all permissions for @role in @permissions.
        
        
          the structure with permissions for @role. It
remains valid for as long as @permissions is valid.
          
        
        
          
            a #GstRTSPPermissions
            
          
          
            a role
            
          
        
      
      
        Check if @role in @permissions is given permission for @permission.
        
        
          %TRUE if @role is allowed @permission.
          
        
        
          
            a #GstRTSPPermissions
            
          
          
            a role
            
          
          
            a permission
            
          
        
      
      
        Remove all permissions for @role in @permissions.
        
        
          
        
        
          
            a #GstRTSPPermissions
            
          
          
            a role
            
          
        
      
    
    
      Whether the clock and possibly RTP/clock offset should be published according to RFC7273.
      
        Publish nothing
      
      
        Publish the clock but not the offset
      
      
        Publish the clock and offset
      
    
    
      Function registered with gst_rtsp_stream_transport_set_callbacks() and
called when @buffer must be sent on @channel.
      
      
        %TRUE on success
        
      
      
        
          a #GstBuffer
          
        
        
          a channel
          
        
        
          user data
          
        
      
    
    
      Function registered with gst_rtsp_stream_transport_set_callbacks() and
called when @buffer_list must be sent on @channel.
      
      
        %TRUE on success
        
      
      
        
          a #GstBufferList
          
        
        
          a channel
          
        
        
          user data
          
        
      
    
    
      This object listens on a port, creates and manages the clients connected to
it.
      
      
        Create a new #GstRTSPServer instance.
        
        
          a new #GstRTSPServer
          
        
      
      
        A default #GSocketSourceFunc that creates a new #GstRTSPClient to accept and handle a
new connection on @socket or @server.
        
        
          TRUE if the source could be connected, FALSE if an error occurred.
          
        
        
          
            a #GSocket
            
          
          
            the condition on @source
            
          
          
            a #GstRTSPServer
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
        
      
      
        Attaches @server to @context. When the mainloop for @context is run, the
server will be dispatched. When @context is %NULL, the default context will be
used).
This function should be called when the server properties and urls are fully
configured and the server is ready to start.
This takes a reference on @server until the source is destroyed. Note that
if @context is not the default main context as returned by
g_main_context_default() (or %NULL), g_source_remove() cannot be used to
destroy the source. In that case it is recommended to use
gst_rtsp_server_create_source() and attach it to @context manually.
        
        
          the ID (greater than 0) for the source within the GMainContext.
          
        
        
          
            a #GstRTSPServer
            
          
          
            a #GMainContext
            
          
        
      
      
        Call @func for each client managed by @server. The result value of @func
determines what happens to the client. @func will be called with @server
locked so no further actions on @server can be performed from @func.
If @func returns #GST_RTSP_FILTER_REMOVE, the client will be removed from
@server.
If @func returns #GST_RTSP_FILTER_KEEP, the client will remain in @server.
If @func returns #GST_RTSP_FILTER_REF, the client will remain in @server but
will also be added with an additional ref to the result #GList of this
function..
When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for each client.
        
        
          a #GList with all
clients for which @func returned #GST_RTSP_FILTER_REF. After usage, each
element in the #GList should be unreffed before the list is freed.
          
            
          
        
        
          
            a #GstRTSPServer
            
          
          
            a callback
            
          
          
            user data passed to @func
            
          
        
      
      
        Create a #GSocket for @server. The socket will listen on the
configured service.
        
        
          the #GSocket for @server or %NULL when an error
occurred.
          
        
        
          
            a #GstRTSPServer
            
          
          
            a #GCancellable
            
          
        
      
      
        Create a #GSource for @server. The new source will have a default
#GSocketSourceFunc of gst_rtsp_server_io_func().
@cancellable if not %NULL can be used to cancel the source, which will cause
the source to trigger, reporting the current condition (which is likely 0
unless cancellation happened at the same time as a condition change). You can
check for this in the callback using g_cancellable_is_cancelled().
This takes a reference on @server until @source is destroyed.
        
        
          the #GSource for @server or %NULL when an error
occurred. Free with g_source_unref ()
          
        
        
          
            a #GstRTSPServer
            
          
          
            a #GCancellable or %NULL.
            
          
        
      
      
        Get the address on which the server will accept connections.
        
        
          the server address. g_free() after usage.
          
        
        
          
            a #GstRTSPServer
            
          
        
      
      
        Get the #GstRTSPAuth used as the authentication manager of @server.
        
        
          the #GstRTSPAuth of @server. g_object_unref() after
usage.
          
        
        
          
            a #GstRTSPServer
            
          
        
      
      
        The maximum amount of queued requests for the server.
        
        
          the server backlog.
          
        
        
          
            a #GstRTSPServer
            
          
        
      
      
        Get the port number where the server was bound to.
        
        
          the port number
          
        
        
          
            a #GstRTSPServer
            
          
        
      
      
        Get the Content-Length limit of @server.
        
        
          the Content-Length limit.
          
        
        
          
            a #GstRTSPServer
            
          
        
      
      
        Get the #GstRTSPMountPoints used as the mount points of @server.
        
        
          the #GstRTSPMountPoints of @server. g_object_unref() after
usage.
          
        
        
          
            a #GstRTSPServer
            
          
        
      
      
        Get the service on which the server will accept connections.
        
        
          the service. use g_free() after usage.
          
        
        
          
            a #GstRTSPServer
            
          
        
      
      
        Get the #GstRTSPSessionPool used as the session pool of @server.
        
        
          the #GstRTSPSessionPool used for sessions. g_object_unref() after
usage.
          
        
        
          
            a #GstRTSPServer
            
          
        
      
      
        Get the #GstRTSPThreadPool used as the thread pool of @server.
        
        
          the #GstRTSPThreadPool of @server. g_object_unref() after
usage.
          
        
        
          
            a #GstRTSPServer
            
          
        
      
      
        Configure @server to accept connections on the given address.
This function must be called before the server is bound.
        
        
          
        
        
          
            a #GstRTSPServer
            
          
          
            the address
            
          
        
      
      
        configure @auth to be used as the authentication manager of @server.
        
        
          
        
        
          
            a #GstRTSPServer
            
          
          
            a #GstRTSPAuth
            
          
        
      
      
        configure the maximum amount of requests that may be queued for the
server.
This function must be called before the server is bound.
        
        
          
        
        
          
            a #GstRTSPServer
            
          
          
            the backlog
            
          
        
      
      
        Define an appropriate request size limit and reject requests exceeding the
limit.
        
        
          
        
        
          
            a #GstRTSPServer
Configure @server to use the specified Content-Length limit.
            
          
          
            
          
        
      
      
        configure @mounts to be used as the mount points of @server.
        
        
          
        
        
          
            a #GstRTSPServer
            
          
          
            a #GstRTSPMountPoints
            
          
        
      
      
        Configure @server to accept connections on the given service.
@service should be a string containing the service name (see services(5)) or
a string containing a port number between 1 and 65535.
When @service is set to "0", the server will listen on a random free
port. The actual used port can be retrieved with
gst_rtsp_server_get_bound_port().
This function must be called before the server is bound.
        
        
          
        
        
          
            a #GstRTSPServer
            
          
          
            the service
            
          
        
      
      
        configure @pool to be used as the session pool of @server.
        
        
          
        
        
          
            a #GstRTSPServer
            
          
          
            a #GstRTSPSessionPool
            
          
        
      
      
        configure @pool to be used as the thread pool of @server.
        
        
          
        
        
          
            a #GstRTSPServer
            
          
          
            a #GstRTSPThreadPool
            
          
        
      
      
        Take an existing network socket and use it for an RTSP connection. This
is used when transferring a socket from an HTTP server which should be used
as an RTSP over HTTP tunnel. The @initial_buffer contains any remaining data
that the HTTP server read from the socket while parsing the HTTP header.
        
        
          TRUE if all was ok, FALSE if an error occurred.
          
        
        
          
            a #GstRTSPServer
            
          
          
            a network socket
            
          
          
            the IP address of the remote client
            
          
          
            the port used by the other end
            
          
          
            any initial data that was already read from the socket
            
          
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
          
        
      
      
        
          
        
        
          
            
          
        
      
    
    
      The RTSP server class structure
      
      
        
      
      
        
          
          
            
          
          
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
        
      
    
    
      This function will be called by the gst_rtsp_server_client_filter(). An
implementation should return a value of #GstRTSPFilterResult.
When this function returns #GST_RTSP_FILTER_REMOVE, @client will be removed
from @server.
A return value of #GST_RTSP_FILTER_KEEP will leave @client untouched in
@server.
A value of #GST_RTSP_FILTER_REF will add @client to the result #GList of
gst_rtsp_server_client_filter().
      
      
        a #GstRTSPFilterResult.
        
      
      
        
          a #GstRTSPServer object
          
        
        
          a #GstRTSPClient in @server
          
        
        
          user data that has been given to gst_rtsp_server_client_filter()
          
        
      
    
    
      
    
    
      Session information kept by the server for a specific client.
One client session, identified with a session id, can handle multiple medias
identified with the url of a media.
      
      
        Create a new #GstRTSPSession instance with @sessionid.
        
        
          a new #GstRTSPSession
          
        
        
          
            a session id
            
          
        
      
      
        Allow @session to expire. This method must be called an equal
amount of time as gst_rtsp_session_prevent_expire().
        
        
          
        
        
          
            a #GstRTSPSession
            
          
        
      
      
        Gets the session media for @path, increasing its reference count. @matched
will contain the number of matched characters of @path.
        
        
          the configuration for @path in @sess,
should be unreferenced when no longer needed.
          
        
        
          
            a #GstRTSPSession
            
          
          
            the path for the media
            
          
          
            the amount of matched characters
            
          
        
      
      
        Call @func for each media in @sess. The result value of @func determines
what happens to the media. @func will be called with @sess
locked so no further actions on @sess can be performed from @func.
If @func returns #GST_RTSP_FILTER_REMOVE, the media will be removed from
@sess.
If @func returns #GST_RTSP_FILTER_KEEP, the media will remain in @sess.
If @func returns #GST_RTSP_FILTER_REF, the media will remain in @sess but
will also be added with an additional ref to the result #GList of this
function..
When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for all media.
        
        
          a GList with all
media for which @func returned #GST_RTSP_FILTER_REF. After usage, each
element in the #GList should be unreffed before the list is freed.
          
            
          
        
        
          
            a #GstRTSPSession
            
          
          
            a callback
            
          
          
            user data passed to @func
            
          
        
      
      
        Get the string that can be placed in the Session header field.
        
        
          the Session header of @session.
g_free() after usage.
          
        
        
          
            a #GstRTSPSession
            
          
        
      
      
        Gets the session media for @path. @matched will contain the number of matched
characters of @path.
        
        
          the configuration for @path in @sess.
          
        
        
          
            a #GstRTSPSession
            
          
          
            the path for the media
            
          
          
            the amount of matched characters
            
          
        
      
      
        Get the sessionid of @session.
        
        
          the sessionid of @session.
The value remains valid as long as @session is alive.
          
        
        
          
            a #GstRTSPSession
            
          
        
      
      
        Get the timeout value of @session.
        
        
          the timeout of @session in seconds.
          
        
        
          
            a #GstRTSPSession
            
          
        
      
      
        Check if @session timeout out.
        Use gst_rtsp_session_is_expired_usec() instead.
        
        
          %TRUE if @session timed out
          
        
        
          
            a #GstRTSPSession
            
          
          
            the current system time
            
          
        
      
      
        Check if @session timeout out.
        
        
          %TRUE if @session timed out
          
        
        
          
            a #GstRTSPSession
            
          
          
            the current monotonic time
            
          
        
      
      
        Manage the media object @obj in @sess. @path will be used to retrieve this
media from the session with gst_rtsp_session_get_media().
Ownership is taken from @media.
        
        
          a new @GstRTSPSessionMedia object.
          
        
        
          
            a #GstRTSPSession
            
          
          
            the path for the media
            
          
          
            a #GstRTSPMedia
            
          
        
      
      
        Get the amount of milliseconds till the session will expire.
        Use gst_rtsp_session_next_timeout_usec() instead.
        
        
          the amount of milliseconds since the session will time out.
          
        
        
          
            a #GstRTSPSession
            
          
          
            the current system time
            
          
        
      
      
        Get the amount of milliseconds till the session will expire.
        
        
          the amount of milliseconds since the session will time out.
          
        
        
          
            a #GstRTSPSession
            
          
          
            the current monotonic time
            
          
        
      
      
        Prevent @session from expiring.
        
        
          
        
        
          
            a #GstRTSPSession
            
          
        
      
      
        Release the managed @media in @sess, freeing the memory allocated by it.
        
        
          %TRUE if there are more media session left in @sess.
          
        
        
          
            a #GstRTSPSession
            
          
          
            a #GstRTSPMedia
            
          
        
      
      
        Configure @session for a timeout of @timeout seconds. The session will be
cleaned up when there is no activity for @timeout seconds.
        
        
          
        
        
          
            a #GstRTSPSession
            
          
          
            the new timeout
            
          
        
      
      
        Update the last_access time of the session to the current time.
        
        
          
        
        
          
            a #GstRTSPSession
            
          
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
          
        
      
    
    
      
      
        
      
      
        
          
        
      
    
    
      This function will be called by the gst_rtsp_session_filter(). An
implementation should return a value of #GstRTSPFilterResult.
When this function returns #GST_RTSP_FILTER_REMOVE, @media will be removed
from @sess.
A return value of #GST_RTSP_FILTER_KEEP will leave @media untouched in
@sess.
A value of GST_RTSP_FILTER_REF will add @media to the result #GList of
gst_rtsp_session_filter().
      
      
        a #GstRTSPFilterResult.
        
      
      
        
          a #GstRTSPSession object
          
        
        
          a #GstRTSPSessionMedia in @sess
          
        
        
          user data that has been given to gst_rtsp_session_filter()
          
        
      
    
    
      State of a client session regarding a specific media identified by path.
      
      
        Create a new #GstRTSPSessionMedia that manages the streams
in @media for @path. @media should be prepared.
Ownership is taken of @media.
        
        
          a new #GstRTSPSessionMedia.
          
        
        
          
            the path
            
          
          
            the #GstRTSPMedia
            
          
        
      
      
        Fill @range with the next available min and max channels for
interleaved transport.
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPSessionMedia
            
          
          
            a #GstRTSPRange
            
          
        
      
      
        Get the base_time of the #GstRTSPMedia in @media
        
        
          the base_time of the media.
          
        
        
          
            a #GstRTSPSessionMedia
            
          
        
      
      
        Get the #GstRTSPMedia that was used when constructing @media
        
        
          the #GstRTSPMedia of @media.
Remains valid as long as @media is valid.
          
        
        
          
            a #GstRTSPSessionMedia
            
          
        
      
      
        Retrieve the RTP-Info header string for all streams in @media
with configured transports.
        
        
          The RTP-Info as a string or
%NULL when no RTP-Info could be generated, g_free() after usage.
          
        
        
          
            a #GstRTSPSessionMedia
            
          
        
      
      
        Get the current RTSP state of @media.
        
        
          the current RTSP state of @media.
          
        
        
          
            a #GstRTSPSessionMedia
            
          
        
      
      
        Get a previously created #GstRTSPStreamTransport for the stream at @idx.
        
        
          a #GstRTSPStreamTransport that is
valid until the session of @media is unreffed.
          
        
        
          
            a #GstRTSPSessionMedia
            
          
          
            the stream index
            
          
        
      
      
        Get a list of all available #GstRTSPStreamTransport in this session.
        
        
          a
list of #GstRTSPStreamTransport, g_ptr_array_unref () after usage.
          
            
          
        
        
          
            a #GstRTSPSessionMedia
            
          
        
      
      
        Check if the path of @media matches @path. It @path matches, the amount of
matched characters is returned in @matched.
        
        
          %TRUE when @path matches the path of @media.
          
        
        
          
            a #GstRTSPSessionMedia
            
          
          
            a path
            
          
          
            the amount of matched characters of @path
            
          
        
      
      
        Set the RTSP state of @media to @state.
        
        
          
        
        
          
            a #GstRTSPSessionMedia
            
          
          
            a #GstRTSPState
            
          
        
      
      
        Tell the media object @media to change to @state.
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPSessionMedia
            
          
          
            the new state
            
          
        
      
      
        Configure the transport for @stream to @tr in @media.
        
        
          the new or updated #GstRTSPStreamTransport for @stream.
          
        
        
          
            a #GstRTSPSessionMedia
            
          
          
            a #GstRTSPStream
            
          
          
            a #GstRTSPTransport
            
          
        
      
      
        
      
      
        
      
      
        
          
        
      
    
    
      
      
        
      
      
        
          
        
      
    
    
      
    
    
      An object that keeps track of the active sessions. This object is usually
attached to a #GstRTSPServer object to manage the sessions in that server.
      
      
        Create a new #GstRTSPSessionPool instance.
        
        
          A new #GstRTSPSessionPool. g_object_unref() after
usage.
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Inspect all the sessions in @pool and remove the sessions that are inactive
for more than their timeout.
        
        
          the amount of sessions that got removed.
          
        
        
          
            a #GstRTSPSessionPool
            
          
        
      
      
        Create a new #GstRTSPSession object in @pool.
        
        
          a new #GstRTSPSession.
          
        
        
          
            a #GstRTSPSessionPool
            
          
        
      
      
        Create a #GSource that will be dispatched when the session should be cleaned
up.
        
        
          a #GSource
          
        
        
          
            a #GstRTSPSessionPool
            
          
        
      
      
        Call @func for each session in @pool. The result value of @func determines
what happens to the session. @func will be called with the session pool
locked so no further actions on @pool can be performed from @func.
If @func returns #GST_RTSP_FILTER_REMOVE, the session will be set to the
expired state and removed from @pool.
If @func returns #GST_RTSP_FILTER_KEEP, the session will remain in @pool.
If @func returns #GST_RTSP_FILTER_REF, the session will remain in @pool but
will also be added with an additional ref to the result GList of this
function..
When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for all sessions.
        
        
          a GList with all
sessions for which @func returned #GST_RTSP_FILTER_REF. After usage, each
element in the GList should be unreffed before the list is freed.
          
            
          
        
        
          
            a #GstRTSPSessionPool
            
          
          
            a callback
            
          
          
            user data passed to @func
            
          
        
      
      
        Find the session with @sessionid in @pool. The access time of the session
will be updated with gst_rtsp_session_touch().
        
        
          the #GstRTSPSession with @sessionid
or %NULL when the session did not exist. g_object_unref() after usage.
          
        
        
          
            the pool to search
            
          
          
            the session id
            
          
        
      
      
        Get the maximum allowed number of sessions in @pool. 0 means an unlimited
amount of sessions.
        
        
          the maximum allowed number of sessions.
          
        
        
          
            a #GstRTSPSessionPool
            
          
        
      
      
        Get the amount of active sessions in @pool.
        
        
          the amount of active sessions in @pool.
          
        
        
          
            a #GstRTSPSessionPool
            
          
        
      
      
        Remove @sess from @pool, releasing the ref that the pool has on @sess.
        
        
          %TRUE if the session was found and removed.
          
        
        
          
            a #GstRTSPSessionPool
            
          
          
            a #GstRTSPSession
            
          
        
      
      
        Configure the maximum allowed number of sessions in @pool to @max.
A value of 0 means an unlimited amount of sessions.
        
        
          
        
        
          
            a #GstRTSPSessionPool
            
          
          
            the maximum number of sessions
            
          
        
      
      
        
      
      
        
      
      
        
      
      
        
          
        
      
      
        
          
        
        
          
            
          
        
      
    
    
      
      
        
      
      
        
          
          
            
          
          
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
        
      
    
    
      This function will be called by the gst_rtsp_session_pool_filter(). An
implementation should return a value of #GstRTSPFilterResult.
When this function returns #GST_RTSP_FILTER_REMOVE, @session will be removed
from @pool.
A return value of #GST_RTSP_FILTER_KEEP will leave @session untouched in
@pool.
A value of GST_RTSP_FILTER_REF will add @session to the result #GList of
gst_rtsp_session_pool_filter().
      
      
        a #GstRTSPFilterResult.
        
      
      
        
          a #GstRTSPSessionPool object
          
        
        
          a #GstRTSPSession in @pool
          
        
        
          user data that has been given to gst_rtsp_session_pool_filter()
          
        
      
    
    
      The function that will be called from the GSource watch on the session pool.
The function will be called when the pool must be cleaned up because one or
more sessions timed out.
      
      
        %FALSE if the source should be removed.
        
      
      
        
          a #GstRTSPSessionPool object
          
        
        
          user data that has been given when registering the handler
          
        
      
    
    
      
    
    
      
    
    
      The definition of a media stream.
      
      
        Create a new media stream with index @idx that handles RTP data on
@pad and has a payloader element @payloader if @pad is a source pad
or a depayloader element @payloader if @pad is a sink pad.
        
        
          a new #GstRTSPStream
          
        
        
          
            an index
            
          
          
            a #GstElement
            
          
          
            a #GstPad
            
          
        
      
      
        Add multicast client address to stream. At this point, the sockets that
will stream RTP and RTCP data to @destination are supposed to be
allocated.
        
        
          %TRUE if @destination can be addedd and handled by @stream.
          
        
        
          
            a #GstRTSPStream
            
          
          
            a multicast address to add
            
          
          
            RTP port
            
          
          
            RTCP port
            
          
          
            socket family
            
          
        
      
      
        Add the transport in @trans to @stream. The media of @stream will
then also be send to the values configured in @trans. Adding the
same transport twice will not add it a second time.
@stream must be joined to a bin.
@trans must contain a valid #GstRTSPTransport.
        
        
          %TRUE if @trans was added
          
        
        
          
            a #GstRTSPStream
            
          
          
            a #GstRTSPStreamTransport
            
          
        
      
      
        Allocates RTP and RTCP ports.
        
        
          %TRUE if the RTP and RTCP sockets have been succeccully allocated.
          
        
        
          
            a #GstRTSPStream
            
          
          
            protocol family
            
          
          
            transport method
            
          
          
            Whether to use client settings or not
            
          
        
      
      
        Add a receiver and sender part to the pipeline based on the transport from
SETUP.
        
        
          %TRUE if the stream has been successfully updated.
          
        
        
          
            a #GstRTSPStream
            
          
          
            a #GstRTSPTransport
            
          
        
      
      
        Get the #GstRTSPAddressPool used as the address pool of @stream.
        
        
          the #GstRTSPAddressPool of @stream.
g_object_unref() after usage.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Get the size of the UDP transmission buffer (in bytes)
        
        
          the size of the UDP TX buffer
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Retrieve the current caps of @stream.
        
        
          the #GstCaps of @stream.
use gst_caps_unref() after usage.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Get the control string to identify this stream.
        
        
          the control string. g_free() after usage.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        
        
          
        
        
          
            
          
        
      
      
        Get the configured DSCP QoS in of the outgoing sockets.
        
        
          the DSCP QoS value of the outgoing sockets, or -1 if disbled.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Get the stream index.
        
        
          the stream index.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Get the previous joined bin with gst_rtsp_stream_join_bin() or NULL.
        
        
          the joined bin or NULL.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Get the the maximum time-to-live value of outgoing multicast packets.
        
        
          the maximum time-to-live value of outgoing multicast packets.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Get the configured MTU in the payloader of @stream.
        
        
          the MTU of the payloader.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Get the multicast address of @stream for @family. The original
#GstRTSPAddress is cached and copy is returned, so freeing the return value
won't release the address from the pool.
        
        
          the #GstRTSPAddress of @stream
or %NULL when no address could be allocated. gst_rtsp_address_free()
after usage.
          
        
        
          
            a #GstRTSPStream
            
          
          
            the #GSocketFamily
            
          
        
      
      
        Get all multicast client addresses that RTP data will be sent to
        
        
          A comma separated list of host:port pairs with destinations
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Get the multicast interface used for @stream.
        
        
          the multicast interface for @stream.
g_free() after usage.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Get the allowed profiles of @stream.
        
        
          a #GstRTSPProfile
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Get the allowed protocols of @stream.
        
        
          a #GstRTSPLowerTrans
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Get the stream payload type.
        
        
          the stream payload type.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Gets if and how the stream clock should be published according to RFC7273.
        
        
          The GstRTSPPublishClockMode
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        
        
          whether @stream will follow the Rate-Control=no behaviour as specified
in the ONVIF replay spec.
          
        
        
          
            
          
        
      
      
        Retrieve the current rate and/or applied_rate.
        
        
          %TRUE if rate and/or applied_rate could be determined.
          
        
        
          
            a #GstRTSPStream
            
          
          
            the configured rate
            
          
          
            the configured applied_rate
            
          
        
      
      
        Get the payload-type used for retransmission of this stream
        
        
          The retransmission PT.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Get the amount of time to store retransmission data.
        
        
          the amount of time to store retransmission data.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Get the multicast RTCP socket from @stream for a @family.
        
        
          the multicast RTCP socket or %NULL if no
socket could be allocated for @family. Unref after usage
          
        
        
          
            a #GstRTSPStream
            
          
          
            the socket family
            
          
        
      
      
        Get the RTCP socket from @stream for a @family.
@stream must be joined to a bin.
        
        
          the RTCP socket or %NULL if no
socket could be allocated for @family. Unref after usage
          
        
        
          
            a #GstRTSPStream
            
          
          
            the socket family
            
          
        
      
      
        Get the multicast RTP socket from @stream for a @family.
        
        
          the multicast RTP socket or %NULL if no
socket could be allocated for @family. Unref after usage
          
        
        
          
            a #GstRTSPStream
            
          
          
            the socket family
            
          
        
      
      
        Get the RTP socket from @stream for a @family.
@stream must be joined to a bin.
        
        
          the RTP socket or %NULL if no
socket could be allocated for @family. Unref after usage
          
        
        
          
            a #GstRTSPStream
            
          
          
            the socket family
            
          
        
      
      
        Retrieve the current rtptime, seq and running-time. This is used to
construct a RTPInfo reply header.
        
        
          %TRUE when rtptime, seq and running-time could be determined.
          
        
        
          
            a #GstRTSPStream
            
          
          
            result RTP timestamp
            
          
          
            result RTP seqnum
            
          
          
            the clock rate
            
          
          
            result running-time
            
          
        
      
      
        Get the RTP session of this stream.
        
        
          The RTP session of this stream. Unref after usage.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Fill @server_port with the port pair used by the server. This function can
only be called when @stream has been joined.
        
        
          
        
        
          
            a #GstRTSPStream
            
          
          
            result server port
            
          
          
            the port family to get
            
          
        
      
      
        Get the sinkpad associated with @stream.
        
        
          the sinkpad. Unref after usage.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Get the srcpad associated with @stream.
        
        
          the srcpad. Unref after usage.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Get the SRTP encoder for this stream.
        
        
          The SRTP encoder for this stream. Unref after usage.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Get the SSRC used by the RTP session of this stream. This function can only
be called when @stream has been joined.
        
        
          
        
        
          
            a #GstRTSPStream
            
          
          
            result ssrc
            
          
        
      
      
        
        
          
        
        
          
            
          
        
      
      
        
        
          the amount of redundancy applied when creating ULPFEC
protection packets.
          
        
        
          
            
          
        
      
      
        
        
          the payload type used for ULPFEC protection packets
          
        
        
          
            
          
        
      
      
        Parse and handle a KeyMgmt header.
        
        
          
        
        
          
            a #GstRTSPStream
            
          
          
            a keymgmt header
            
          
        
      
      
        Check if @stream has the control string @control.
        
        
          %TRUE is @stream has @control as the control string
          
        
        
          
            a #GstRTSPStream
            
          
          
            a control string
            
          
        
      
      
        Check if multicast sockets are configured to be bound to multicast addresses.
        
        
          %TRUE if multicast sockets are configured to be bound to multicast addresses.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Check if @stream is blocking on a #GstBuffer.
        
        
          %TRUE if @stream is blocking
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        See gst_rtsp_stream_set_client_side()
        
        
          TRUE if this #GstRTSPStream is client-side.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Checks whether the stream is complete, contains the receiver and the sender
parts. As the stream contains sink(s) element(s), it's possible to perform
seek operations on it.
        
        
          %TRUE if the stream contains at least one sink element.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Checks whether the stream is a receiver.
        
        
          %TRUE if the stream is a receiver and %FALSE otherwise.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Checks whether the stream is a sender.
        
        
          %TRUE if the stream is a sender and %FALSE otherwise.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        Check if @transport can be handled by stream
        
        
          %TRUE if @transport can be handled by @stream.
          
        
        
          
            a #GstRTSPStream
            
          
          
            a #GstRTSPTransport
            
          
        
      
      
        Join the #GstBin @bin that contains the element @rtpbin.
@stream will link to @rtpbin, which must be inside @bin. The elements
added to @bin will be set to the state given in @state.
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPStream
            
          
          
            a #GstBin to join
            
          
          
            a rtpbin element in @bin
            
          
          
            the target state of the new elements
            
          
        
      
      
        Remove the elements of @stream from @bin.
        
        
          %TRUE on success.
          
        
        
          
            a #GstRTSPStream
            
          
          
            a #GstBin
            
          
          
            a rtpbin #GstElement
            
          
        
      
      
        Query the position of the stream in %GST_FORMAT_TIME. This only considers
the RTP parts of the pipeline and not the RTCP parts.
        
        
          %TRUE if the position could be queried
          
        
        
          
            a #GstRTSPStream
            
          
          
            current position of a #GstRTSPStream
            
          
        
      
      
        Query the stop of the stream in %GST_FORMAT_TIME. This only considers
the RTP parts of the pipeline and not the RTCP parts.
        
        
          %TRUE if the stop could be queried
          
        
        
          
            a #GstRTSPStream
            
          
          
            current stop of a #GstRTSPStream
            
          
        
      
      
        Handle an RTCP buffer for the stream. This method is usually called when a
message has been received from a client using the TCP transport.
This function takes ownership of @buffer.
        
        
          a GstFlowReturn.
          
        
        
          
            a #GstRTSPStream
            
          
          
            a #GstBuffer
            
          
        
      
      
        Handle an RTP buffer for the stream. This method is usually called when a
message has been received from a client using the TCP transport.
This function takes ownership of @buffer.
        
        
          a GstFlowReturn.
          
        
        
          
            a #GstRTSPStream
            
          
          
            a #GstBuffer
            
          
        
      
      
        Remove the transport in @trans from @stream. The media of @stream will
not be sent to the values configured in @trans.
@stream must be joined to a bin.
@trans must contain a valid #GstRTSPTransport.
        
        
          %TRUE if @trans was removed
          
        
        
          
            a #GstRTSPStream
            
          
          
            a #GstRTSPStreamTransport
            
          
        
      
      
        Creating a rtxreceive bin
        
        
          a #GstElement.
          
        
        
          
            a #GstRTSPStream
            
          
          
            the session id
            
          
        
      
      
        Creating a rtxsend bin
        
        
          a #GstElement.
          
        
        
          
            a #GstRTSPStream
            
          
          
            the session id
            
          
        
      
      
        Creating a rtpulpfecdec element
        
        
          a #GstElement.
          
        
        
          
            
          
          
            
          
          
            
          
        
      
      
        Creating a rtpulpfecenc element
        
        
          a #GstElement.
          
        
        
          
            
          
          
            
          
        
      
      
        Reserve @address and @port as the address and port of @stream. The original
#GstRTSPAddress is cached and copy is returned, so freeing the return value
won't release the address from the pool.
        
        
          the #GstRTSPAddress of @stream or %NULL when
the address could not be reserved. gst_rtsp_address_free() after
usage.
          
        
        
          
            a #GstRTSPStream
            
          
          
            an address
            
          
          
            a port
            
          
          
            n_ports
            
          
          
            a TTL
            
          
        
      
      
        Checks whether the individual @stream is seekable.
        
        
          %TRUE if @stream is seekable, else %FALSE.
          
        
        
          
            a #GstRTSPStream
            
          
        
      
      
        configure @pool to be used as the address pool of @stream.
        
        
          
        
        
          
            a #GstRTSPStream
            
          
          
            a #GstRTSPAddressPool
            
          
        
      
      
        Decide whether the multicast socket should be bound to a multicast address or
INADDR_ANY.
        
        
          
        
        
          
            a #GstRTSPStream,
            
          
          
            the new value
            
          
        
      
      
        Blocks or unblocks the dataflow on @stream.
        
        
          %TRUE on success
          
        
        
          
            a #GstRTSPStream
            
          
          
            boolean indicating we should block or unblock
            
          
        
      
      
        Set the size of the UDP transmission buffer (in bytes)
Needs to be set before the stream is joined to a bin.
        
        
          
        
        
          
            a #GstRTSPStream
            
          
          
            the buffer size
            
          
        
      
      
        Sets the #GstRTSPStream as a 'client side' stream - used for sending
streams to an RTSP server via RECORD. This has the practical effect
of changing which UDP port numbers are used when setting up the local
side of the stream sending to be either the 'server' or 'client' pair
of a configured UDP transport.
        
        
          
        
        
          
            a #GstRTSPStream
            
          
          
            TRUE if this #GstRTSPStream is running on the 'client' side of
an RTSP connection.
            
          
        
      
      
        Set the control string in @stream.
        
        
          
        
        
          
            a #GstRTSPStream
            
          
          
            a control string
            
          
        
      
      
        Configure the dscp qos of the outgoing sockets to @dscp_qos.
        
        
          
        
        
          
            a #GstRTSPStream
            
          
          
            a new dscp qos value (0-63, or -1 to disable)
            
          
        
      
      
        Set the maximum time-to-live value of outgoing multicast packets.
        
        
          %TRUE if the requested ttl has been set successfully.
          
        
        
          
            a #GstRTSPStream
            
          
          
            the new multicast ttl value
            
          
        
      
      
        Configure the mtu in the payloader of @stream to @mtu.
        
        
          
        
        
          
            a #GstRTSPStream
            
          
          
            a new MTU
            
          
        
      
      
        configure @multicast_iface to be used for @stream.
        
        
          
        
        
          
            a #GstRTSPStream
            
          
          
            a multicast interface name
            
          
        
      
      
        Configure the allowed profiles for @stream.
        
        
          
        
        
          
            a #GstRTSPStream
            
          
          
            the new profiles
            
          
        
      
      
        Configure the allowed lower transport for @stream.
        
        
          
        
        
          
            a #GstRTSPStream
            
          
          
            the new flags
            
          
        
      
      
        Configure a pt map between @pt and @caps.
        
        
          
        
        
          
            a #GstRTSPStream
            
          
          
            the pt
            
          
          
            a #GstCaps
            
          
        
      
      
        Sets if and how the stream clock should be published according to RFC7273.
        
        
          
        
        
          
            a #GstRTSPStream
            
          
          
            the clock publish mode
            
          
        
      
      
        Define whether @stream will follow the Rate-Control=no behaviour as specified
in the ONVIF replay spec.
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Set the payload type (pt) for retransmission of this stream.
        
        
          
        
        
          
            a #GstRTSPStream
            
          
          
            a #guint
            
          
        
      
      
        Set the amount of time to store retransmission packets.
        
        
          
        
        
          
            a #GstRTSPStream
            
          
          
            a #GstClockTime
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Sets the amount of redundancy to apply when creating ULPFEC
protection packets.
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Set the payload type to be used for ULPFEC protection packets
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Call @func for each transport managed by @stream. The result value of @func
determines what happens to the transport. @func will be called with @stream
locked so no further actions on @stream can be performed from @func.
If @func returns #GST_RTSP_FILTER_REMOVE, the transport will be removed from
@stream.
If @func returns #GST_RTSP_FILTER_KEEP, the transport will remain in @stream.
If @func returns #GST_RTSP_FILTER_REF, the transport will remain in @stream but
will also be added with an additional ref to the result #GList of this
function..
When @func is %NULL, #GST_RTSP_FILTER_REF will be assumed for each transport.
        
        
          a #GList with all
transports for which @func returned #GST_RTSP_FILTER_REF. After usage, each
element in the #GList should be unreffed before the list is freed.
          
            
          
        
        
          
            a #GstRTSPStream
            
          
          
            a callback
            
          
          
            user data passed to @func
            
          
        
      
      
        
        
          
        
        
          
            
          
        
      
      
        Remove blocking probe from the RTCP source. When creating an UDP source for
RTCP it is initially blocked until this function is called.
This functions should be called once the pipeline is ready for handling RTCP
packets.
        
        
          
        
        
          
            
          
        
      
      
        Update the new crypto information for @ssrc in @stream. If information
for @ssrc did not exist, it will be added. If information
for @ssrc existed, it will be replaced. If @crypto is %NULL, it will
be removed from @stream.
        
        
          %TRUE if @crypto could be updated
          
        
        
          
            a #GstRTSPStream
            
          
          
            the SSRC
            
          
          
            a #GstCaps with crypto info
            
          
        
      
      
        Check if the requested multicast ttl value is allowed.
        
        
          TRUE if the requested ttl value is allowed.
          
        
        
          
            a #GstRTSPStream
            
          
          
            a requested multicast ttl
            
          
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
          
        
      
      
        
          
        
        
          
            
          
        
      
      
        
          
        
        
          
            
          
        
      
      
        
          
        
        
          
            
          
        
      
    
    
      
      
        
      
      
        
          
        
      
    
    
      
    
    
      A Transport description for a stream
      
      
        Create a new #GstRTSPStreamTransport that can be used to manage
@stream with transport @tr.
        
        
          a new #GstRTSPStreamTransport
          
        
        
          
            a #GstRTSPStream
            
          
          
            a GstRTSPTransport
            
          
        
      
      
        Get the RTP-Info string for @trans and @start_time.
        
        
          the RTPInfo string for @trans
and @start_time or %NULL when the RTP-Info could not be
determined. g_free() after usage.
          
        
        
          
            a #GstRTSPStreamTransport
            
          
          
            a star time
            
          
        
      
      
        Get the #GstRTSPStream used when constructing @trans.
        
        
          the stream used when constructing @trans.
          
        
        
          
            a #GstRTSPStreamTransport
            
          
        
      
      
        Get the transport configured in @trans.
        
        
          the transport configured in @trans. It remains
valid for as long as @trans is valid.
          
        
        
          
            a #GstRTSPStreamTransport
            
          
        
      
      
        Get the url configured in @trans.
        
        
          the url configured in @trans.
It remains valid for as long as @trans is valid.
          
        
        
          
            a #GstRTSPStreamTransport
            
          
        
      
      
        Check if @trans is timed out.
        
        
          %TRUE if @trans timed out.
          
        
        
          
            a #GstRTSPStreamTransport
            
          
        
      
      
        Signal the installed keep_alive callback for @trans.
        
        
          
        
        
          
            a #GstRTSPStreamTransport
            
          
        
      
      
        Signal the installed message_sent / message_sent_full callback for @trans.
        
        
          
        
        
          
            a #GstRTSPStreamTransport
            
          
        
      
      
        Receive @buffer on @channel @trans.
        
        
          a #GstFlowReturn. Returns GST_FLOW_NOT_LINKED when @channel is not
   configured in the transport of @trans.
          
        
        
          
            a #GstRTSPStreamTransport
            
          
          
            a channel
            
          
          
            a #GstBuffer
            
          
        
      
      
        Send @buffer to the installed RTCP callback for @trans.
        
        
          %TRUE on success
          
        
        
          
            a #GstRTSPStreamTransport
            
          
          
            a #GstBuffer
            
          
        
      
      
        Send @buffer_list to the installed RTCP callback for @trans.
        
        
          %TRUE on success
          
        
        
          
            a #GstRTSPStreamTransport
            
          
          
            a #GstBuffer
            
          
        
      
      
        Send @buffer to the installed RTP callback for @trans.
        
        
          %TRUE on success
          
        
        
          
            a #GstRTSPStreamTransport
            
          
          
            a #GstBuffer
            
          
        
      
      
        Send @buffer_list to the installed RTP callback for @trans.
        
        
          %TRUE on success
          
        
        
          
            a #GstRTSPStreamTransport
            
          
          
            a #GstBufferList
            
          
        
      
      
        Activate or deactivate datatransfer configured in @trans.
        
        
          %TRUE when the state was changed.
          
        
        
          
            a #GstRTSPStreamTransport
            
          
          
            new state of @trans
            
          
        
      
      
        Install callbacks that will be called when data for a stream should be sent
to a client. This is usually used when sending RTP/RTCP over TCP.
        
        
          
        
        
          
            a #GstRTSPStreamTransport
            
          
          
            a callback called when RTP should be sent
            
          
          
            a callback called when RTCP should be sent
            
          
          
            user data passed to callbacks
            
          
          
            called with the user_data when no longer needed.
            
          
        
      
      
        Install callbacks that will be called when RTCP packets are received from the
receiver of @trans.
        
        
          
        
        
          
            a #GstRTSPStreamTransport
            
          
          
            a callback called when the receiver is active
            
          
          
            user data passed to callback
            
          
          
            called with the user_data when no longer needed.
            
          
        
      
      
        Install callbacks that will be called when data for a stream should be sent
to a client. This is usually used when sending RTP/RTCP over TCP.
        
        
          
        
        
          
            a #GstRTSPStreamTransport
            
          
          
            a callback called when RTP should be sent
            
          
          
            a callback called when RTCP should be sent
            
          
          
            user data passed to callbacks
            
          
          
            called with the user_data when no longer needed.
            
          
        
      
      
        Install a callback that will be called when a message has been sent on @trans.
        
        
          
        
        
          
            a #GstRTSPStreamTransport
            
          
          
            a callback called when a message has been sent
            
          
          
            user data passed to callback
            
          
          
            called with the user_data when no longer needed
            
          
        
      
      
        Install a callback that will be called when a message has been sent on @trans.
        
        
          
        
        
          
            a #GstRTSPStreamTransport
            
          
          
            a callback called when a message has been sent
            
          
          
            user data passed to callback
            
          
          
            called with the user_data when no longer needed
            
          
        
      
      
        Set the timed out state of @trans to @timedout
        
        
          
        
        
          
            a #GstRTSPStreamTransport
            
          
          
            timed out value
            
          
        
      
      
        Set @tr as the client transport. This function takes ownership of the
passed @tr.
        
        
          
        
        
          
            a #GstRTSPStreamTransport
            
          
          
            a client #GstRTSPTransport
            
          
        
      
      
        Set @url as the client url.
        
        
          
        
        
          
            a #GstRTSPStreamTransport
            
          
          
            a client #GstRTSPUrl
            
          
        
      
      
        parent instance
        
      
      
        
      
      
        
          
        
      
    
    
      
      
        
      
      
        
          
        
      
    
    
      This function will be called by the gst_rtsp_stream_transport_filter(). An
implementation should return a value of #GstRTSPFilterResult.
When this function returns #GST_RTSP_FILTER_REMOVE, @trans will be removed
from @stream.
A return value of #GST_RTSP_FILTER_KEEP will leave @trans untouched in
@stream.
A value of #GST_RTSP_FILTER_REF will add @trans to the result #GList of
gst_rtsp_stream_transport_filter().
      
      
        a #GstRTSPFilterResult.
        
      
      
        
          a #GstRTSPStream object
          
        
        
          a #GstRTSPStreamTransport in @stream
          
        
        
          user data that has been given to gst_rtsp_stream_transport_filter()
          
        
      
    
    
      
    
    
      The suspend mode of the media pipeline. A media pipeline is suspended right
after creating the SDP and when the client performs a PAUSED request.
      
        Media is not suspended
      
      
        Media is PAUSED in suspend
      
      
        The media is set to NULL when suspended
      
    
    
      Structure holding info about a mainloop running in a thread
      
      
        parent #GstMiniObject
        
      
      
        the thread type
        
      
      
        a #GMainContext
        
      
      
        a #GMainLoop
        
      
      
        Create a new thread object that can run a mainloop.
        
        
          a #GstRTSPThread.
          
        
        
          
            the thread type
            
          
        
      
      
        Reuse the mainloop of @thread
        
        
          %TRUE if the mainloop could be reused
          
        
        
          
            a #GstRTSPThread
            
          
        
      
      
        Stop and unref @thread. When no threads are using the mainloop, the thread
will be stopped and the final ref to @thread will be released.
        
        
          
        
        
          
            a #GstRTSPThread
            
          
        
      
    
    
      The thread pool structure.
      
      
        Create a new #GstRTSPThreadPool instance.
        
        
          a new #GstRTSPThreadPool
          
        
      
      
        Wait for all tasks to be stopped and free all allocated resources. This is
mainly used in test suites to ensure proper cleanup of internal data
structures.
        
        
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
          
            
          
        
      
      
        Get a new #GstRTSPThread for @type and @ctx.
        
        
          a new #GstRTSPThread,
gst_rtsp_thread_stop() after usage
          
        
        
          
            a #GstRTSPThreadPool
            
          
          
            the #GstRTSPThreadType
            
          
          
            a #GstRTSPContext
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        
        
          
        
        
          
            
          
          
            
          
        
      
      
        Get the maximum number of threads used for client connections.
See gst_rtsp_thread_pool_set_max_threads().
        
        
          the maximum number of threads.
          
        
        
          
            a #GstRTSPThreadPool
            
          
        
      
      
        Get a new #GstRTSPThread for @type and @ctx.
        
        
          a new #GstRTSPThread,
gst_rtsp_thread_stop() after usage
          
        
        
          
            a #GstRTSPThreadPool
            
          
          
            the #GstRTSPThreadType
            
          
          
            a #GstRTSPContext
            
          
        
      
      
        Set the maximum threads used by the pool to handle client requests.
A value of 0 will use the pool mainloop, a value of -1 will use an
unlimited number of threads.
        
        
          
        
        
          
            a #GstRTSPThreadPool
            
          
          
            maximum threads
            
          
        
      
      
        
      
      
        
      
      
        
      
      
        
          
        
      
    
    
      Class for managing threads.
      
      
        
      
      
        a #GThreadPool used internally
        
      
      
        
          
          
            a new #GstRTSPThread,
gst_rtsp_thread_stop() after usage
            
          
          
            
              a #GstRTSPThreadPool
              
            
            
              the #GstRTSPThreadType
              
            
            
              a #GstRTSPContext
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
          
            
          
          
            
              
            
            
              
            
          
        
      
      
        
          
        
      
    
    
      
    
    
      Different thread types
      
      
        a thread to handle the client communication
      
      
        a thread to handle media
      
    
    
      An opaque object used for checking authorisations.
It is generated after successful authentication.
      
      
        
      
      
        Create a new Authorization token with the given fieldnames and values.
Arguments are given similar to gst_structure_new().
        
        
          a new authorization token.
          
        
        
          
            the first fieldname
            
          
          
            additional arguments
            
          
        
      
      
        Create a new empty Authorization token.
        
        
          a new empty authorization token.
          
        
      
      
        Create a new Authorization token with the given fieldnames and values.
Arguments are given similar to gst_structure_new_valist().
        
        
          a new authorization token.
          
        
        
          
            the first fieldname
            
          
          
            additional arguments
            
          
        
      
      
        Get the string value of @field in @token.
        
        
          the string value of @field in
@token or %NULL when @field is not defined in @token. The string
becomes invalid when you free @token.
          
        
        
          
            a #GstRTSPToken
            
          
          
            a field name
            
          
        
      
      
        Access the structure of the token.
        
        
          The structure of the token. The structure is still
owned by the token, which means that you should not free it and that the
pointer becomes invalid when you free the token.
MT safe.
          
        
        
          
            The #GstRTSPToken.
            
          
        
      
      
        Check if @token has a boolean @field and if it is set to %TRUE.
        
        
          %TRUE if @token has a boolean field named @field set to %TRUE.
          
        
        
          
            a #GstRTSPToken
            
          
          
            a field name
            
          
        
      
      
        Sets a boolean value on @token.
        
        
          
        
        
          
            The #GstRTSPToken.
            
          
          
            field to set
            
          
          
            boolean value to set
            
          
        
      
      
        Sets a string value on @token.
        
        
          
        
        
          
            The #GstRTSPToken.
            
          
          
            field to set
            
          
          
            string value to set
            
          
        
      
      
        Get a writable version of the structure.
        
        
          The structure of the token. The structure is still
owned by the token, which means that you should not free it and that the
pointer becomes invalid when you free the token. This function ensures
that @token is writable, and if so, will never return %NULL.
MT safe.
          
        
        
          
            A writable #GstRTSPToken.
            
          
        
      
    
    
      The supported modes of the media.
      
        Transport supports PLAY mode
      
      
        Transport supports RECORD mode
      
    
    
      
      
        
        
      
    
    
      Used with gst_rtsp_address_pool_add_range() to bind to all
IPv4 addresses
      
      
    
    
      Used with gst_rtsp_address_pool_add_range() to bind to all
IPv6 addresses
      
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      Check a new connection
      
      
    
    
      Check if access is allowed to a factory.
When access is not allowed an 404 Not Found is sent in the response.
      
      
    
    
      Check if media can be constructed from a media factory
A response should be sent on error.
      
      
    
    
      Check if the client can specify TTL, destination and
port pair in multicast. No response is sent when the check returns
%FALSE.
      
      
    
    
      Check the URL and methods
      
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      G_TYPE_BOOLEAN, %TRUE if the media can be accessed, %FALSE will
return a 404 Not Found error when trying to access the media.
      
      
    
    
      G_TYPE_BOOLEAN, %TRUE if the media can be constructed, %FALSE will
return a 404 Not Found error when trying to access the media.
      
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      
      
        
        
      
    
    
      G_TYPE_STRING, the role to use when dealing with media factories
The default #GstRTSPAuth object uses this string in the token to find the
role of the media factory. It will then retrieve the #GstRTSPPermissions of
the media factory and retrieve the role with the same name.
      
      
    
    
      G_TYPE_BOOLEAN, %TRUE if the client can specify TTL, destination and
    port pair in multicast.
      
      
    
    
      
      
        
      
      
        
      
    
    
      The #GstRTSPAddressPool is an object that maintains a collection of network
addresses. It is used to allocate server ports and server multicast addresses
but also to reserve client provided destination addresses.
A range of addresses can be added with gst_rtsp_address_pool_add_range().
Both multicast and unicast addresses can be added.
With gst_rtsp_address_pool_acquire_address() an unused address and port range
can be acquired from the pool. With gst_rtsp_address_pool_reserve_address() a
specific address can be retrieved. Both methods return a boxed
#GstRTSPAddress that should be freed with gst_rtsp_address_free() after
usage, which brings the address back into the pool.
Last reviewed on 2013-07-16 (1.0.0)
    
    
      The #GstRTSPAuth object is responsible for checking if the current user is
allowed to perform requested actions. The default implementation has some
reasonable checks but subclasses can implement custom security policies.
A new auth object is made with gst_rtsp_auth_new(). It is usually configured
on the #GstRTSPServer object.
The RTSP server will call gst_rtsp_auth_check() with a string describing the
check to perform. The possible checks are prefixed with
GST_RTSP_AUTH_CHECK_*. Depending on the check, the default implementation
will use the current #GstRTSPToken, #GstRTSPContext and
#GstRTSPPermissions on the object to check if an operation is allowed.
The default #GstRTSPAuth object has support for basic authentication. With
gst_rtsp_auth_add_basic() you can add a basic authentication string together
with the #GstRTSPToken that will become active when successfully
authenticated.
When a TLS certificate has been set with gst_rtsp_auth_set_tls_certificate(),
the default auth object will require the client to connect with a TLS
connection.
Last reviewed on 2013-07-16 (1.0.0)
    
    
      The client object handles the connection with a client for as long as a TCP
connection is open.
A #GstRTSPClient is created by #GstRTSPServer when a new connection is
accepted and it inherits the #GstRTSPMountPoints, #GstRTSPSessionPool,
#GstRTSPAuth and #GstRTSPThreadPool from the server.
The client connection should be configured with the #GstRTSPConnection using
gst_rtsp_client_set_connection() before it can be attached to a #GMainContext
using gst_rtsp_client_attach(). From then on the client will handle requests
on the connection.
Use gst_rtsp_client_session_filter() to iterate or modify all the
#GstRTSPSession objects managed by the client object.
Last reviewed on 2013-07-11 (1.0.0)
    
    
      Last reviewed on 2013-07-11 (1.0.0)
    
    
      a #GstRTSPMedia contains the complete GStreamer pipeline to manage the
streaming to the clients. The actual data transfer is done by the
#GstRTSPStream objects that are created and exposed by the #GstRTSPMedia.
The #GstRTSPMedia is usually created from a #GstRTSPMediaFactory when the
client does a DESCRIBE or SETUP of a resource.
A media is created with gst_rtsp_media_new() that takes the element that will
provide the streaming elements. For each of the streams, a new #GstRTSPStream
object needs to be made with the gst_rtsp_media_create_stream() which takes
the payloader element and the source pad that produces the RTP stream.
The pipeline of the media is set to PAUSED with gst_rtsp_media_prepare(). The
prepare method will add rtpbin and sinks and sources to send and receive RTP
and RTCP packets from the clients. Each stream srcpad is connected to an
input into the internal rtpbin.
It is also possible to dynamically create #GstRTSPStream objects during the
prepare phase. With gst_rtsp_media_get_status() you can check the status of
the prepare phase.
After the media is prepared, it is ready for streaming. It will usually be
managed in a session with gst_rtsp_session_manage_media(). See
#GstRTSPSession and #GstRTSPSessionMedia.
The state of the media can be controlled with gst_rtsp_media_set_state ().
Seeking can be done with gst_rtsp_media_seek(), or gst_rtsp_media_seek_full()
or gst_rtsp_media_seek_trickmode() for finer control of the seek.
With gst_rtsp_media_unprepare() the pipeline is stopped and shut down. When
gst_rtsp_media_set_eos_shutdown() an EOS will be sent to the pipeline to
cleanly shut down.
With gst_rtsp_media_set_shared(), the media can be shared between multiple
clients. With gst_rtsp_media_set_reusable() you can control if the pipeline
can be prepared again after an unprepare.
Last reviewed on 2013-07-11 (1.0.0)
    
    
      The #GstRTSPMediaFactory is responsible for creating or recycling
#GstRTSPMedia objects based on the passed URL.
The default implementation of the object can create #GstRTSPMedia objects
containing a pipeline created from a launch description set with
gst_rtsp_media_factory_set_launch().
Media from a factory can be shared by setting the shared flag with
gst_rtsp_media_factory_set_shared(). When a factory is shared,
gst_rtsp_media_factory_construct() will return the same #GstRTSPMedia when
the url matches.
Last reviewed on 2013-07-11 (1.0.0)
    
    
      This specialized #GstRTSPMediaFactory constructs media pipelines from a URI,
given with gst_rtsp_media_factory_uri_set_uri().
It will automatically demux and payload the different streams found in the
media at URL.
Last reviewed on 2013-07-11 (1.0.0)
    
    
      A #GstRTSPMountPoints object maintains a relation between paths
and #GstRTSPMediaFactory objects. This object is usually given to
#GstRTSPClient and used to find the media attached to a path.
With gst_rtsp_mount_points_add_factory () and
gst_rtsp_mount_points_remove_factory(), factories can be added and
removed.
With gst_rtsp_mount_points_match() you can find the #GstRTSPMediaFactory
object that completely matches the given path.
Last reviewed on 2013-07-11 (1.0.0)
    
    
      a #GstRTSPOnvifMedia contains the complete GStreamer pipeline to manage the
streaming to the clients. The actual data transfer is done by the
#GstRTSPStream objects that are created and exposed by the #GstRTSPMedia.
On top of #GstRTSPMedia this subclass adds special ONVIF features.
Special ONVIF features that are currently supported is a backchannel for
the client to send back media to the server in a normal PLAY media. To
handle the ONVIF backchannel, a #GstRTSPOnvifMediaFactory and
#GstRTSPOnvifServer has to be used.
    
    
      The #GstRTSPOnvifMediaFactory is responsible for creating or recycling
#GstRTSPMedia objects based on the passed URL. Different to
#GstRTSPMediaFactory, this supports special ONVIF features and can create
#GstRTSPOnvifMedia in addition to normal #GstRTSPMedia.
Special ONVIF features that are currently supported is a backchannel for
the client to send back media to the server in a normal PLAY media, see
gst_rtsp_onvif_media_factory_set_backchannel_launch() and
gst_rtsp_onvif_media_factory_set_backchannel_bandwidth().
    
    
      The server object is the object listening for connections on a port and
creating #GstRTSPOnvifClient objects to handle those connections.
The only different to #GstRTSPServer is that #GstRTSPOnvifServer creates
#GstRTSPOnvifClient that have special handling for ONVIF specific features,
like a backchannel that allows clients to send back media to the server.
    
    
      Last reviewed on 2013-07-11 (1.0.0)
    
    
      The #GstRTSPPermissions object contains an array of roles and associated
permissions. The roles are represented with a string and the permissions with
a generic #GstStructure.
The permissions are deliberately kept generic. The possible values of the
roles and #GstStructure keys and values are only determined by the #GstRTSPAuth
object that performs the checks on the permissions and the current
#GstRTSPToken.
As a convenience function, gst_rtsp_permissions_is_allowed() can be used to
check if the permissions contains a role that contains the boolean value
%TRUE for the the given key.
Last reviewed on 2013-07-15 (1.0.0)
    
    
      Last reviewed on 2013-07-11 (1.0.0)
    
    
      The server object is the object listening for connections on a port and
creating #GstRTSPClient objects to handle those connections.
The server will listen on the address set with gst_rtsp_server_set_address()
and the port or service configured with gst_rtsp_server_set_service().
Use gst_rtsp_server_set_backlog() to configure the amount of pending requests
that the server will keep. By default the server listens on the current
network (0.0.0.0) and port 8554.
The server will require an SSL connection when a TLS certificate has been
set in the auth object with gst_rtsp_auth_set_tls_certificate().
To start the server, use gst_rtsp_server_attach() to attach it to a
#GMainContext. For more control, gst_rtsp_server_create_source() and
gst_rtsp_server_create_socket() can be used to get a #GSource and #GSocket
respectively.
gst_rtsp_server_transfer_connection() can be used to transfer an existing
socket to the RTSP server, for example from an HTTP server.
Once the server socket is attached to a mainloop, it will start accepting
connections. When a new connection is received, a new #GstRTSPClient object
is created to handle the connection. The new client will be configured with
the server #GstRTSPAuth, #GstRTSPMountPoints, #GstRTSPSessionPool and
#GstRTSPThreadPool.
The server uses the configured #GstRTSPThreadPool object to handle the
remainder of the communication with this client.
Last reviewed on 2013-07-11 (1.0.0)
    
    
      The #GstRTSPSession is identified by an id, unique in the
#GstRTSPSessionPool that created the session and manages media and its
configuration.
A #GstRTSPSession has a timeout that can be retrieved with
gst_rtsp_session_get_timeout(). You can check if the sessions is expired with
gst_rtsp_session_is_expired(). gst_rtsp_session_touch() will reset the
expiration counter of the session.
When a client configures a media with SETUP, a session will be created to
keep track of the configuration of that media. With
gst_rtsp_session_manage_media(), the media is added to the managed media
in the session. With gst_rtsp_session_release_media() the media can be
released again from the session. Managed media is identified in the sessions
with a url. Use gst_rtsp_session_get_media() to get the media that matches
(part of) the given url.
The media in a session can be iterated with gst_rtsp_session_filter().
Last reviewed on 2013-07-11 (1.0.0)
    
    
      The #GstRTSPSessionMedia object manages a #GstRTSPMedia with a given path.
With gst_rtsp_session_media_get_transport() and
gst_rtsp_session_media_set_transport() the transports of a #GstRTSPStream of
the managed #GstRTSPMedia can be retrieved and configured.
Use gst_rtsp_session_media_set_state() to control the media state and
transports.
Last reviewed on 2013-07-16 (1.0.0)
    
    
      The #GstRTSPSessionPool object manages a list of #GstRTSPSession objects.
The maximum number of sessions can be configured with
gst_rtsp_session_pool_set_max_sessions(). The current number of sessions can
be retrieved with gst_rtsp_session_pool_get_n_sessions().
Use gst_rtsp_session_pool_create() to create a new #GstRTSPSession object.
The session object can be found again with its id and
gst_rtsp_session_pool_find().
All sessions can be iterated with gst_rtsp_session_pool_filter().
Run gst_rtsp_session_pool_cleanup() periodically to remove timed out sessions
or use gst_rtsp_session_pool_create_watch() to be notified when session
cleanup should be performed.
Last reviewed on 2013-07-11 (1.0.0)
    
    
      The #GstRTSPStream object manages the data transport for one stream. It
is created from a payloader element and a source pad that produce the RTP
packets for the stream.
With gst_rtsp_stream_join_bin() the streaming elements are added to the bin
and rtpbin. gst_rtsp_stream_leave_bin() removes the elements again.
The #GstRTSPStream will use the configured addresspool, as set with
gst_rtsp_stream_set_address_pool(), to allocate multicast addresses for the
stream. With gst_rtsp_stream_get_multicast_address() you can get the
configured address.
With gst_rtsp_stream_get_server_port () you can get the port that the server
will use to receive RTCP. This is the part that the clients will use to send
RTCP to.
With gst_rtsp_stream_add_transport() destinations can be added where the
stream should be sent to. Use gst_rtsp_stream_remove_transport() to remove
the destination again.
Each #GstRTSPStreamTransport spawns one queue that will serve as a backlog of a
controllable maximum size when the reflux from the TCP connection's backpressure
starts spilling all over.
Unlike the backlog in rtspconnection, which we have decided should only contain
at most one RTP and one RTCP data message in order to allow control messages to
go through unobstructed, this backlog only consists of data messages, allowing
us to fill it up without concern.
When multiple TCP transports exist, for example in the context of a shared media,
we only pop samples from our appsinks when at least one of the transports doesn't
experience back pressure: this allows us to pace our sample popping to the speed
of the fastest client.
When a sample is popped, it is either sent directly on transports that don't
experience backpressure, or queued on the transport's backlog otherwise. Samples
are then popped from that backlog when the transport reports it has sent the message.
Once the backlog reaches an overly large duration, the transport is dropped as
the client was deemed too slow.
    
    
      The #GstRTSPStreamTransport configures the transport used by a
#GstRTSPStream. It is usually manages by a #GstRTSPSessionMedia object.
With gst_rtsp_stream_transport_set_callbacks(), callbacks can be configured
to handle the RTP and RTCP packets from the stream, for example when they
need to be sent over TCP.
With gst_rtsp_stream_transport_set_active() the transports are added and
removed from the stream.
A #GstRTSPStream will call gst_rtsp_stream_transport_keep_alive() when RTCP
is received from the client. It will also call
gst_rtsp_stream_transport_set_timed_out() when a receiver has timed out.
A #GstRTSPClient will call gst_rtsp_stream_transport_message_sent() when it
has sent a data message for the transport.
Last reviewed on 2013-07-16 (1.0.0)
    
    
      A #GstRTSPThreadPool manages reusable threads for various server tasks.
Currently the defined thread types can be found in #GstRTSPThreadType.
Threads of type #GST_RTSP_THREAD_TYPE_CLIENT are used to handle requests from
a connected client. With gst_rtsp_thread_pool_get_max_threads() a maximum
number of threads can be set after which the pool will start to reuse the
same thread for multiple clients.
Threads of type #GST_RTSP_THREAD_TYPE_MEDIA will be used to perform the state
changes of the media pipelines and handle its bus messages.
gst_rtsp_thread_pool_get_thread() can be used to create a #GstRTSPThread
object of the right type. The thread object contains a mainloop and context
that run in a seperate thread and can be used to attached sources to.
gst_rtsp_thread_reuse() can be used to reuse a thread for multiple purposes.
If all gst_rtsp_thread_reuse() calls are matched with a
gst_rtsp_thread_stop() call, the mainloop will be quit and the thread will
stop.
To configure the threads, a subclass of this object should be made and the
virtual methods should be overriden to implement the desired functionality.
Last reviewed on 2013-07-11 (1.0.0)
    
    
      A #GstRTSPToken contains the permissions and roles of the user
performing the current request. A token is usually created when a user is
authenticated by the #GstRTSPAuth object and is then placed as the current
token for the current request.
#GstRTSPAuth can use the token and its contents to check authorization for
various operations by comparing the token to the #GstRTSPPermissions of the
object.
The accepted values of the token are entirely defined by the #GstRTSPAuth
object that implements the security policy.
Last reviewed on 2013-07-15 (1.0.0)
    
    
      Get the current #GstRTSPContext. This object is retrieved from the
current thread that is handling the request for a client.
      
      
        a #GstRTSPContext
        
      
    
    
      
      
        
      
    
    
      Get parameters (not implemented yet)
      
      
        a #GstRTSPResult
        
      
      
        
          a #GstRTSPClient
          
        
        
          a #GstRTSPContext
          
        
      
    
    
      Set parameters (not implemented yet)
      
      
        a #GstRTSPResult
        
      
      
        
          a #GstRTSPClient
          
        
        
          a #GstRTSPContext
          
        
      
    
    
      Add @media specific info to @sdp. @info is used to configure the connection
information in the SDP.
      
      
        TRUE on success.
        
      
      
        
          a #GstSDPMessage
          
        
        
          a #GstSDPInfo
          
        
        
          a #GstRTSPMedia
          
        
      
    
    
      Add info from @stream to @sdp.
      
      
        TRUE on success.
        
      
      
        
          a #GstSDPMessage
          
        
        
          a #GstSDPInfo
          
        
        
          a #GstRTSPStream
          
        
      
    
    
      Creates a #GstSDPMedia from the parameters and stores it in @sdp.
      
      
        %TRUE on success
        
      
      
        
          a #GstRTSPMessage
          
        
        
          a #GstSDPInfo
          
        
        
          a #GstRTSPStream
          
        
        
          a #GstCaps
          
        
        
          a #GstRTSPProfile