platform/upstream/gst-rtsp-server.git
11 years agoclient: don't check url in response
Wim Taymans [Fri, 23 Aug 2013 08:38:43 +0000 (10:38 +0200)]
client: don't check url in response

There is no url or method in the response to check

11 years agoAdd handle-response signal for when we receive a GET_PARAMETER response
Youness Alaoui [Thu, 8 Aug 2013 14:57:42 +0000 (10:57 -0400)]
Add handle-response signal for when we receive a GET_PARAMETER response

11 years agoFix gst_rtsp_server_client_filter, using wrong variable type
Youness Alaoui [Fri, 16 Aug 2013 16:42:22 +0000 (12:42 -0400)]
Fix gst_rtsp_server_client_filter, using wrong variable type

11 years agortsp-media-factory-uri: check AAC properly for whether it's parsed or not
Tim-Philipp Müller [Thu, 22 Aug 2013 17:39:59 +0000 (18:39 +0100)]
rtsp-media-factory-uri: check AAC properly for whether it's parsed or not

For AAC we need to check for framed=true instead of parsed=true.

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

11 years agostream: optimize pipeline for protocols
Wim Taymans [Fri, 16 Aug 2013 15:05:24 +0000 (17:05 +0200)]
stream: optimize pipeline for protocols

When TCP is not an allowed protocol for the stream, avoid creating the
appsrc/appsink/queue and tee elements.

11 years agomedia: set protocols on streams
Wim Taymans [Fri, 16 Aug 2013 14:34:56 +0000 (16:34 +0200)]
media: set protocols on streams

11 years agoclient: use protocols supported by stream
Wim Taymans [Fri, 16 Aug 2013 14:16:31 +0000 (16:16 +0200)]
client: use protocols supported by stream

11 years agomedia-factory: allow all protocols
Wim Taymans [Fri, 16 Aug 2013 14:16:00 +0000 (16:16 +0200)]
media-factory: allow all protocols

11 years agomedia: configure protocols in new streams
Wim Taymans [Fri, 16 Aug 2013 14:10:43 +0000 (16:10 +0200)]
media: configure protocols in new streams

11 years agostream: add protocols property
Wim Taymans [Fri, 16 Aug 2013 14:08:43 +0000 (16:08 +0200)]
stream: add protocols property

11 years agortsp-media: send state in "new-state" signal
Youness Alaoui [Mon, 5 Aug 2013 14:46:33 +0000 (10:46 -0400)]
rtsp-media: send state in "new-state" signal

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

11 years agobuild: add subdir-objects to AM_INIT_AUTOMAKE
Lubosz Sarnecki [Fri, 2 Aug 2013 12:11:01 +0000 (14:11 +0200)]
build: add subdir-objects to AM_INIT_AUTOMAKE

Fixes warnings with automake 1.14

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

11 years agoserver: add method to iterate clients of server
Wim Taymans [Fri, 2 Aug 2013 15:15:09 +0000 (17:15 +0200)]
server: add method to iterate clients of server

11 years agoAdd vmethod for rtsp-media subclass to access rtpbin
Youness Alaoui [Tue, 11 Jun 2013 23:10:01 +0000 (19:10 -0400)]
Add vmethod for rtsp-media subclass to access rtpbin

11 years agosmall documentation fix
Youness Alaoui [Thu, 11 Jul 2013 20:12:04 +0000 (16:12 -0400)]
small documentation fix

11 years agoDo not take range header if range is invalid
Youness Alaoui [Thu, 11 Jul 2013 20:11:55 +0000 (16:11 -0400)]
Do not take range header if range is invalid

11 years agomedia: add docs for new method
Wim Taymans [Fri, 2 Aug 2013 14:57:26 +0000 (16:57 +0200)]
media: add docs for new method

11 years agoAdd API to rtsp-media set the pipeline's state
Youness Alaoui [Tue, 2 Jul 2013 22:55:28 +0000 (18:55 -0400)]
Add API to rtsp-media set the pipeline's state

11 years agoUpdate current position/duration when gst_rtsp_media_get_range_string is called
Youness Alaoui [Tue, 11 Jun 2013 23:09:42 +0000 (19:09 -0400)]
Update current position/duration when gst_rtsp_media_get_range_string is called

11 years agotests: add some more docs
Wim Taymans [Mon, 22 Jul 2013 15:27:27 +0000 (17:27 +0200)]
tests: add some more docs

