Wim Taymans [Fri, 16 Aug 2013 14:34:56 +0000 (16:34 +0200)]
media: set protocols on streams
Wim Taymans [Fri, 16 Aug 2013 14:16:31 +0000 (16:16 +0200)]
client: use protocols supported by stream
Wim Taymans [Fri, 16 Aug 2013 14:16:00 +0000 (16:16 +0200)]
media-factory: allow all protocols
Wim Taymans [Fri, 16 Aug 2013 14:10:43 +0000 (16:10 +0200)]
media: configure protocols in new streams
Wim Taymans [Fri, 16 Aug 2013 14:08:43 +0000 (16:08 +0200)]
stream: add protocols property
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
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
Wim Taymans [Fri, 2 Aug 2013 15:15:09 +0000 (17:15 +0200)]
server: add method to iterate clients of server
Youness Alaoui [Tue, 11 Jun 2013 23:10:01 +0000 (19:10 -0400)]
Add vmethod for rtsp-media subclass to access rtpbin
Youness Alaoui [Thu, 11 Jul 2013 20:12:04 +0000 (16:12 -0400)]
small documentation fix
Youness Alaoui [Thu, 11 Jul 2013 20:11:55 +0000 (16:11 -0400)]
Do not take range header if range is invalid
Wim Taymans [Fri, 2 Aug 2013 14:57:26 +0000 (16:57 +0200)]
media: add docs for new method
Youness Alaoui [Tue, 2 Jul 2013 22:55:28 +0000 (18:55 -0400)]
Add API to rtsp-media set the pipeline's state
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
Wim Taymans [Mon, 22 Jul 2013 15:27:27 +0000 (17:27 +0200)]
tests: add some more docs
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.
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.
Wim Taymans [Thu, 18 Jul 2013 09:44:50 +0000 (11:44 +0200)]
auth: use defines when possible
Wim Taymans [Thu, 18 Jul 2013 09:44:21 +0000 (11:44 +0200)]
address-pool: improve docs
Wim Taymans [Thu, 18 Jul 2013 10:26:45 +0000 (12:26 +0200)]
permissions: add the role to the copy
Olivier Crête [Wed, 17 Jul 2013 23:35:33 +0000 (19:35 -0400)]
permissions: Also copy the roles
Olivier Crête [Wed, 17 Jul 2013 23:32:09 +0000 (19:32 -0400)]
permissions: Make it build
Wim Taymans [Tue, 16 Jul 2013 10:36:56 +0000 (12:36 +0200)]
docs: small fixes
Wim Taymans [Tue, 16 Jul 2013 10:32:51 +0000 (12:32 +0200)]
docs: improve docs
Wim Taymans [Tue, 16 Jul 2013 10:32:00 +0000 (12:32 +0200)]
address-pool: cleanups
Remove redundant method, improve docs.
Wim Taymans [Mon, 15 Jul 2013 15:31:35 +0000 (17:31 +0200)]
docs: improve docs
Wim Taymans [Mon, 15 Jul 2013 15:12:57 +0000 (17:12 +0200)]
permissions: implement _remove_role
Wim Taymans [Mon, 15 Jul 2013 15:12:43 +0000 (17:12 +0200)]
permissions: update docs
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.
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.
Wim Taymans [Mon, 15 Jul 2013 14:05:02 +0000 (16:05 +0200)]
README: update readme
Wim Taymans [Mon, 15 Jul 2013 13:25:00 +0000 (15:25 +0200)]
thread-pool: add more docs
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.
Wim Taymans [Mon, 15 Jul 2013 12:50:26 +0000 (14:50 +0200)]
server: add small debug
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.
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.
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.
Wim Taymans [Mon, 15 Jul 2013 09:51:34 +0000 (11:51 +0200)]
mount-points: add some debug
Wim Taymans [Fri, 12 Jul 2013 15:26:55 +0000 (17:26 +0200)]
tests: almost fix test
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.
Wim Taymans [Fri, 12 Jul 2013 15:06:37 +0000 (17:06 +0200)]
token: add method to check boolean permission
Wim Taymans [Fri, 12 Jul 2013 14:36:05 +0000 (16:36 +0200)]
token: simplify token constructor
Use variable arguments to make easier API.
Wim Taymans [Fri, 12 Jul 2013 14:17:57 +0000 (16:17 +0200)]
media-factory: add convenience API for factory
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.
Wim Taymans [Fri, 12 Jul 2013 14:01:14 +0000 (16:01 +0200)]
auth: fix typo
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.
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.
Wim Taymans [Fri, 12 Jul 2013 12:10:13 +0000 (14:10 +0200)]
docs: fix docs
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.
Wim Taymans [Fri, 12 Jul 2013 10:38:54 +0000 (12:38 +0200)]
client: add state push/pop
Wim Taymans [Fri, 12 Jul 2013 10:36:40 +0000 (12:36 +0200)]
client: add connection to state
Wim Taymans [Thu, 11 Jul 2013 18:45:11 +0000 (20:45 +0200)]
mount-points: fix debug
Wim Taymans [Thu, 11 Jul 2013 15:28:17 +0000 (17:28 +0200)]
tests: fix media test
Wim Taymans [Thu, 11 Jul 2013 15:28:04 +0000 (17:28 +0200)]
thread-pool: we don't require a state
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.
Wim Taymans [Thu, 11 Jul 2013 15:05:00 +0000 (17:05 +0200)]
tests: fix client test
Wim Taymans [Thu, 11 Jul 2013 14:57:14 +0000 (16:57 +0200)]
docs: improve docs
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
Wim Taymans [Thu, 11 Jul 2013 10:24:33 +0000 (12:24 +0200)]
docs: more updates
Wim Taymans [Thu, 11 Jul 2013 10:18:26 +0000 (12:18 +0200)]
docs: update docs
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
Wim Taymans [Wed, 10 Jul 2013 18:57:12 +0000 (20:57 +0200)]
examples: add cgroups example
Wim Taymans [Wed, 10 Jul 2013 18:55:03 +0000 (20:55 +0200)]
tests: fix compilation
Wim Taymans [Wed, 10 Jul 2013 18:48:47 +0000 (20:48 +0200)]
thread-pool: fix vmethod invocation
Wim Taymans [Wed, 10 Jul 2013 18:48:18 +0000 (20:48 +0200)]
thread-pool: store thread type in thread
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.
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.
Wim Taymans [Wed, 10 Jul 2013 15:07:13 +0000 (17:07 +0200)]
server: configure client thread pool
Wim Taymans [Wed, 10 Jul 2013 15:06:36 +0000 (17:06 +0200)]
client: add method to configure 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.
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.
Wim Taymans [Wed, 10 Jul 2013 13:28:35 +0000 (15:28 +0200)]
auth: debug authorization check
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.
Wim Taymans [Tue, 9 Jul 2013 14:38:39 +0000 (16:38 +0200)]
factory: pass permissions to media by default
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
Wim Taymans [Wed, 3 Jul 2013 13:14:39 +0000 (15:14 +0200)]
media: add method to find a stream by control url
Wim Taymans [Wed, 3 Jul 2013 13:13:45 +0000 (15:13 +0200)]
stream: add method to check control url of stream
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.
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.
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.
Sebastian Dröge [Wed, 3 Jul 2013 08:40:33 +0000 (10:40 +0200)]
rtsp-server: Allow building of static library
Wim Taymans [Tue, 2 Jul 2013 13:59:16 +0000 (15:59 +0200)]
tests: fix compilation
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.
Wim Taymans [Tue, 2 Jul 2013 12:44:35 +0000 (14:44 +0200)]
stream: add methods and property to set control string
Wim Taymans [Tue, 2 Jul 2013 09:58:02 +0000 (11:58 +0200)]
client: cleanups
Rename variables for clarity
Keep media in state when we can
Wim Taymans [Mon, 1 Jul 2013 14:46:07 +0000 (16:46 +0200)]
stream: add more support for IPv6
Rename _get_address to _get_multicast_address in GstRTSPStream to
make it clear that this function only deals with multicast.
Make it possible to have both an IPv4 and IPv6 multicast address on
a stream. Give the client an IPv4 or IPv6 address depending on the
address it used to connect to the server.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702002
Wim Taymans [Mon, 1 Jul 2013 13:18:43 +0000 (15:18 +0200)]
client: fix comment
Wim Taymans [Mon, 1 Jul 2013 12:45:49 +0000 (14:45 +0200)]
stream: handle failed port allocation
Allow for ipv4 or ipv6 socket allocations to fail. Only report failure if we
can't allocate any family at all. Also keep track of what port families we
allocated.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703175