g_main_loop_run (loop);
}
- The server manages two other objects: GstRTSPSessionPool and
- GstRTSPMountPoints.
+ The server manages four other objects: GstRTSPSessionPool,
+ GstRTSPMountPoints, GstRTSPAuth and GstRTSPThreadPool.
The GstRTSPSessionPool is an object that keeps track of all the active sessions
in the server. A session will usually be kept for each client that performed a
request URL to a specific stream and its configuration. We explain in the next
topic how to configure this object.
+ GstRTSPAuth is an object that authenticates users and authorizes actions
+ performed by users.
+
+ GstRTSPThreadPool manages the threads used for client connections and media
+ pipelines.
+
* Making url mount points
<xi:include href="xml/rtsp-mount-points.xml"/>
<xi:include href="xml/rtsp-media-factory.xml"/>
<xi:include href="xml/rtsp-media-factory-uri.xml"/>
+ <xi:include href="xml/rtsp-media.xml"/>
+ <xi:include href="xml/rtsp-stream.xml"/>
<xi:include href="xml/rtsp-session-pool.xml"/>
<xi:include href="xml/rtsp-session.xml"/>
- <xi:include href="xml/rtsp-media.xml"/>
+ <xi:include href="xml/rtsp-session-media.xml"/>
+ <xi:include href="xml/rtsp-stream-transport.xml"/>
<xi:include href="xml/rtsp-sdp.xml"/>
<xi:include href="xml/rtsp-address-pool.xml"/>
+ <xi:include href="xml/rtsp-thread-pool.xml"/>
<xi:include href="xml/rtsp-auth.xml"/>
<xi:include href="xml/rtsp-token.xml"/>
<xi:include href="xml/rtsp-permissions.xml"/>
<SECTION>
<FILE>rtsp-address-pool</FILE>
<TITLE>GstRTSPAddressPool</TITLE>
+
+<SUBSECTION Address>
GST_RTSP_ADDRESS_POOL_ANY_IPV4
GST_RTSP_ADDRESS_POOL_ANY_IPV6
GstRTSPAddress
gst_rtsp_address_copy
gst_rtsp_address_free
+<SUBSECTION AddressPool>
GstRTSPAddressPool
GstRTSPAddressPoolClass
gst_rtsp_address_pool_new
gst_rtsp_auth_setup
gst_rtsp_auth_check
+<SUBSECTION AuthChecks>
GST_RTSP_AUTH_CHECK_URL
GST_RTSP_AUTH_CHECK_MEDIA_FACTORY_ACCESS
GST_RTSP_AUTH_CHECK_MEDIA_FACTORY_CONSTRUCT
+<SUBSECTION AuthPermissions>
GST_RTSP_MEDIA_FACTORY_ROLE
GST_RTSP_MEDIA_FACTORY_PERM_ACCESS
GST_RTSP_MEDIA_FACTORY_PERM_CONSTRUCT
<SECTION>
<FILE>rtsp-client</FILE>
<TITLE>GstRTSPClient</TITLE>
+<SUBSECTION ClientState>
GstRTSPClientState
gst_rtsp_client_state_get_current
+<SUBSECTION Client>
GstRTSPClient
GstRTSPClientClass
gst_rtsp_client_get_mount_points
gst_rtsp_client_set_mount_points
-gst_rtsp_client_get_use_client_settings
-gst_rtsp_client_set_use_client_settings
-
gst_rtsp_client_get_auth
gst_rtsp_client_set_auth
gst_rtsp_client_get_thread_pool
gst_rtsp_client_set_thread_pool
+gst_rtsp_client_get_use_client_settings
+gst_rtsp_client_set_use_client_settings
+
gst_rtsp_client_get_connection
gst_rtsp_client_set_connection
+gst_rtsp_client_attach
+
GstRTSPClientSendFunc
gst_rtsp_client_set_send_func
gst_rtsp_client_handle_message
gst_rtsp_client_send_request
-gst_rtsp_client_attach
GstRTSPClientSessionFilterFunc
gst_rtsp_client_session_filter
gst_rtsp_media_factory_new
-gst_rtsp_media_factory_construct
-gst_rtsp_media_factory_create_element
-
-gst_rtsp_media_factory_get_address_pool
-gst_rtsp_media_factory_set_address_pool
-
-gst_rtsp_media_factory_get_buffer_size
-gst_rtsp_media_factory_set_buffer_size
-
gst_rtsp_media_factory_get_launch
gst_rtsp_media_factory_set_launch
gst_rtsp_media_factory_get_permissions
gst_rtsp_media_factory_set_permissions
-gst_rtsp_media_factory_get_protocols
-gst_rtsp_media_factory_set_protocols
+gst_rtsp_media_factory_set_shared
+gst_rtsp_media_factory_is_shared
gst_rtsp_media_factory_is_eos_shutdown
gst_rtsp_media_factory_set_eos_shutdown
-gst_rtsp_media_factory_set_shared
-gst_rtsp_media_factory_is_shared
+gst_rtsp_media_factory_get_protocols
+gst_rtsp_media_factory_set_protocols
+
+gst_rtsp_media_factory_get_address_pool
+gst_rtsp_media_factory_set_address_pool
+
+gst_rtsp_media_factory_get_buffer_size
+gst_rtsp_media_factory_set_buffer_size
+
+gst_rtsp_media_factory_construct
+gst_rtsp_media_factory_create_element
+
<SUBSECTION Standard>
GST_RTSP_MEDIA_FACTORY_CAST
GST_RTSP_MEDIA_FACTORY_CLASS_CAST
gst_rtsp_server_get_service
gst_rtsp_server_set_service
-gst_rtsp_server_get_bound_port
-
gst_rtsp_server_get_backlog
gst_rtsp_server_set_backlog
+gst_rtsp_server_get_tls_certificate
+gst_rtsp_server_set_tls_certificate
+
+gst_rtsp_server_get_bound_port
+
gst_rtsp_server_get_mount_points
gst_rtsp_server_set_mount_points
gst_rtsp_server_get_auth
gst_rtsp_server_set_auth
-gst_rtsp_server_get_tls_certificate
-gst_rtsp_server_set_tls_certificate
-
gst_rtsp_server_get_use_client_settings
gst_rtsp_server_set_use_client_settings
<SECTION>
<FILE>rtsp-thread-pool</FILE>
<TITLE>GstRTSPThreadPool</TITLE>
+<SUBSECTION Thread>
GstRTSPThreadType
GstRTSPThread
gst_rtsp_thread_reuse
gst_rtsp_thread_stop
+<SUBSECTION ThreadPool>
GstRTSPThreadPool
GstRTSPThreadPoolClass
gst_rtsp_thread_pool_new
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:rtsp-address-pool
+ * @short_description: A pool of network addresses
+ * @see_also: #GstRTSPStream, #GstRTSPStreamTransport
+ *
+ * Last reviewed on 2013-07-11 (1.0.0)
+ */
#include <string.h>
#include <gio/gio.h>
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:rtsp-auth
+ * @short_description: Authentication and authorization
+ * @see_also: #GstRTSPPermission, #GstRTSPtoken
+ *
+ * Last reviewed on 2013-07-11 (1.0.0)
+ */
#include <string.h>
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:rtsp-client
+ * @short_description: A client connection state
+ * @see_also: #GstRTSPServer, #GstRTSPThreadPool
+ *
+ * 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)
+ */
#include <stdio.h>
#include <string.h>
* 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.
*/
void
gst_rtsp_client_set_send_func (GstRTSPClient * client,
* @session: a #GstRTSPSession to send the request to or %NULL
* @request: The request #GstRTSPMessage to send
*
- * Send a request message to the client.
+ * Send a request message to the remote end. @request must be a
+ * #GST_RTSP_MESSAGE_REQUEST.
*/
GstRTSPResult
gst_rtsp_client_send_request (GstRTSPClient * client, GstRTSPSession * session,
g_return_val_if_fail (GST_IS_RTSP_CLIENT (client), 0);
priv = client->priv;
+ g_return_val_if_fail (priv->connection != NULL, 0);
g_return_val_if_fail (priv->watch == NULL, 0);
/* create watch for the connection and attach */
GstRTSPMountPoints *mounts);
GstRTSPMountPoints * gst_rtsp_client_get_mount_points (GstRTSPClient *client);
-void gst_rtsp_client_set_use_client_settings (GstRTSPClient * client,
- gboolean use_client_settings);
-gboolean gst_rtsp_client_get_use_client_settings (GstRTSPClient * client);
-
void gst_rtsp_client_set_auth (GstRTSPClient *client, GstRTSPAuth *auth);
GstRTSPAuth * gst_rtsp_client_get_auth (GstRTSPClient *client);
void gst_rtsp_client_set_thread_pool (GstRTSPClient *client, GstRTSPThreadPool *pool);
GstRTSPThreadPool * gst_rtsp_client_get_thread_pool (GstRTSPClient *client);
+void gst_rtsp_client_set_use_client_settings (GstRTSPClient * client,
+ gboolean use_client_settings);
+gboolean gst_rtsp_client_get_use_client_settings (GstRTSPClient * client);
+
gboolean gst_rtsp_client_set_connection (GstRTSPClient *client, GstRTSPConnection *conn);
GstRTSPConnection * gst_rtsp_client_get_connection (GstRTSPClient *client);
+guint gst_rtsp_client_attach (GstRTSPClient *client,
+ GMainContext *context);
+
void gst_rtsp_client_set_send_func (GstRTSPClient *client,
GstRTSPClientSendFunc func,
gpointer user_data,
GDestroyNotify notify);
+
GstRTSPResult gst_rtsp_client_handle_message (GstRTSPClient *client,
GstRTSPMessage *message);
-
GstRTSPResult gst_rtsp_client_send_request (GstRTSPClient * client,
GstRTSPSession *session,
GstRTSPMessage *request);
-guint gst_rtsp_client_attach (GstRTSPClient *client,
- GMainContext *context);
-
/**
* GstRTSPClientSessionFilterFunc:
* @client: a #GstRTSPClient object
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:rtsp-media-factory-uri
+ * @short_description: A factory for URI sources
+ * @see_also: #GstRTSPMediaFactory, #GstRTSPMedia
+ *
+ * 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)
+ */
#include <string.h>
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:rtsp-media-factory
+ * @short_description: A factory for media pipelines
+ * @see_also: #GstRTSPMountPoints, #GstRTSPMedia
+ *
+ * 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)
+ */
#include "rtsp-media-factory.h"
* #GstRTSPMedia for @url. The default implementation of this
* function calls create_element to retrieve an element and then looks for
* pay%d to create the streams.
- * @configure: configure the media created with @construct. The default
- * implementation will configure the 'shared' property of the media.
* @create_pipeline: create a new pipeline or re-use an existing one and
* add the #GstRTSPMedia's element created by @construct to the pipeline.
+ * @configure: configure the media created with @construct. The default
+ * implementation will configure the 'shared' property of the media.
* @media_constructed: signal emited when a media was constructed
* @media_configure: signal emited when a media should be configured
*
GstElement * (*create_element) (GstRTSPMediaFactory *factory, const GstRTSPUrl *url);
GstRTSPMedia * (*construct) (GstRTSPMediaFactory *factory, const GstRTSPUrl *url);
- void (*configure) (GstRTSPMediaFactory *factory, GstRTSPMedia *media);
GstElement * (*create_pipeline) (GstRTSPMediaFactory *factory, GstRTSPMedia *media);
+ void (*configure) (GstRTSPMediaFactory *factory, GstRTSPMedia *media);
/* signals */
void (*media_constructed) (GstRTSPMediaFactory *factory, GstRTSPMedia *media);
GstRTSPMediaFactory * gst_rtsp_media_factory_new (void);
/* configuring the factory */
-void gst_rtsp_media_factory_set_permissions (GstRTSPMediaFactory *factory,
- GstRTSPPermissions *permissions);
-GstRTSPPermissions * gst_rtsp_media_factory_get_permissions (GstRTSPMediaFactory *factory);
-
void gst_rtsp_media_factory_set_launch (GstRTSPMediaFactory *factory,
const gchar *launch);
gchar * gst_rtsp_media_factory_get_launch (GstRTSPMediaFactory *factory);
+void gst_rtsp_media_factory_set_permissions (GstRTSPMediaFactory *factory,
+ GstRTSPPermissions *permissions);
+GstRTSPPermissions * gst_rtsp_media_factory_get_permissions (GstRTSPMediaFactory *factory);
+
void gst_rtsp_media_factory_set_shared (GstRTSPMediaFactory *factory,
gboolean shared);
gboolean gst_rtsp_media_factory_is_shared (GstRTSPMediaFactory *factory);
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:rtsp-media
+ * @short_description: The media pipeline
+ * @see_also: #GstRTSPMediaFactory, #GstRTSPStream
+ *
+ * Last reviewed on 2013-07-11 (1.0.0)
+ */
#include <string.h>
#include <stdlib.h>
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
-
+/**
+ * SECTION:rtsp-mount-points
+ * @short_description: Map a path to media
+ * @see_also: #GstRTSPMediaFactory, #GstRTSPClient
+ *
+ * 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)
+ */
#include <string.h>
#include "rtsp-mount-points.h"
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:rtsp-params
+ * @short_description: Param get and set implementation
+ * @see_also: #GstRTSPClient
+ *
+ * Last reviewed on 2013-07-11 (1.0.0)
+ */
+
#include <string.h>
#include "rtsp-params.h"
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:rtsp-permissions
+ * @short_description: Roles and associated permissions
+ * @see_also: #GstRTSPToken, #GstRTSPAuth
+ *
+ * Last reviewed on 2013-07-11 (1.0.0)
+ */
+
#include <string.h>
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:rtsp-sdp
+ * @short_description: Make SDP messages
+ * @see_also: #GstRTSPMedia
+ *
+ * Last reviewed on 2013-07-11 (1.0.0)
+ */
+
#include <string.h>
#include "rtsp-sdp.h"
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
-
+/**
+ * SECTION:rtsp-server
+ * @short_description: The main server object
+ * @see_also: #GstRTSPClient, #GstRTSPThreadPool
+ *
+ * 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 with gst_rtsp_server_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)
+ */
#include <stdlib.h>
#include <string.h>
#define GST_CAT_DEFAULT rtsp_server_debug
typedef struct _ClientContext ClientContext;
-typedef struct _Loop Loop;
static guint gst_rtsp_server_signals[SIGNAL_LAST] = { 0 };
* pending connections for the server may grow. If a connection request arrives
* when the queue is full, the client may receive an error with an indication of
* ECONNREFUSED or, if the underlying protocol supports retransmission, the
- * request may be ignored so that a later reattempt at connection succeeds.
+ * request may be ignored so that a later reattempt at connection succeeds.
*/
g_object_class_install_property (gobject_class, PROP_BACKLOG,
g_param_spec_int ("backlog", "Backlog",
* @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.
*/
void
/**
* GstRTSPServerClass:
- *
* @create_client: Create, configure a new GstRTSPClient
- * object that handles the new connection on @socket.
+ * object that handles the new connection on @socket. The default
+ * implementation will create a GstRTSPClient and will configure the
+ * mount-points, auth, session-pool and thread-pool on the client.
* @setup_connection: Setup the new client connection. The default
- * implementation will configure the TLS certificate.
+ * implementation will configure the TLS certificate when specified.
* @client_connected: emited when a new client connected.
*
* The RTSP server class structure
struct _GstRTSPServerClass {
GObjectClass parent_class;
- GThreadPool *pool;
-
GstRTSPClient * (*create_client) (GstRTSPServer *server);
gboolean (*setup_connection) (GstRTSPServer *server, GstRTSPClient *client,
GstRTSPConnection *conn);
void gst_rtsp_server_set_service (GstRTSPServer *server, const gchar *service);
gchar * gst_rtsp_server_get_service (GstRTSPServer *server);
-int gst_rtsp_server_get_bound_port (GstRTSPServer *server);
-
void gst_rtsp_server_set_backlog (GstRTSPServer *server, gint backlog);
gint gst_rtsp_server_get_backlog (GstRTSPServer *server);
+void gst_rtsp_server_set_tls_certificate (GstRTSPServer *server, GTlsCertificate *cert);
+GTlsCertificate * gst_rtsp_server_get_tls_certificate (GstRTSPServer *server);
+
+int gst_rtsp_server_get_bound_port (GstRTSPServer *server);
+
void gst_rtsp_server_set_session_pool (GstRTSPServer *server, GstRTSPSessionPool *pool);
GstRTSPSessionPool * gst_rtsp_server_get_session_pool (GstRTSPServer *server);
gboolean use_client_settings);
gboolean gst_rtsp_server_get_use_client_settings (GstRTSPServer *server);
-void gst_rtsp_server_set_tls_certificate (GstRTSPServer *server, GTlsCertificate *cert);
-GTlsCertificate * gst_rtsp_server_get_tls_certificate (GstRTSPServer *server);
-
gboolean gst_rtsp_server_transfer_connection (GstRTSPServer * server, GSocket *socket,
const gchar * ip, gint port,
const gchar *initial_buffer);
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:rtsp-session-media
+ * @short_description: Media managed in a session
+ * @see_also: #GstRTSPMedia, #GstRTSPSession
+ *
+ * Last reviewed on 2013-07-11 (1.0.0)
+ */
+
#include <string.h>
#include "rtsp-session.h"
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:rtsp-session-pool
+ * @short_description: An object for managing sessions
+ * @see_also: #GstRTSPSession
+ *
+ * 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)
+ */
#include "rtsp-session-pool.h"
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:rtsp-session
+ * @short_description: An object to manage media
+ * @see_also: #GstRTSPSessionPool, #GstRTSPSessionMedia, #GstRTSPMedia
+ *
+ * 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)
+ */
+
#include <string.h>
#include "rtsp-session.h"
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:rtsp-stream-transport
+ * @short_description: A media stream transport configuration
+ * @see_also: #GstRTSPStream
+ *
+ * Last reviewed on 2013-07-11 (1.0.0)
+ */
#include <string.h>
#include <stdlib.h>
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:rtsp-stream
+ * @short_description: A media stream
+ * @see_also: #GstRTSPMedia
+ *
+ * Last reviewed on 2013-07-11 (1.0.0)
+ */
#include <stdlib.h>
#include <stdio.h>
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:rtsp-thread-pool
+ * @short_description: A pool of threads
+ * @see_also: #GstRTSPMedia, #GstRTSPClient
+ *
+ * Last reviewed on 2013-07-11 (1.0.0)
+ */
#include <string.h>
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:rtsp-token
+ * @short_description: Roles and permissions for a client
+ * @see_also: #GstRTSPClient, #GstRTSPPermission, #GstRTSPAuth
+ *
+ * Last reviewed on 2013-07-11 (1.0.0)
+ */
#include <string.h>