11 years agoClientState -> Context
Wim Taymans [Mon, 22 Jul 2013 12:25:04 +0000 (14:25 +0200)]
ClientState -> Context

Rename the clientstate to context and put the code in a separate file.

11 years agoauth: add support for default token
Wim Taymans [Thu, 18 Jul 2013 10:19:25 +0000 (12:19 +0200)]
auth: add support for default token

The default token is used when the user is not authenticated and can be used to
give minimal permissions.

11 years agoauth: use defines when possible
Wim Taymans [Thu, 18 Jul 2013 09:44:50 +0000 (11:44 +0200)]
auth: use defines when possible

11 years agoaddress-pool: improve docs
Wim Taymans [Thu, 18 Jul 2013 09:44:21 +0000 (11:44 +0200)]
address-pool: improve docs

11 years agopermissions: add the role to the copy
Wim Taymans [Thu, 18 Jul 2013 10:26:45 +0000 (12:26 +0200)]
permissions: add the role to the copy

11 years agopermissions: Also copy the roles
Olivier Crête [Wed, 17 Jul 2013 23:35:33 +0000 (19:35 -0400)]
permissions: Also copy the roles

11 years agopermissions: Make it build
Olivier Crête [Wed, 17 Jul 2013 23:32:09 +0000 (19:32 -0400)]
permissions: Make it build

11 years agodocs: small fixes
Wim Taymans [Tue, 16 Jul 2013 10:36:56 +0000 (12:36 +0200)]
docs: small fixes

11 years agodocs: improve docs
Wim Taymans [Tue, 16 Jul 2013 10:32:51 +0000 (12:32 +0200)]
docs: improve docs

11 years agoaddress-pool: cleanups
Wim Taymans [Tue, 16 Jul 2013 10:32:00 +0000 (12:32 +0200)]
address-pool: cleanups

Remove redundant method, improve docs.

11 years agodocs: improve docs
Wim Taymans [Mon, 15 Jul 2013 15:31:35 +0000 (17:31 +0200)]
docs: improve docs

11 years agopermissions: implement _remove_role
Wim Taymans [Mon, 15 Jul 2013 15:12:57 +0000 (17:12 +0200)]
permissions: implement _remove_role

11 years agopermissions: update docs
Wim Taymans [Mon, 15 Jul 2013 15:12:43 +0000 (17:12 +0200)]
permissions: update docs

11 years agotests: simplify tests
Wim Taymans [Mon, 15 Jul 2013 14:48:37 +0000 (16:48 +0200)]
tests: simplify tests

Client settings are now disabled by default so we don't need an auth
module to disable them.

11 years agoauth: add default authorizations
Wim Taymans [Mon, 15 Jul 2013 14:47:07 +0000 (16:47 +0200)]
auth: add default authorizations

When no auth module is specified, use our table of defaults to look up the
default value of the check instead of always allowing everything. This was
we can disallow client settings by default.

11 years agoREADME: update readme
Wim Taymans [Mon, 15 Jul 2013 14:05:02 +0000 (16:05 +0200)]
README: update readme

11 years agothread-pool: add more docs
Wim Taymans [Mon, 15 Jul 2013 13:25:00 +0000 (15:25 +0200)]
thread-pool: add more docs

11 years agothread-pool: fix race in thread reuse
Wim Taymans [Mon, 15 Jul 2013 12:50:38 +0000 (14:50 +0200)]
thread-pool: fix race in thread reuse

If we try to reuse a thread right after we made it stop, we end up using a
stopped thread. Catch this case and only reuse threads that are not stopping.

11 years agoserver: add small debug
Wim Taymans [Mon, 15 Jul 2013 12:50:26 +0000 (14:50 +0200)]
server: add small debug

11 years agoclient: fix test
Wim Taymans [Mon, 15 Jul 2013 09:58:58 +0000 (11:58 +0200)]
client: fix test

Add some permissions to media so we can use the auth and enable
client settings.

11 years agoclient: support pushed context in handle_request
Wim Taymans [Mon, 15 Jul 2013 09:57:49 +0000 (11:57 +0200)]
client: support pushed context in handle_request

If we already have a pushed state, reuse it and add our own things. This makes
it easier to write tests.

11 years agoauth: don't auth on methods
Wim Taymans [Mon, 15 Jul 2013 09:56:06 +0000 (11:56 +0200)]
auth: don't auth on methods

Don't authorize on methods anymore but on the resources that we
try to access, this is more flexible.
Move the authorization checks to where they are needed and let the
check return the response on error.

