platform/upstream/gstreamer.git
11 years agortsp-client: set the client backlog
Wim Taymans [Fri, 14 Dec 2012 10:58:29 +0000 (11:58 +0100)]
rtsp-client: set the client backlog

Set the client backlog to a reasonable default

11 years agortsp-media: Make the element a constructor parameter
Ognyan Tonchev [Tue, 4 Dec 2012 08:47:35 +0000 (09:47 +0100)]
rtsp-media: Make the element a constructor parameter

https://bugzilla.gnome.org/show_bug.cgi?id=689594

11 years agodocs: Link with gcov library when gcov is enabled
Sebastian Rasmussen [Tue, 4 Dec 2012 00:05:31 +0000 (01:05 +0100)]
docs: Link with gcov library when gcov is enabled

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=689583

11 years agomedia: match prepare with unprepare
Wim Taymans [Fri, 30 Nov 2012 14:03:15 +0000 (15:03 +0100)]
media: match prepare with unprepare

Really unprepare when there were an equal amount of prepare calls.

11 years agomedia: media has to be unprepared in finalize
Wim Taymans [Fri, 30 Nov 2012 13:58:46 +0000 (14:58 +0100)]
media: media has to be unprepared in finalize

Because unprepare takes away the last ref on the media.

11 years agoRevert "client: never call gst_rtsp_media_unprepare, let gst_rtsp_media_finalize...
Wim Taymans [Fri, 30 Nov 2012 13:36:30 +0000 (14:36 +0100)]
Revert "client: never call gst_rtsp_media_unprepare, let gst_rtsp_media_finalize do it"

This reverts commit ba5b78ff2ff223049188eb456e228c709ccd3e05.

We can't use the refcount to trigger unprepare because it is the unprepare call
that removes the last refcount after all messages are consumed. What we should
probably do is make a prepared refcount and only unprepare when the refcount
reaches 0.

11 years agomedia: let the source unref the last media ref
Wim Taymans [Fri, 30 Nov 2012 12:35:05 +0000 (13:35 +0100)]
media: let the source unref the last media ref

the last ref to the media is held by the source so we don't need to add more ref
and unrefs, we simply destroy the media when the source is gone.

11 years agomedia: improve debug
Wim Taymans [Fri, 30 Nov 2012 11:54:10 +0000 (12:54 +0100)]
media: improve debug

11 years agomedia: check state
Wim Taymans [Fri, 30 Nov 2012 11:53:02 +0000 (12:53 +0100)]
media: check state

Make sure we are in the right state when collecting the position and duration.
Only make ourselves PREPARED when we were previously PREPARING.

11 years agomedia: use g_object_ref/unref for GObjects
Wim Taymans [Fri, 30 Nov 2012 09:05:48 +0000 (10:05 +0100)]
media: use g_object_ref/unref for GObjects

11 years agoclient: never call gst_rtsp_media_unprepare, let gst_rtsp_media_finalize do it
Alessandro Decina [Fri, 30 Nov 2012 06:05:25 +0000 (07:05 +0100)]
client: never call gst_rtsp_media_unprepare, let gst_rtsp_media_finalize do it

Calling gst_rtsp_media_unprepare breaks shared medias. Just unref
GstRTSPMedia instances and let gst_rtsp_media_finalize unprepare when a media
isn't being used anymore.

11 years agoFix compiler warning
Alessandro Decina [Fri, 30 Nov 2012 05:17:46 +0000 (06:17 +0100)]
Fix compiler warning

11 years agoAdd missing g_type_class_add_private in GstRTSPMediaFactoryURI
Alessandro Decina [Fri, 30 Nov 2012 05:14:49 +0000 (06:14 +0100)]
Add missing g_type_class_add_private in GstRTSPMediaFactoryURI

11 years agosmall cleanup
Wim Taymans [Thu, 29 Nov 2012 16:21:12 +0000 (17:21 +0100)]
small cleanup

11 years agomedia: avoid element leak
Wim Taymans [Thu, 29 Nov 2012 16:20:56 +0000 (17:20 +0100)]
media: avoid element leak

11 years agomedia: require an element in media constructor
Wim Taymans [Thu, 29 Nov 2012 16:20:26 +0000 (17:20 +0100)]
media: require an element in media constructor

11 years agoRevert "client: TEARDOWN brings that state to Init again"
Wim Taymans [Thu, 29 Nov 2012 16:07:30 +0000 (17:07 +0100)]
Revert "client: TEARDOWN brings that state to Init again"

This reverts commit 4b61fdad85a3ca84752bf074fdb2fa203954b32e.

The object is already disposed, there is no point in setting the state.

11 years agoclient: TEARDOWN brings that state to Init again
Wim Taymans [Thu, 29 Nov 2012 11:30:20 +0000 (12:30 +0100)]
client: TEARDOWN brings that state to Init again

11 years agortsp: make object details private
Wim Taymans [Thu, 29 Nov 2012 10:11:05 +0000 (11:11 +0100)]
rtsp: make object details private

Make all object details private
Add methods to access private bits

11 years agotests: add media tests
Wim Taymans [Wed, 28 Nov 2012 13:50:47 +0000 (14:50 +0100)]
tests: add media tests

