Wim Taymans
e4ea72ccdf
stream: use the address managed by the stream
...
Use the address managed by the stream for multicast. This allows us to have 1
multicast address for each stream.
Because the address is now managed by the stream we don't have to pass it around
anymore.
Set the address pool on the streams.
2012-11-15 16:18:29 +01:00
Wim Taymans
ba21661ce4
rtsp: improve debug
2012-11-15 16:15:20 +01:00
Wim Taymans
2160d6dbd3
client: set blocksize only on stream
...
Set the blocksize only on the current stream.
2012-11-15 15:29:35 +01:00
Wim Taymans
45b6693b39
rtsp: make address-pool return an address object
...
Return a boxed GstRTSPAddress from the GstRTSPAddressPool. This allows us to
store more info in the structure and allows us to more easily return the address
to the right pool when no longer needed.
Pass the address to the StreamTransport so that we can return it to the pool
when the stream transport is freed or changed.
2012-11-15 13:25:14 +01:00
Wim Taymans
f15ffb521c
rtsp: use AddressPool
...
Remove the multicast_group property.
Use the configured addresspool to allocate multicast addresses.
2012-11-14 17:23:59 +01:00
Wim Taymans
c431592976
client: rename method
...
gst_rtsp_client_create_from_socket -> gst_rtsp_client_use_socket: we
don't really create the client from the socket, we use the socket for the
client.
2012-11-12 15:01:13 +01:00
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
Wim Taymans
5b4340067a
session: move session header code in session object
2012-11-12 12:40:34 +01:00
Tim-Philipp Müller
4dba434f16
Fix FSF address
2012-11-04 00:14:25 +00:00
Wim Taymans
543aa383e7
rtsp: only create transport when needed
...
Only create the StreamTransport when configured.
2012-10-28 00:23:57 +02:00
Wim Taymans
66a29c7ed9
client: small cleanup
2012-10-27 23:53:35 +02: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
8c30d050fa
client: refactor transport parsing
2012-10-27 21:26:55 +02:00
Wim Taymans
fee8216513
client: refuse to change the MTU on shared media
...
If we change the MTU of chared media, it changes for all clients.
We don't want to set the MTU to something large for clients that
stream over UDP.
2012-10-27 21:05:03 +02:00
Wim Taymans
6b7ff45ca6
rtsp: fix MTU setting
...
Fix setting of the MTU. There is no need for a vmethod.
2012-10-26 12:35:20 +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
Sebastian Rasmussen
0de6262dc4
rtsp-client: Unref server address clients connected to
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=686725
2012-10-23 23:05:45 +01:00
Sebastian Pölsterl
e11e855ac8
rtsp-server: fixed comments and GIR annotations
...
https://bugzilla.gnome.org/show_bug.cgi?id=680777
2012-10-18 19:17:01 +01: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
Patricia Muscalu
870b8db279
rtsp-client: do not destroy the rtsp watch
...
Don't destroy the client watch while dispatching. The rtsp watch is
automatically destroyed after the rtsp watch function closed() has
been called.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=685220
2012-10-05 11:44:32 +02:00
Wim Taymans
3e55e0e467
client: use more GIO
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681593
2012-09-07 17:14:30 +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
Wim Taymans
f305020636
client: fix docs
2012-07-10 11:39:58 +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
Ognyan Tonchev
86e53af34a
rtsp: Handle the blocksize parameter
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=679325
2012-07-10 11:26:01 +02:00
Wim Taymans
853128e1c7
client: don't leak transports
2012-06-14 10:14:06 +02:00
David Svensson Fors
3f49c2d8f4
rtsp-client: free transport on no_stream in SETUP handler
2012-06-14 10:14:06 +02:00
David Svensson Fors
8f5d82be6d
rtsp-client: changed session media iteration
...
In client_unlink_session: now don't iterate in session->medias
list where items are removed by gst_rtsp_session_release_media.
Instead, repeatedly remove the first item.
2012-06-14 10:14:06 +02:00
David Svensson Fors
dc796bf075
rtsp-client: don't use g_object_unref on GstRTSPSessionMedia
...
GstRTSPSessionMedia is not a GObject type. When the
GstRTSPSession is freed, it will free the media.
2012-06-14 10:14:06 +02:00
David Svensson Fors
7b145aeeab
client: fix GSocketAddress leak in gst_rtsp_client_accept
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677463
2012-06-06 14:49:40 +02:00
David Svensson Fors
ffa3166fbd
rtsp: fix compiler warnings
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676500
2012-05-22 15:37:25 +02:00
Wim Taymans
6cc2fb9bfc
rtsp-server: port to new thread API
2012-05-11 09:42:47 +02:00
Sebastian Dröge
e2f10f5ba5
rtsp-server: Fix compilation and compiler warnings
2012-04-13 15:27:22 +02:00
Wim Taymans
4c59e211e2
rtsp-server: port to GIO
...
Port to GIO
2012-03-07 15:04:29 +01:00
Tim-Philipp Müller
e67a1c664c
rtsp-client: update for new map API
2012-02-13 11:06:33 +00:00
Wim Taymans
fde25cd9c3
rtsp-server: port some more to 0.11
...
Fix caps.
Remove bufferlist stuff
Update for new API.
Add queue before appsink now that preroll-queue-len is gone.
Update for request pad changes.
2011-12-09 10:53:30 +01:00
Wim Taymans
6fa73b2552
client: use method to access property
2011-08-16 16:07:04 +02:00
Wim Taymans
9573058f54
client: use media multicast group
2011-08-16 13:43:44 +02:00
Robert Krakora
ae67971cde
sdp: copy and free the server ip address
...
Copy and free the server ip address to make memory management easier later.
2011-08-16 13:31:52 +02:00
Wim Taymans
b0e22d6861
client: do configuration of transport in one place
...
Move the configuration of the transport destination address to where we also
configure the other bits.
2011-08-16 12:51:44 +02:00
Wim Taymans
8749b1e08f
Merge branch 'master' into 0.11
2011-08-16 12:11:59 +02:00
Robert Krakora
f7223cfdab
client: destroy pipeline on client disconnect with no prior TEARDOWN.
...
The problem occurs when the client abruptly closes the connection without
issuing a TEARDOWN. The TEARDOWN handler in the rtsp-client.c file of the RTSP
server is where the pipeline gets torn down. Since this handler is not called,
the pipeline remains and is up and running. Subsequent clients get their own
pipelines and if the do not issue TEARDOWNs then those pipelines will also
remain up and running. This is a resource leak.
2011-08-16 12:09:48 +02:00
Wim Taymans
b5aa7628bf
Merge branch 'master' into 0.11
2011-08-16 11:12:33 +02:00
David Schleef
aa128813fe
client: fix reference counting
2011-07-27 15:02:08 -07:00
Thijs Vermeir
93fb73b46f
fix compiler warnings about unused variables
2011-07-20 17:16:42 +02:00
Wim Taymans
bd8eb8f3d9
client: update for buffer API change
2011-06-13 19:05:57 +02:00
Wim Taymans
914b481e42
rtsp-server: port to 0.11
2011-04-26 19:22:50 +02:00
Wim Taymans
df0e2c2859
client: use the response from the clientstate
...
Create the response object only once and store in the client state.
Make all methods use the state response,
2011-01-12 15:37:39 +01:00
Wim Taymans
4a4a15077b
client: emit signal when closing
2011-01-12 15:35:51 +01:00
Wim Taymans
7797023fda
media: enable per factory authorisations
...
Allow for adding a GstRTSPAuth on the factory and media level and check
permissions when accessing the factory.
Add hints to the auth methods for future more fine grained authorisation.
Add example application for per factory authentication.
2011-01-12 13:57:09 +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
748d044b62
client: unref auth in finalize
2011-01-12 12:07:20 +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
c59d9e2970
client: delegate setup of auth to the manager
...
Delegate the configuration of the authentication tokens to the manager object
when configured.
2011-01-12 00:35:28 +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
Jonas Larsson
b5a1719e89
client: use the socket length from getsockname
...
Use the length returned by getsockname to perform the getnameinfo call because
the size can depend on the socket type and platform.
Fixes #638723
2011-01-05 11:26:30 +01:00
Wim Taymans
160fc25867
docs: improve docs
2010-12-30 12:41:31 +01:00
Wim Taymans
50b4c8de98
rtsp-server: add support for buffer lists
...
Add support for sending bufferlists received from appsink.
Fixes #635832
2010-12-29 16:26:41 +01:00
Wim Taymans
4234d96314
media: make method to retrieve the play range
...
Make a method to retrieve the playback range so that we can conditionally create
a different range for the SDP and the PLAY requests.
2010-12-28 18:35:01 +01:00
Wim Taymans
899f624845
client: fix typo
2010-12-28 12:18:41 +01:00
Edward Hervey
a6556551e3
rtsp-server: Remove unused variable and dead assignment
2010-12-11 10:53:28 +01:00
Edward Hervey
eb83fc6318
rtsp-server: Run gst-indent
...
Since it wasn't using the upstream common previously, there was no
indentation check before commiting.
2010-12-11 10:48:42 +01:00
Wim Taymans
336ffc0941
client: improve client cleanups
...
Make sure the session does not timeout when using TCP. We need to do this
because quicktime player does not send RTCP for some reason in tunneled
mode.
Refactor some cleanup code.
Fixes #612915
2010-04-06 17:08:40 +02:00
Wim Taymans
48a54054e7
client: fix unlink on session timeouts
...
When our session times out, make sure we unlink all streams in this
session.
Remove the tunnelid when closing the connection.
2010-04-06 15:45:56 +02:00
Wim Taymans
30c31a65eb
client: handle lost_tunnel callbacks
...
Handle lost_tunnel callbacks and use it to store the tunnelid back into the
hashtable so that we can reuse it for when the client reopens the POST
socket.
Close the connection after a TEARDOWN.
Make sure or watchid is cleared when the watch is removed.
Fixes #612915
2010-04-06 11:13:51 +02:00
Wim Taymans
09b97dd4ac
rtsp-server: add more support for multicast
2010-03-19 18:03:40 +01:00
Wim Taymans
d749f1e7d5
client: use right size for malloc
2010-03-16 18:33:23 +01:00
Wim Taymans
b3814d4646
client: make content-base better
...
Use the URI formatting functions to make a content-base. Also make sure that
there is a trailing / at the end.
2010-03-09 13:43:29 +01:00
Wim Taymans
171e89c63a
client: guard against invalid paths
2010-03-09 13:42:50 +01:00
Luca Ognibene
e19c382bbb
client: call unlink_streams in client finalize
...
Fixes #599027
2010-03-05 18:37:17 +01:00
Wim Taymans
73e8d6c69a
client: rework transport parsing
...
Rework the transport parsing code so that we can ignore transports we don't
support instead of just picking the first one we can parse.
Configure a (for now hardcoded) destination for multicast transports.
2010-03-05 13:31:37 +01:00
Wim Taymans
ce6724f788
rtsp-client: implement error_full
...
Implement error_full to avoid some segfaults when the rtspconnection calls it.
See #608245
2010-01-27 18:38:27 +01:00
Wim Taymans
996112db95
docs: update docs and comments
2009-12-25 18:24:10 +01:00
Sebastian Pölsterl
3d7610b033
client: dump rtsp message only if debug threshold is higher than GST_LEVEL_LOG
2009-11-21 19:20:39 +01:00
Sebastian Pölsterl
6d227be7a9
Use GStreamer's debugging subsystem
2009-11-21 19:20:23 +01:00
Luca Ognibene
745900dd48
client: call weak-unref on client->sessions from finalize
...
Fixes bug #596305
2009-10-13 10:57:35 +02:00
Peter Kjellerstedt
309f53a12b
rtsp: Use gst_rtsp_watch_send_message().
...
Use gst_rtsp_watch_send_message() since the old API which used
gst_rtsp_watch_queue_message() has been deprecated.
2009-08-24 13:27:00 +02:00
Wim Taymans
7338ab81e1
rtsp: allocate channels in TCP mode
...
When the client does not provide us with channels in TCP mode, allocate channels
ourselves.
2009-07-27 19:42:44 +02:00
Wim Taymans
daccf6bc99
client: don't crash when tunnelid is missing
...
When a clients tries to open an HTTP tunnel but fails to provide a tunnelid,
don't crash but return an error response to the client.
Fixes #589489
2009-07-24 12:49:41 +02:00
Wim Taymans
a697d16c75
client: use g_source_destroy()
...
We need to use g_source_destroy() because we might have added the source to a
different main context than the default one.
2009-06-11 11:27:47 +02:00
Wim Taymans
5e4757eff6
rtsp: prepare for handling GET/SET_PARAMETER
...
Add helper functions to handle GET/SET_PARAMETER. Reply with an error when there
is a body now.
Fix return codes of handlers.
2009-06-10 00:01:07 +02:00
Wim Taymans
9bed89c3b7
rtsp: use RTCP to keep the session alive
...
Use the RTCP rtcp-from stats field to find the associated session and use this
to keep the session alive.
2009-05-26 19:01:10 +02:00
Wim Taymans
461169537b
client: replay OK to GET/SET_PARAMETER
...
Some clients (vlc) use GET/SET_PARAMETER to keep the TCP session open. Make it
so that we return OK for those requests.
2009-05-26 17:25:59 +02:00
Wim Taymans
740d71bd50
client: warn when we can't do RTP-Info
2009-05-23 16:30:55 +02:00
Wim Taymans
8fcbe501dc
client: only add RTP-Info when we have the info
...
Only add RTP-Info for a stream when we can get the seqnum and timestamp from the
depayloader.
2009-05-23 16:17:02 +02:00
Wim Taymans
3f1f38f479
server: use appsink and appsrc with the API
...
Use the appsink/appsrc API instead of the signals for higher
performance.
2009-04-14 23:38:58 +02:00
Wim Taymans
47c822bdf3
client: fix refcounting crasher
...
Don't need to remove the weak refs in the finalize methods, they are already
removed in the dispose.
Don't register the callback with a DestroyNofity.
2009-04-03 19:43:33 +02:00
Tim-Philipp Müller
0b8ffbbb5c
Fix rtsp client refcount management in TCP mode.
...
Don't unref a client ref we never had. Fixes an unref
of an already-free client object after a client
teardown request for me.
2009-04-01 01:23:32 +01:00
Wim Taymans
525d639cde
Add beginnings of seeking.
...
Parse the Range header and perform a seek on the pipeline for the requested
position. It's disabled currently until I figure out what's going wrong.
2009-03-12 20:32:14 +01:00
Wim Taymans
0ae095e825
allow pause requests for now.
...
--
2009-03-12 20:31:22 +01:00
Wim Taymans
d3c404f32f
Remove weak ref on the session in teardown
...
We need to remove our weakref from the session when we do a teardown because
else we close the TCP connection prematurely.
2009-03-11 20:03:06 +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
de1ebbc21b
Add support for live streams
...
Add support for live streams and ranges
Start on handling TCP data transfer.
2009-03-06 19:34:14 +01:00
Wim Taymans
d85b34f1b1
Only free the pending tunnel if there is one
...
--
2009-03-04 16:33:21 +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