11 years agomount-points: add some debug
Wim Taymans [Mon, 15 Jul 2013 09:51:34 +0000 (11:51 +0200)]
mount-points: add some debug

11 years agotests: almost fix test
Wim Taymans [Fri, 12 Jul 2013 15:26:55 +0000 (17:26 +0200)]
tests: almost fix test

11 years agoauth: let the auth module check client_settings
Wim Taymans [Fri, 12 Jul 2013 15:07:53 +0000 (17:07 +0200)]
auth: let the auth module check client_settings

Let the auth module decide if client settings are allowed for the
current client.

11 years agotoken: add method to check boolean permission
Wim Taymans [Fri, 12 Jul 2013 15:06:37 +0000 (17:06 +0200)]
token: add method to check boolean permission

11 years agotoken: simplify token constructor
Wim Taymans [Fri, 12 Jul 2013 14:36:05 +0000 (16:36 +0200)]
token: simplify token constructor

Use variable arguments to make easier API.

11 years agomedia-factory: add convenience API for factory
Wim Taymans [Fri, 12 Jul 2013 14:17:57 +0000 (16:17 +0200)]
media-factory: add convenience API for factory

11 years agopermissions: simplify API a little
Wim Taymans [Fri, 12 Jul 2013 14:03:07 +0000 (16:03 +0200)]
permissions: simplify API a little

Avoid passing GstStructure in the add_role method, use varargs instead
to construct the structure behind the scenes. We can then also use the
structure name as the role and simplify some more logic.

11 years agoauth: fix typo
Wim Taymans [Fri, 12 Jul 2013 14:01:14 +0000 (16:01 +0200)]
auth: fix typo

11 years agoauth: handle unauthorized response
Wim Taymans [Fri, 12 Jul 2013 13:19:29 +0000 (15:19 +0200)]
auth: handle unauthorized response

Move handling of the unauthorized response to the auth module, it can add
the appropriate headers to request authorization for the required method
much better than the client.

11 years agoclient: allow for sending any message, not only requests
Wim Taymans [Fri, 12 Jul 2013 13:13:48 +0000 (15:13 +0200)]
client: allow for sending any message, not only requests

Change the _send_request() method to _send_message() so that we
can both send requests and replies.

11 years agodocs: fix docs
Wim Taymans [Fri, 12 Jul 2013 12:10:13 +0000 (14:10 +0200)]
docs: fix docs

11 years agoauth: move TLS handling to auth module
Wim Taymans [Fri, 12 Jul 2013 10:41:52 +0000 (12:41 +0200)]
auth: move TLS handling to auth module

Remove the TLS settings on the server and move it to the auth module because
that is where security related bits go.

11 years agoclient: add state push/pop
Wim Taymans [Fri, 12 Jul 2013 10:38:54 +0000 (12:38 +0200)]
client: add state push/pop

11 years agoclient: add connection to state
Wim Taymans [Fri, 12 Jul 2013 10:36:40 +0000 (12:36 +0200)]
client: add connection to state

11 years agomount-points: fix debug
Wim Taymans [Thu, 11 Jul 2013 18:45:11 +0000 (20:45 +0200)]
mount-points: fix debug

11 years agotests: fix media test
Wim Taymans [Thu, 11 Jul 2013 15:28:17 +0000 (17:28 +0200)]
tests: fix media test

11 years agothread-pool: we don't require a state
Wim Taymans [Thu, 11 Jul 2013 15:28:04 +0000 (17:28 +0200)]
thread-pool: we don't require a state

11 years agoserver: let context ref the server
Wim Taymans [Thu, 11 Jul 2013 15:18:58 +0000 (17:18 +0200)]
server: let context ref the server

So that we don't risk losing the server object early anc crash.

11 years agotests: fix client test
Wim Taymans [Thu, 11 Jul 2013 15:05:00 +0000 (17:05 +0200)]
tests: fix client test

11 years agodocs: improve docs
Wim Taymans [Thu, 11 Jul 2013 14:57:14 +0000 (16:57 +0200)]
docs: improve docs

11 years agosession-pool: make vmethod to create a session
Wim Taymans [Thu, 11 Jul 2013 14:28:09 +0000 (16:28 +0200)]
session-pool: make vmethod to create a session

Make a vmethod to create a sessions so that subclasses can create
custom session objects

11 years agodocs: more updates
Wim Taymans [Thu, 11 Jul 2013 10:24:33 +0000 (12:24 +0200)]
docs: more updates

