Wim Taymans [Wed, 28 Nov 2012 11:39:37 +0000 (12:39 +0100)]
media: unref pipeline in finalize to avoid leaking it
Wim Taymans [Wed, 28 Nov 2012 11:10:47 +0000 (12:10 +0100)]
rtsp: use gst_object_unref on GstObjects
Wim Taymans [Wed, 28 Nov 2012 11:10:14 +0000 (12:10 +0100)]
media-factory: require an url
Wim Taymans [Wed, 28 Nov 2012 10:40:33 +0000 (11:40 +0100)]
examples: fix include
Wim Taymans [Wed, 28 Nov 2012 10:17:27 +0000 (11:17 +0100)]
server: remove unused include
Wim Taymans [Wed, 28 Nov 2012 10:07:57 +0000 (11:07 +0100)]
tests: add test for mountpoints
Wim Taymans [Wed, 28 Nov 2012 10:05:08 +0000 (11:05 +0100)]
client: fix factory leak
Keep the factory in the state object only for authorization checks and make
sure we unref it on failure. Also don't keep invalid objects in the state
object.
Wim Taymans [Wed, 28 Nov 2012 09:40:14 +0000 (10:40 +0100)]
mounts: add g_return_if guards
Wim Taymans [Tue, 27 Nov 2012 11:51:55 +0000 (12:51 +0100)]
tests: add more tests
Wim Taymans [Tue, 27 Nov 2012 11:33:02 +0000 (12:33 +0100)]
client: improve debug
Wim Taymans [Tue, 27 Nov 2012 11:24:21 +0000 (12:24 +0100)]
client: improve debug and fix leaks
Cleanup the uri and session when there is a bad request.
Wim Taymans [Tue, 27 Nov 2012 11:17:05 +0000 (12:17 +0100)]
update common
Wim Taymans [Tue, 27 Nov 2012 11:13:59 +0000 (12:13 +0100)]
test: add test for session in options request
Wim Taymans [Tue, 27 Nov 2012 11:11:41 +0000 (12:11 +0100)]
client: use 454 when session can't be found
We should use 454 when a session can't be found because there was no session
pool configured in the server. This is not a server configuration problem
because the server on which the request is done might not be the same one that
will keep the sessions for us and so it does not need to support sessions.
Wim Taymans [Tue, 27 Nov 2012 10:17:45 +0000 (11:17 +0100)]
client: only free connection when there is one
It's possible that the client doesn't have a connection when we try to free it.
Wim Taymans [Tue, 27 Nov 2012 10:17:31 +0000 (11:17 +0100)]
tests: add unit test for the client object
Wim Taymans [Mon, 26 Nov 2012 16:35:51 +0000 (17:35 +0100)]
client: small cleanup
Wim Taymans [Mon, 26 Nov 2012 16:34:35 +0000 (17:34 +0100)]
client: remove unused include
Wim Taymans [Mon, 26 Nov 2012 16:34:24 +0000 (17:34 +0100)]
client: fix compilation
Wim Taymans [Mon, 26 Nov 2012 16:28:29 +0000 (17:28 +0100)]
client: call destroy without the lock
Wim Taymans [Mon, 26 Nov 2012 16:20:39 +0000 (17:20 +0100)]
client: make the client usable without a socket
Make a method to let the client handle a message and a callback when the client
wants us to send a response message back. This makes it possible to also use the
client object without the sockets, which should make it easier to test.
Wim Taymans [Mon, 26 Nov 2012 15:45:04 +0000 (16:45 +0100)]
client: small cleanup
Wim Taymans [Mon, 26 Nov 2012 15:39:26 +0000 (16:39 +0100)]
client: remove reference to server
We don't need to keep a ref to the server
Wim Taymans [Mon, 26 Nov 2012 15:30:16 +0000 (16:30 +0100)]
client: add locking
Also add some g_return_if()
Wim Taymans [Mon, 26 Nov 2012 12:37:20 +0000 (13:37 +0100)]
client: log more errors
Wim Taymans [Mon, 26 Nov 2012 12:35:48 +0000 (13:35 +0100)]
client: fix compilation
Wim Taymans [Mon, 26 Nov 2012 12:16:59 +0000 (13:16 +0100)]
client: add generic close-after-send support
Add a property to send_response() to close the connection after the response has
been sent to the client.
Wim Taymans [Mon, 26 Nov 2012 11:34:05 +0000 (12:34 +0100)]
MediaMapping -> MountPoints
Describes better what the object manages.
Wim Taymans [Mon, 26 Nov 2012 08:36:09 +0000 (09:36 +0100)]
configure: bump required version of -base
Wim Taymans [Wed, 21 Nov 2012 16:21:28 +0000 (17:21 +0100)]
media: fix seeking
Wim Taymans [Wed, 21 Nov 2012 15:41:56 +0000 (16:41 +0100)]
media: support more Range formats
Use the new -base methods to convert the Range string into a seek start and stop
value.
Wim Taymans [Wed, 21 Nov 2012 15:41:37 +0000 (16:41 +0100)]
examples: fix whitespace
Wim Taymans [Tue, 20 Nov 2012 12:34:46 +0000 (13:34 +0100)]
test-auth: add example of how to remove sessions
Add an example of the session filter api.
Wim Taymans [Tue, 20 Nov 2012 11:47:49 +0000 (12:47 +0100)]
test-uri: remove mapping example
Wim Taymans [Tue, 20 Nov 2012 11:47:20 +0000 (12:47 +0100)]
test-uri: fix callback signature
Wim Taymans [Tue, 20 Nov 2012 11:29:55 +0000 (12:29 +0100)]
factory: keep ref to factory while media active
While the media from a factory is alive, keep a ref to the factory.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=663555
Wim Taymans [Tue, 20 Nov 2012 11:29:26 +0000 (12:29 +0100)]
factory-uri: add some debug
Wim Taymans [Tue, 20 Nov 2012 11:24:13 +0000 (12:24 +0100)]
stream: set udp sources to PLAYING
Set the UDP sources to PLAYING and locked state before we add it to the pipeline
so that it doesn't cause our pipeline to produce ASYNC-DONE.
Wim Taymans [Tue, 20 Nov 2012 11:10:16 +0000 (12:10 +0100)]
factory-uri: take ref to factory
Take a ref to the factory that we place in our list.
Wim Taymans [Tue, 20 Nov 2012 10:30:09 +0000 (11:30 +0100)]
test: add test for server reuse
See https://bugzilla.gnome.org/show_bug.cgi?id=688395
David Svensson Fors [Thu, 15 Nov 2012 13:02:37 +0000 (14:02 +0100)]
server: start and stop multiple times
Stop listening on the RTSP port when the GSource is removed, so clients
can't connect and the server can be started again.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688395
Wim Taymans [Tue, 20 Nov 2012 10:24:35 +0000 (11:24 +0100)]
server: fix small leak
Wim Taymans [Tue, 20 Nov 2012 08:42:51 +0000 (09:42 +0100)]
media: unref source in finish_unprepare
The source is created in prepare, unref it in finish_unprepare.
See https://bugzilla.gnome.org/show_bug.cgi?id=688707
David Svensson Fors [Mon, 19 Nov 2012 14:47:08 +0000 (15:47 +0100)]
rtsp-media: remove bus watch before finalizing
* A GDestroyNotify function is set for the bus watch in gst_rtsp_media_prepare.
* An extra media ref is added for the bus watch. This extra ref is unreffed by
the GDestroyNotify function.
* gst_rtsp_media_unprepare destroys the source so the bus watch is removed.
* GstRTSPClient, which calls gst_rtsp_media_prepare, also calls
gst_rtsp_media_unprepare before unreffing the media.
This way, the bus watch will be removed before the media is finalized.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688707
Alessandro Decina [Sat, 17 Nov 2012 13:51:52 +0000 (14:51 +0100)]
client: wait until the TEARDOWN response is sent to close the connection
Responses can be sent async so we need to wait until the TEARDOWN response has
been written before we close the connection to the client. This avoids the risk
of writing/polling closed sockets.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688535
David Svensson Fors [Mon, 19 Nov 2012 14:44:27 +0000 (15:44 +0100)]
rtsp-stream: plug socket leak
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688703
Tim-Philipp Müller [Mon, 19 Nov 2012 11:31:12 +0000 (11:31 +0000)]
Automatic update of common submodule
From 6bb6951 to a72faea
Tim-Philipp Müller [Sat, 17 Nov 2012 00:11:27 +0000 (00:11 +0000)]
rtsp-server: don't use deprecated API
Tim-Philipp Müller [Sat, 17 Nov 2012 00:03:42 +0000 (00:03 +0000)]
rtsp-client: fix unused-but-set-variable compiler warning
rtsp-client.c:1260:21: error: variable 'protocols' set but not used
Wim Taymans [Thu, 15 Nov 2012 16:11:16 +0000 (17:11 +0100)]
rtsp: cleanups
Wim Taymans [Thu, 15 Nov 2012 15:52:42 +0000 (16:52 +0100)]
examples: add another multicast example
Add an example for how to configure separate multicast ranges for each media
stream.
Wim Taymans [Thu, 15 Nov 2012 15:21:51 +0000 (16:21 +0100)]
test: set shared
Wim Taymans [Thu, 15 Nov 2012 15:18:29 +0000 (16:18 +0100)]
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.
Wim Taymans [Thu, 15 Nov 2012 15:15:20 +0000 (16:15 +0100)]
rtsp: improve debug
Wim Taymans [Thu, 15 Nov 2012 14:41:42 +0000 (15:41 +0100)]
media: add signal for new streams
This allows applications to listen for new streams and configure properties on
them, like the address pool.
Wim Taymans [Thu, 15 Nov 2012 14:41:19 +0000 (15:41 +0100)]
media: configure address pool in new streams
Wim Taymans [Thu, 15 Nov 2012 14:36:21 +0000 (15:36 +0100)]
stream: add methods to deal with address pool
Add methods to get and set the address pool for the stream
Add method to allocate and get the multicast addresses for this stream.
Wim Taymans [Thu, 15 Nov 2012 14:32:43 +0000 (15:32 +0100)]
media: remove MTU property
It is a stream property
Wim Taymans [Thu, 15 Nov 2012 14:29:35 +0000 (15:29 +0100)]
client: set blocksize only on stream
Set the blocksize only on the current stream.
Wim Taymans [Thu, 15 Nov 2012 12:52:07 +0000 (13:52 +0100)]
stream: share src and sink sockets
the allocated socket is in the used-socket property, not socket.
Wim Taymans [Thu, 15 Nov 2012 12:25:14 +0000 (13:25 +0100)]
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.
Wim Taymans [Thu, 15 Nov 2012 12:22:54 +0000 (13:22 +0100)]
examples: add multicast example
Show how to set up the multicast address pool so that media can be
server with multicast.
Wim Taymans [Wed, 14 Nov 2012 16:23:59 +0000 (17:23 +0100)]
rtsp: use AddressPool
Remove the multicast_group property.
Use the configured addresspool to allocate multicast addresses.
Wim Taymans [Wed, 14 Nov 2012 15:17:33 +0000 (16:17 +0100)]
address-pool: add clear method
Wim Taymans [Wed, 14 Nov 2012 15:10:45 +0000 (16:10 +0100)]
address-pool: small cleanups
Wim Taymans [Wed, 14 Nov 2012 14:50:42 +0000 (15:50 +0100)]
tests: add addresspool unit test
Wim Taymans [Wed, 14 Nov 2012 14:49:06 +0000 (15:49 +0100)]
address-pool: add object to manage multicast addresses
Make an object that can manage a rage of multicast addresses and ports.
Wim Taymans [Tue, 13 Nov 2012 11:05:42 +0000 (12:05 +0100)]
server: set default max-threads property
Wim Taymans [Tue, 13 Nov 2012 10:54:17 +0000 (11:54 +0100)]
media: wait for concurrent _prepare
If a prepare is busy, wait for the result.
Wim Taymans [Tue, 13 Nov 2012 10:49:08 +0000 (11:49 +0100)]
media: add lock around message handler
We don't want to dispatch messages while we are still processing the result of
the state change.
Wim Taymans [Tue, 13 Nov 2012 10:15:35 +0000 (11:15 +0100)]
media: add lock to protect state changes
Wim Taymans [Tue, 13 Nov 2012 10:14:49 +0000 (11:14 +0100)]
stream: add locking
Wim Taymans [Mon, 12 Nov 2012 16:11:18 +0000 (17:11 +0100)]
stream-transport: add keep-alive method
Wim Taymans [Mon, 12 Nov 2012 16:06:42 +0000 (17:06 +0100)]
stream-transport: add method to handle RTP/RTCP
Call new methods instead of poking into the structures directly.
Wim Taymans [Mon, 12 Nov 2012 15:51:03 +0000 (16:51 +0100)]
session-media: add locking
Wim Taymans [Mon, 12 Nov 2012 15:42:37 +0000 (16:42 +0100)]
session: add locking
Wim Taymans [Mon, 12 Nov 2012 15:30:16 +0000 (16:30 +0100)]
server: free old socket
Wim Taymans [Mon, 12 Nov 2012 15:18:57 +0000 (16:18 +0100)]
mapping: add locking
Wim Taymans [Mon, 12 Nov 2012 15:14:19 +0000 (16:14 +0100)]
media-factory: add locking
Wim Taymans [Mon, 12 Nov 2012 15:03:21 +0000 (16:03 +0100)]
auth: add locking
Wim Taymans [Mon, 12 Nov 2012 14:53:28 +0000 (15:53 +0100)]
server: add max-thread property
Wim Taymans [Mon, 12 Nov 2012 14:29:39 +0000 (15:29 +0100)]
server: use a threadpool for the mainloops
Wim Taymans [Mon, 12 Nov 2012 13:30:43 +0000 (14:30 +0100)]
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.
Wim Taymans [Mon, 12 Nov 2012 13:09:09 +0000 (14:09 +0100)]
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.
Wim Taymans [Mon, 12 Nov 2012 11:40:34 +0000 (12:40 +0100)]
session: move session header code in session object
Tim-Philipp Müller [Sun, 4 Nov 2012 00:14:25 +0000 (00:14 +0000)]
Fix FSF address
Sebastian Pölsterl [Sun, 28 Oct 2012 12:48:44 +0000 (13:48 +0100)]
rtsp-server: added annotations to indicate type of ownership transfer of return values
https://bugzilla.gnome.org/show_bug.cgi?id=680777
Tim-Philipp Müller [Sun, 28 Oct 2012 15:37:51 +0000 (15:37 +0000)]
No need to define GST_USE_UNSTABLE_API any more, 1.0 is stable now
Tim-Philipp Müller [Sun, 28 Oct 2012 15:09:04 +0000 (15:09 +0000)]
bindings: remove vala bindings
They'll be reunited with the other GStreamer bindings
https://bugzilla.gnome.org/show_bug.cgi?id=680777
Wim Taymans [Sat, 27 Oct 2012 22:23:57 +0000 (00:23 +0200)]
rtsp: only create transport when needed
Only create the StreamTransport when configured.
Wim Taymans [Sat, 27 Oct 2012 21:53:35 +0000 (23:53 +0200)]
client: small cleanup
Wim Taymans [Sat, 27 Oct 2012 21:49:24 +0000 (23:49 +0200)]
rtsp: refactor configuration of transport
Move the configuration of the transport to a place where it makes
more sense.
Wim Taymans [Sat, 27 Oct 2012 19:26:55 +0000 (21:26 +0200)]
client: refactor transport parsing
Wim Taymans [Sat, 27 Oct 2012 19:05:03 +0000 (21:05 +0200)]
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.
Wim Taymans [Sat, 27 Oct 2012 09:53:51 +0000 (11:53 +0200)]
small fixes to docs and debug
Wim Taymans [Fri, 26 Oct 2012 15:29:30 +0000 (17:29 +0200)]
stream: transports must already have been removed
Wim Taymans [Fri, 26 Oct 2012 15:28:10 +0000 (17:28 +0200)]
stream: improve join and leave of the pipeline
simplify code
Do the cleanup properly
Add some docs
Wim Taymans [Fri, 26 Oct 2012 13:23:16 +0000 (15:23 +0200)]
media: move unprepare below default implementation
Makes it easier to find the default implementation
Wim Taymans [Fri, 26 Oct 2012 13:21:50 +0000 (15:21 +0200)]
media: signal unprepared when we actually finish
Wim Taymans [Fri, 26 Oct 2012 13:19:23 +0000 (15:19 +0200)]
media: no need to unlock, unprepare does that when needed