11 years agomedia: check if prepared for some methods
Wim Taymans [Wed, 28 Nov 2012 13:45:30 +0000 (14:45 +0100)]
media: check if prepared for some methods

Check that the media object is prepared before doing seek and getting the
current position etc.
Add some g_return checks.

11 years agotests: add mediafactory test
Wim Taymans [Wed, 28 Nov 2012 11:40:46 +0000 (12:40 +0100)]
tests: add mediafactory test

11 years agostream: improve debug
Wim Taymans [Wed, 28 Nov 2012 11:40:18 +0000 (12:40 +0100)]
stream: improve debug

11 years agomedia: unref pipeline in finalize to avoid leaking it
Wim Taymans [Wed, 28 Nov 2012 11:39:37 +0000 (12:39 +0100)]
media: unref pipeline in finalize to avoid leaking it

11 years agortsp: use gst_object_unref on GstObjects
Wim Taymans [Wed, 28 Nov 2012 11:10:47 +0000 (12:10 +0100)]
rtsp: use gst_object_unref on GstObjects

11 years agomedia-factory: require an url
Wim Taymans [Wed, 28 Nov 2012 11:10:14 +0000 (12:10 +0100)]
media-factory: require an url

11 years agoexamples: fix include
Wim Taymans [Wed, 28 Nov 2012 10:40:33 +0000 (11:40 +0100)]
examples: fix include

11 years agoserver: remove unused include
Wim Taymans [Wed, 28 Nov 2012 10:17:27 +0000 (11:17 +0100)]
server: remove unused include

11 years agotests: add test for mountpoints
Wim Taymans [Wed, 28 Nov 2012 10:07:57 +0000 (11:07 +0100)]
tests: add test for mountpoints

11 years agoclient: fix factory leak
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.

11 years agomounts: add g_return_if guards
Wim Taymans [Wed, 28 Nov 2012 09:40:14 +0000 (10:40 +0100)]
mounts: add g_return_if guards

11 years agotests: add more tests
Wim Taymans [Tue, 27 Nov 2012 11:51:55 +0000 (12:51 +0100)]
tests: add more tests

11 years agoclient: improve debug
Wim Taymans [Tue, 27 Nov 2012 11:33:02 +0000 (12:33 +0100)]
client: improve debug

11 years agoclient: improve debug and fix leaks
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.

11 years agoupdate common
Wim Taymans [Tue, 27 Nov 2012 11:17:05 +0000 (12:17 +0100)]
update common

11 years agotest: add test for session in options request
Wim Taymans [Tue, 27 Nov 2012 11:13:59 +0000 (12:13 +0100)]
test: add test for session in options request

11 years agoclient: use 454 when session can't be found
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.

11 years agoclient: only free connection when there is one
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.

11 years agotests: add unit test for the client object
Wim Taymans [Tue, 27 Nov 2012 10:17:31 +0000 (11:17 +0100)]
tests: add unit test for the client object

11 years agoclient: small cleanup
Wim Taymans [Mon, 26 Nov 2012 16:35:51 +0000 (17:35 +0100)]
client: small cleanup

11 years agoclient: remove unused include
Wim Taymans [Mon, 26 Nov 2012 16:34:35 +0000 (17:34 +0100)]
client: remove unused include

11 years agoclient: fix compilation
Wim Taymans [Mon, 26 Nov 2012 16:34:24 +0000 (17:34 +0100)]
client: fix compilation

11 years agoclient: call destroy without the lock
Wim Taymans [Mon, 26 Nov 2012 16:28:29 +0000 (17:28 +0100)]
client: call destroy without the lock

11 years agoclient: make the client usable without a socket
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.

11 years agoclient: small cleanup
Wim Taymans [Mon, 26 Nov 2012 15:45:04 +0000 (16:45 +0100)]
client: small cleanup

11 years agoclient: remove reference to server
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

11 years agoclient: add locking
Wim Taymans [Mon, 26 Nov 2012 15:30:16 +0000 (16:30 +0100)]
client: add locking

Also add some g_return_if()

11 years agoclient: log more errors
Wim Taymans [Mon, 26 Nov 2012 12:37:20 +0000 (13:37 +0100)]
client: log more errors

11 years agoclient: fix compilation
Wim Taymans [Mon, 26 Nov 2012 12:35:48 +0000 (13:35 +0100)]
client: fix compilation

11 years agoclient: add generic close-after-send support
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.

11 years agoMediaMapping -> MountPoints
Wim Taymans [Mon, 26 Nov 2012 11:34:05 +0000 (12:34 +0100)]
MediaMapping -> MountPoints

Describes better what the object manages.

11 years agoconfigure: bump required version of -base
Wim Taymans [Mon, 26 Nov 2012 08:36:09 +0000 (09:36 +0100)]
configure: bump required version of -base

11 years agomedia: fix seeking
Wim Taymans [Wed, 21 Nov 2012 16:21:28 +0000 (17:21 +0100)]
media: fix seeking

11 years agomedia: support more Range formats
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.

