Commit graph

22 commits

Author SHA1 Message Date
Wim Taymans 39c2e31e65 Use ASYNC RTSP io
Use the async RTSP channels instead of spawning a new thread for each client.
If a sessionid is specified in a request, fail if we don't have the session.
2009-02-18 18:57:31 +01:00
Wim Taymans 308ad6f6d0 Add support for session keepalive
Get and update the session timeout for all requests. get the session as early as
possible.
2009-02-13 19:52:05 +01:00
Wim Taymans e1154c92d6 Some more session timeout handling
Move the session header setting code to a central place so that we always add
the timeout parameter too.

Handle timeouts by running the session cleanup code.

Stop media before cleaning up.
2009-02-13 12:57:45 +01:00
Wim Taymans 34152ec840 Add timeout property
Add a timeout property ot the client and make the other properties into GObject
properties.
2009-02-10 16:24:13 +01:00
Wim Taymans aedd4652f3 Add beginnings of session timeouts and limits
Add the timeout value to the Session header for unusual timeout values.

Allow us to configure a limit to the amount of active sessions in a pool. Set a
limit on the amount of retry we do after a sessionid collision.

Add properties to the sessionid and the timeout of a session. Keep track of
creation time and last access time for sessions.
2009-02-04 19:52:50 +01:00
Wim Taymans e789a8fdf3 Cleanup of sessions and more
Fix the refcounting of media and sessions in the client. Properly clean up the
session data when the client performs a teardown.

Add Server header to responses.

Allow for multiple uri setups in one session.

Add Range header to the PLAY response and add the range attribute to the SDP
message.

Fix the session pool remove method, it used the wrong key in the hashtable. Also
give the ownership of the sessionid to the session object.
2009-02-04 17:00:42 +01:00
Wim Taymans d5a00f1f23 Rework the way we handle transports for streams
Make the media accept an array of transports for the streams that we have
configured for the play/pause requests.

Implement server states for a client and its media.

Require 0.10.22.1 (git HEAD) of gstreamer.
2009-02-03 19:32:38 +01:00
Wim Taymans f303eef9bb Drop const from functions dealing with urls
Drop const from GstRTSPUrl stuff because the .h files in gst-plugins-base don't
have the right const in them.
2009-01-31 19:50:33 +01:00
Wim Taymans ae2521096a Fix various leaks
Fix some leaks.
2009-01-30 17:06:26 +01:00
Wim Taymans 27f069b43c More cleanups
Don't keep a reference to the GstRTSPMedia in the stream.
Free more things when freeing the GstRTSPMedia.
2009-01-30 16:24:10 +01:00
Wim Taymans b19b1fbe6b Cleanups and reuse media from DESCRIBE
Handle thread create errors.
Rename some internal methods to better match what they actually do.
Handle misconfiguration of session_pool and media_mapping gracefully.
Cache the DESCRIBE media and uri in the client connection and reuse them when
we receive a SETUP request in the same connection for the same uri.
Cleanup the client connection object.
2009-01-30 12:17:51 +01:00
Wim Taymans 082099005d Add a little comment
Add some comment about the content-base header.
2009-01-30 12:17:38 +01:00
Wim Taymans 41dd6399a6 Reorganize things, prepare for media sharing
Added various other test server examples
Move the SDP message generation to a separate helper.
Refactor common code for finding the session.
Add content-base for realplayer compatibility
Clean up request uris before processing for better vlc compatibility.
Move prerolling and pipeline construction to the RTSPMedia object.
Use multiudpsink for future pipeline reuse.
2009-01-30 12:17:28 +01:00
Wim Taymans b0fcbfd290 Cleanups and doc updates
Add some more documentation and do some minor cleanups here and there.
2009-01-22 18:35:17 +01:00
Wim Taymans cf18709634 More improvements
Rename GstRTSPMediaBin to GstRTSPMedia
Parse the request url into a GstRTSPUri object and pass this object to the
various handlers and methods that require the uri.
2009-01-22 17:58:19 +01:00
Wim Taymans 6f9b659b1d Handle state change failures better
Handle state change failures better when changing the state of the pipeline to
determine the SDP.
2009-01-22 16:53:16 +01:00
Wim Taymans 4b1c190a5f Make the server handle arbitrary pipelines
Make GstMediaFactory an object that can instantiate GstMediaBin objects.
The GstMediaBin object has a handle to a bin with elements and to a list of
GstMediaStream objects that this bin produces.

Add GstMediaMapper that can map url mountpoints to GstMediaFactory objects along
with methods to register and remove those mappings.

Add methods and a property to GstRTSPServer to manage the GstMediaMapper object
used by the server instance.

Modify the example application so that it shows how to create custom pipelines
attached to a specific mount point.

Various misc cleanps.
2009-01-22 15:33:29 +01:00
Wim Taymans 94d60a8611 Allow setting a custom media factory for a client. 2009-01-20 19:46:21 +01:00
Wim Taymans b312f98627 Move the connection code in one place
Add some comments
2009-01-20 13:57:47 +01:00
Wim Taymans 8d2ace0026 Name the parameters more appropriately. 2009-01-19 19:34:29 +01:00
Wim Taymans a76656ad8d Check if return value of gst_rtsp_session_get_media is not NULL 2009-01-08 16:28:24 +01:00
Wim Taymans 7889395787 Split in library and example program 2009-01-08 13:18:55 +01:00
Renamed from src/rtsp-client.c (Browse further)