11 years agodocs: update docs
Wim Taymans [Thu, 11 Jul 2013 10:18:26 +0000 (12:18 +0200)]
docs: update docs

11 years agoconfigure: compile cgroup example conditionally
Wim Taymans [Thu, 11 Jul 2013 08:28:06 +0000 (10:28 +0200)]
configure: compile cgroup example conditionally

Only compile the cgroup example when we have libcgroup

11 years agoexamples: add cgroups example
Wim Taymans [Wed, 10 Jul 2013 18:57:12 +0000 (20:57 +0200)]
examples: add cgroups example

11 years agotests: fix compilation
Wim Taymans [Wed, 10 Jul 2013 18:55:03 +0000 (20:55 +0200)]
tests: fix compilation

11 years agothread-pool: fix vmethod invocation
Wim Taymans [Wed, 10 Jul 2013 18:48:47 +0000 (20:48 +0200)]
thread-pool: fix vmethod invocation

11 years agothread-pool: store thread type in thread
Wim Taymans [Wed, 10 Jul 2013 18:48:18 +0000 (20:48 +0200)]
thread-pool: store thread type in thread

11 years agoclient: pass thread from pool to media _prepare
Wim Taymans [Wed, 10 Jul 2013 15:09:27 +0000 (17:09 +0200)]
client: pass thread from pool to media _prepare

Get a thread from the configured threadpool and pass it to the prepare method of
the media.

11 years agomedia: Accept a thread in _prepare
Wim Taymans [Wed, 10 Jul 2013 15:08:14 +0000 (17:08 +0200)]
media: Accept a thread in _prepare

Remove out own threadpool handling and use the provided thread and
maincontext for the bus messages and the state changes.

11 years agoserver: configure client thread pool
Wim Taymans [Wed, 10 Jul 2013 15:07:13 +0000 (17:07 +0200)]
server: configure client thread pool

11 years agoclient: add method to configure thread pool
Wim Taymans [Wed, 10 Jul 2013 15:06:36 +0000 (17:06 +0200)]
client: add method to configure thread pool

11 years agoserver: use thread pool
Wim Taymans [Wed, 10 Jul 2013 14:49:55 +0000 (16:49 +0200)]
server: use thread pool

Use the thread pool instead of doing our own thing.

11 years agothread-pool: add object to manage threads
Wim Taymans [Wed, 10 Jul 2013 14:47:43 +0000 (16:47 +0200)]
thread-pool: add object to manage threads

Add an object to manage the client and media threads.

11 years agoauth: debug authorization check
Wim Taymans [Wed, 10 Jul 2013 13:28:35 +0000 (15:28 +0200)]
auth: debug authorization check

11 years agomedia: start media pipeline in context
Wim Taymans [Tue, 9 Jul 2013 18:44:51 +0000 (20:44 +0200)]
media: start media pipeline in context

Start the media pipeline in the provided context (or our default one
when NULL). This makes sure that we run the bus thread in this context and that
all media threads are children of this context.

11 years agofactory: pass permissions to media by default
Wim Taymans [Tue, 9 Jul 2013 14:38:39 +0000 (16:38 +0200)]
factory: pass permissions to media by default

11 years agotest: add permissions to auth test
Wim Taymans [Tue, 9 Jul 2013 14:09:07 +0000 (16:09 +0200)]
test: add permissions to auth test

Ass some permissions to the media factory in the test.

11 years agoauth: simplify auth checks
Wim Taymans [Tue, 9 Jul 2013 14:04:35 +0000 (16:04 +0200)]
auth: simplify auth checks

Remove client from methods, it's now in the state
Perform the check specified by the string, use the information from the
thread local context.

11 years agoclient: add state to current thread
Wim Taymans [Tue, 9 Jul 2013 14:01:29 +0000 (16:01 +0200)]
client: add state to current thread

Add the client to the ClientState object.
Place the ClientState on the current thread.

11 years agomedia: make it possible to set permissions
Wim Taymans [Tue, 9 Jul 2013 12:33:43 +0000 (14:33 +0200)]
media: make it possible to set permissions

Make it possible to set permissions on media and media factory objects

11 years agopermissions: add permissions object
Wim Taymans [Tue, 9 Jul 2013 12:31:15 +0000 (14:31 +0200)]
permissions: add permissions object

Add a mini object to store permissions based on a role.