11 years agoexamples: fix whitespace
Wim Taymans [Wed, 21 Nov 2012 15:41:37 +0000 (16:41 +0100)]
examples: fix whitespace

11 years agotest-auth: add example of how to remove sessions
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.

11 years agotest-uri: remove mapping example
Wim Taymans [Tue, 20 Nov 2012 11:47:49 +0000 (12:47 +0100)]
test-uri: remove mapping example

11 years agotest-uri: fix callback signature
Wim Taymans [Tue, 20 Nov 2012 11:47:20 +0000 (12:47 +0100)]
test-uri: fix callback signature

11 years agofactory: keep ref to factory while media active
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

11 years agofactory-uri: add some debug
Wim Taymans [Tue, 20 Nov 2012 11:29:26 +0000 (12:29 +0100)]
factory-uri: add some debug

11 years agostream: set udp sources to PLAYING
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.

11 years agofactory-uri: take ref to factory
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.

11 years agotest: add test for server reuse
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

11 years agoserver: start and stop multiple times
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

11 years agoserver: fix small leak
Wim Taymans [Tue, 20 Nov 2012 10:24:35 +0000 (11:24 +0100)]
server: fix small leak

11 years agomedia: unref source in finish_unprepare
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

11 years agortsp-media: remove bus watch before finalizing
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

11 years agoclient: wait until the TEARDOWN response is sent to close the connection
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

11 years agortsp-stream: plug socket leak
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

11 years agoAutomatic update of common submodule
Tim-Philipp Müller [Mon, 19 Nov 2012 11:31:12 +0000 (11:31 +0000)]
Automatic update of common submodule

From 6bb6951 to a72faea

11 years agortsp-server: don't use deprecated API
Tim-Philipp Müller [Sat, 17 Nov 2012 00:11:27 +0000 (00:11 +0000)]
rtsp-server: don't use deprecated API

11 years agortsp-client: fix unused-but-set-variable compiler warning
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

11 years agortsp: cleanups
Wim Taymans [Thu, 15 Nov 2012 16:11:16 +0000 (17:11 +0100)]
rtsp: cleanups

11 years agoexamples: add another multicast example
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.

11 years agotest: set shared
Wim Taymans [Thu, 15 Nov 2012 15:21:51 +0000 (16:21 +0100)]
test: set shared

11 years agostream: use the address managed by the stream
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.

11 years agortsp: improve debug
Wim Taymans [Thu, 15 Nov 2012 15:15:20 +0000 (16:15 +0100)]
rtsp: improve debug

11 years agomedia: add signal for new streams
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.

11 years agomedia: configure address pool in new streams
Wim Taymans [Thu, 15 Nov 2012 14:41:19 +0000 (15:41 +0100)]
media: configure address pool in new streams

11 years agostream: add methods to deal with address pool
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.

11 years agomedia: remove MTU property
Wim Taymans [Thu, 15 Nov 2012 14:32:43 +0000 (15:32 +0100)]
media: remove MTU property

It is a stream property

11 years agoclient: set blocksize only on stream
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.

11 years agostream: share src and sink sockets
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.

11 years agortsp: make address-pool return an address object
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.

11 years agoexamples: add multicast example
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.

11 years agortsp: use AddressPool
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.

11 years agoaddress-pool: add clear method
Wim Taymans [Wed, 14 Nov 2012 15:17:33 +0000 (16:17 +0100)]
address-pool: add clear method

11 years agoaddress-pool: small cleanups
Wim Taymans [Wed, 14 Nov 2012 15:10:45 +0000 (16:10 +0100)]
address-pool: small cleanups

11 years agotests: add addresspool unit test
Wim Taymans [Wed, 14 Nov 2012 14:50:42 +0000 (15:50 +0100)]
tests: add addresspool unit test

11 years agoaddress-pool: add object to manage multicast addresses
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.

11 years agoserver: set default max-threads property
Wim Taymans [Tue, 13 Nov 2012 11:05:42 +0000 (12:05 +0100)]
server: set default max-threads property

11 years agomedia: wait for concurrent _prepare
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.

11 years agomedia: add lock around message handler
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.

11 years agomedia: add lock to protect state changes
Wim Taymans [Tue, 13 Nov 2012 10:15:35 +0000 (11:15 +0100)]
media: add lock to protect state changes

11 years agostream: add locking
Wim Taymans [Tue, 13 Nov 2012 10:14:49 +0000 (11:14 +0100)]
stream: add locking

11 years agostream-transport: add keep-alive method
Wim Taymans [Mon, 12 Nov 2012 16:11:18 +0000 (17:11 +0100)]
stream-transport: add keep-alive method

11 years agostream-transport: add method to handle RTP/RTCP
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.

11 years agosession-media: add locking
Wim Taymans [Mon, 12 Nov 2012 15:51:03 +0000 (16:51 +0100)]
session-media: add locking

11 years agosession: add locking
Wim Taymans [Mon, 12 Nov 2012 15:42:37 +0000 (16:42 +0100)]
session: add locking

11 years agoserver: free old socket
Wim Taymans [Mon, 12 Nov 2012 15:30:16 +0000 (16:30 +0100)]
server: free old socket