Commit graph

80 commits

Author SHA1 Message Date
Wim Taymans a58d404e1f server: rework maincontext handling in clients
Make a separate method to attach a client to a MainContext.

Let the server decide in what GMainContext the client will operate and give this
context to the client in attach. Then the server can later decide to use a
separate thread for each client or just use the mainthread.
2012-11-12 15:01:09 +01:00
Tim-Philipp Müller 4dba434f16 Fix FSF address 2012-11-04 00:14:25 +00:00
Wim Taymans fb117a4f75 rtsp: refactor configuration of transport
Move the configuration of the transport to a place where it makes
more sense.
2012-10-27 23:49:24 +02:00
Wim Taymans de7c72dec2 rtsp: massive refactoring
Make GObjects from the remaining simple structures.
Remove GstRTSPSessionStream, it's not needed.
Rename GstRTSPMediaStream -> GstRTSPStream: It is shorter
Rename GstRTSPMediaTrans -> GstRTSPStreamTransport: It describes how
  a GstRTSPStream should be transported to a client.
Rename GstRTSPMediaFactory::get_element -> create_element because that
  more accurately describes what it does.
Make nice methods instead of poking in the structures.
Move some methods inside the relevant object source code.
Use GPtrArray to store objects instead of plain arrays, it is more
  natural and allows us to more easily clean up.
Move the allocation of udp ports to the Stream object. The Stream object
  contains the elements needed to stream the media to a client.
Improve the prepare and unprepare methods. Unprepare should now undo
  everything prepare did. Improve also async unprepare when doing EOS on
  shutdown. Make sure we always unprepare correctly.
2012-10-25 21:29:58 +02:00
Ognyan Tonchev d581b7bd4e client: Use client transport settings for multicast if allowed.
This patch makes it possible for the client to send transport settings for
multicast (destination && ttl). Client settings must be explicitly allowed or
the server will use its own settings.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=685561
2012-10-10 11:07:59 +02:00
Aleix Conchillo Flaque bef57648b8 rtsp-client: add signals for rtsp requests (fixes #683287) 2012-09-07 16:41:29 +02:00
Aleix Conchillo Flaque ebc4ce4de1 add new-session signal to rtsp-client (fixes #683058) 2012-08-30 22:00:30 +02:00
Patricia Muscalu 228e2ccc2d rtsp-client: make create_sdp virtual method
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680173
2012-07-24 12:52:53 +02:00
Ognyan Tonchev ed66f974dd rtsp-server: use an existing socket to establish HTTP tunnel
Make it possible to transfer a socket from an HTTP server to be used as
an RTSP over HTTP tunnel.
2012-07-10 11:38:05 +02:00
Wim Taymans 4c59e211e2 rtsp-server: port to GIO
Port to GIO
2012-03-07 15:04:29 +01:00
Wim Taymans 4a4a15077b client: emit signal when closing 2011-01-12 15:35:51 +01:00
Wim Taymans 5773df1d52 rtsp-server: Pass ClientState structure arround
Pass the collected information for the ongoing request in a GstRTSPClientState
structure that we can then pass around to simplify the method arguments. This
will also be handy when we implement logging functionality.
2011-01-12 13:16:08 +01:00
Wim Taymans 8ccebd90b4 client: add support for setting the server.
Add support for keeping a ref to the server that started this client
connection.
2011-01-12 10:42:52 +01:00
Wim Taymans 5fb5f75020 auth: add authentication object
Add an object that can check the authorization of requests.
Implement basic authentication.
Add example authentication to test-video
2011-01-12 00:22:27 +01:00
Wim Taymans da35feb1aa rtsp: move network includes where they are needed 2011-01-11 22:42:25 +01:00
Wim Taymans 43f4696f78 client: cleanup headers 2010-12-28 18:31:26 +01:00
Wim Taymans e866345f15 rtsp: keep track of server ip and ipv6
Keep track of how the client connected to the server and setup the udp ports
with the same protocol.
Copy the server ip address in the SDP so that clients can send RTCP back to
us.
2010-03-16 18:37:18 +01:00
Wim Taymans 1be35624da Do some more session cleanup
Make session timeout kill the TCP connection that currently watches the
session.
Remove the client timeout property.
2009-03-11 19:38:06 +01:00
Wim Taymans ebc28a47da Add TCP transports
Use appsrc and appsink to send and receive RTP/RTCP packets in the TCP
connection.
2009-03-11 16:45:12 +01:00
Wim Taymans 2f8025dbdd rtsp-server: Add support for tunneling
Add support for tunneling over HTTP.
Use new connection methods to retrieve the url.
Dispatch messages based on the message type instead of blindly
assuming it's always a request.
Keep track of the watch id so that we can remove it later.
Set the media pipeline to NULL before unreffing the pipeline.
2009-03-04 12:53:07 +01:00
Wim Taymans daf27d2704 Fix for channel -> watch rename in gstreamer
Rename the RTSPChannel to RTSPWatch and remove an unused variable.
2009-02-19 15:53:50 +01:00
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 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 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 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 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 7889395787 Split in library and example program 2009-01-08 13:18:55 +01:00
Renamed from src/rtsp-client.h (Browse further)