11 years agoauth: add auth checks
Wim Taymans [Mon, 8 Jul 2013 14:29:01 +0000 (16:29 +0200)]
auth: add auth checks

Add an enum with auth checks and implement the checks in the auth object.
Perform the checks from the client.

11 years agoauth: use the token after authentication
Wim Taymans [Fri, 5 Jul 2013 18:48:18 +0000 (20:48 +0200)]
auth: use the token after authentication

After we authenticated a user, keep the Token around in the state.

11 years agomedia: add optional context for bus messages
Wim Taymans [Fri, 5 Jul 2013 18:43:39 +0000 (20:43 +0200)]
media: add optional context for bus messages

Add an optional mainloop to _prepare that will handle the bus messages instead
of always using the shared mainloop.

11 years agotoken: add authorization token
Wim Taymans [Fri, 5 Jul 2013 18:34:40 +0000 (20:34 +0200)]
token: add authorization token

Add a simply miniobject that contains the authorizations. The object contains a
GstStructure that hold all authorization fields. When a user is authenticated,
the auth module will create a Token for the user. The token is then used to
check what operations the user is allowed to do and various other configuration
values.

11 years agoauth: remove auth from media and factory
Wim Taymans [Fri, 5 Jul 2013 10:08:36 +0000 (12:08 +0200)]
auth: remove auth from media and factory

Remove the auth object from media and factory. We want to have the RTSPClient
authenticate and authorize resources, there is no need to place another auth
manager on the media/factory.

11 years agoauth: add support for multiple basic auth tokens
Wim Taymans [Thu, 4 Jul 2013 12:33:59 +0000 (14:33 +0200)]
auth: add support for multiple basic auth tokens

Make it possible to add multiple basic authorisation tokens to one authorization
object. Associate with each token an authorization group that will define what
capabilities are allowed.

11 years agoclient: error out on non-aggregate control
Wim Taymans [Wed, 3 Jul 2013 14:15:04 +0000 (16:15 +0200)]
client: error out on non-aggregate control

We require aggregate control (for now) for PLAY, PAUSE and TEARDOWN.

11 years agoclient: rework setup request a little
Wim Taymans [Wed, 3 Jul 2013 13:55:38 +0000 (15:55 +0200)]
client: rework setup request a little

Cache the media in DESCRIBE based on the longest matching path with the uri
that we can find in the mount points.

Rework the setup request a little to get the media from the session or from
the longest matching path, this way we can derive the control string as
everything after the path instead of hardcoding it.

Find the stream based on the control string and only open a session when all
this can be done.

11 years agomedia: add method to find a stream by control url
Wim Taymans [Wed, 3 Jul 2013 13:14:39 +0000 (15:14 +0200)]
media: add method to find a stream by control url

11 years agostream: add method to check control url of stream
Wim Taymans [Wed, 3 Jul 2013 13:13:45 +0000 (15:13 +0200)]
stream: add method to check control url of stream

11 years agosession: use path matching for session media
Wim Taymans [Wed, 3 Jul 2013 10:37:48 +0000 (12:37 +0200)]
session: use path matching for session media

Use a path string instead of a uri to lookup session media in the sessions. Also
use path matching to find the largest possible path that matches.

11 years agomount-points: remove useless vmethod
Wim Taymans [Wed, 3 Jul 2013 09:04:53 +0000 (11:04 +0200)]
mount-points: remove useless vmethod

Making lookups in the mount points should not be done with a URL, if there is a
mapping to be done from URL to mount points, we'll need to do it somewhere
else.

11 years agomount-points: improve mount point searching
Wim Taymans [Wed, 3 Jul 2013 08:25:46 +0000 (10:25 +0200)]
mount-points: improve mount point searching

Use a GSequence to keep track of the mount points.
Match a URL to the longest matching registered mount point. This should be the
URL to perform aggreagate control and the remainder is the stream specific
control part.
Add some unit tests for this.

11 years agortsp-server: Allow building of static library
Sebastian Dröge [Wed, 3 Jul 2013 08:40:33 +0000 (10:40 +0200)]
rtsp-server: Allow building of static library

11 years agotests: fix compilation
Wim Taymans [Tue, 2 Jul 2013 13:59:16 +0000 (15:59 +0200)]
tests: fix compilation

11 years agosdp: get control string from stream
Wim Taymans [Tue, 2 Jul 2013 13:54:43 +0000 (15:54 +0200)]
sdp: get control string from stream

Use the control string as configured in the stream.