Wim Taymans
4d6c038fc7
client: map url to path only in describe
...
Only map the request url to a path in the DESCRIBE method. The SDP then
contains the base and control urls that should be used to SETUP/PAUSE/
PLAY/TEARDOWN the media.
2013-09-17 12:21:02 +02:00
Wim Taymans
fe3f63de7c
Revert "client: map URL to path in requests"
...
This reverts commit e3fded2cec
.
This is not correct, we only remap the URL to a path in DESCRIBE, the SDP then
contains the base and control urls which are used in the SETUP, PLAY,
PAUSE and TEARDOWN requests.
2013-09-17 11:41:57 +02:00
Wim Taymans
e3fded2cec
client: map URL to path in requests
2013-09-16 17:17:35 +02:00
Wim Taymans
952aa309dc
mount-points: make vmethod to make path from uri
...
Make a vmethod to transform an url into a path. The path is then used to lookup
the factory. This makes it possible to also use other bits of the url, such as
the query parameters, to locate the factory.
2013-09-16 17:17:34 +02:00
Ognyan Tonchev
258f63b8ac
thread-pool: Add cleanup to wait for the threadpool to finish
...
Also fix race condition if two threads are asking for the first
thread from the thread pool at once. This would case two internal
GThreadPools to be created.
https://bugzilla.gnome.org/show_bug.cgi?id=707753
2013-09-09 14:36:12 +02:00
Jonas Holmberg
23b3f21595
client: free threadpool
...
https://bugzilla.gnome.org/show_bug.cgi?id=707638
2013-09-06 20:44:10 +01:00
Jonas Holmberg
19178a413c
auth, media, media-factory: unref permissions
...
https://bugzilla.gnome.org/show_bug.cgi?id=707638
2013-09-06 18:57:55 +01:00
Patricia Muscalu
ff10d24130
rtsp-client: remove query part from content-base string
...
Make sure that after the control url has been resolved, it's
not a part of the query-string.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=706568
2013-08-23 12:23:06 +02:00
Wim Taymans
1287b5f772
client: don't check url in response
...
There is no url or method in the response to check
2013-08-23 10:38:43 +02:00
Youness Alaoui
1f84618725
Add handle-response signal for when we receive a GET_PARAMETER response
2013-08-23 10:32:33 +02:00
Youness Alaoui
76cbc7c86c
Fix gst_rtsp_server_client_filter, using wrong variable type
2013-08-23 10:29:21 +02:00
Tim-Philipp Müller
3766914a18
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
2013-08-22 18:39:59 +01:00
Wim Taymans
d74cbf2911
stream: optimize pipeline for protocols
...
When TCP is not an allowed protocol for the stream, avoid creating the
appsrc/appsink/queue and tee elements.
2013-08-16 17:05:24 +02:00
Wim Taymans
f094256add
media: set protocols on streams
2013-08-16 16:34:56 +02:00
Wim Taymans
1a838d6179
client: use protocols supported by stream
2013-08-16 16:20:00 +02:00
Wim Taymans
04d2da4d03
media-factory: allow all protocols
2013-08-16 16:19:27 +02:00
Wim Taymans
cf96774e6d
media: configure protocols in new streams
2013-08-16 16:10:43 +02:00
Wim Taymans
a84b71c0f0
stream: add protocols property
2013-08-16 16:08:43 +02:00
Youness Alaoui
cdbb6bcc15
rtsp-media: send state in "new-state" signal
...
https://bugzilla.gnome.org/show_bug.cgi?id=705110
2013-08-13 16:41:53 +01:00
Wim Taymans
f124d11298
server: add method to iterate clients of server
2013-08-02 17:19:42 +02:00
Youness Alaoui
a95ab4b29e
Add vmethod for rtsp-media subclass to access rtpbin
2013-08-02 16:59:04 +02:00
Youness Alaoui
081e6d3204
small documentation fix
2013-08-02 16:58:24 +02:00
Youness Alaoui
7618800088
Do not take range header if range is invalid
2013-08-02 16:58:20 +02:00
Wim Taymans
6ac547cc34
media: add docs for new method
2013-08-02 16:57:26 +02:00
Youness Alaoui
050b16ad84
Add API to rtsp-media set the pipeline's state
2013-08-02 16:53:07 +02:00
Youness Alaoui
5e642c7ef1
Update current position/duration when gst_rtsp_media_get_range_string is called
2013-08-02 16:51:15 +02:00
Wim Taymans
f78a65379c
ClientState -> Context
...
Rename the clientstate to context and put the code in a separate file.
2013-07-22 14:25:04 +02:00
Wim Taymans
25547176be
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.
2013-07-18 12:27:33 +02:00
Wim Taymans
1a307c707d
auth: use defines when possible
2013-07-18 12:27:33 +02:00
Wim Taymans
3dc34af5aa
address-pool: improve docs
2013-07-18 12:27:33 +02:00
Wim Taymans
472010666c
permissions: add the role to the copy
2013-07-18 12:27:33 +02:00
Olivier Crête
db74d5c559
permissions: Also copy the roles
2013-07-17 19:35:33 -04:00
Olivier Crête
91a32754e3
permissions: Make it build
2013-07-17 19:32:09 -04:00
Wim Taymans
81745b43b4
docs: small fixes
2013-07-16 12:36:56 +02:00
Wim Taymans
041b1b79a1
docs: improve docs
2013-07-16 12:32:51 +02:00
Wim Taymans
d3d7df5a1e
address-pool: cleanups
...
Remove redundant method, improve docs.
2013-07-16 12:32:00 +02:00
Wim Taymans
0a8f5c8892
docs: improve docs
2013-07-15 17:31:35 +02:00
Wim Taymans
fbe0cefae1
permissions: implement _remove_role
2013-07-15 17:12:57 +02:00
Wim Taymans
5e297ea093
permissions: update docs
2013-07-15 17:12:43 +02:00
Wim Taymans
f18f2619e1
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.
2013-07-15 16:47:07 +02:00
Wim Taymans
7064b9fda7
thread-pool: add more docs
2013-07-15 15:25:00 +02:00
Wim Taymans
0ce4d4d5c7
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.
2013-07-15 14:50:38 +02:00
Wim Taymans
3fe1096fd1
server: add small debug
2013-07-15 14:50:26 +02:00
Wim Taymans
38d91a2bf8
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.
2013-07-15 11:57:49 +02:00
Wim Taymans
7db2f9f3cf
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.
2013-07-15 11:56:06 +02:00
Wim Taymans
692cbc1364
mount-points: add some debug
2013-07-15 11:51:34 +02:00
Wim Taymans
9fe107a96a
auth: let the auth module check client_settings
...
Let the auth module decide if client settings are allowed for the
current client.
2013-07-12 17:07:53 +02:00
Wim Taymans
c4db302559
token: add method to check boolean permission
2013-07-12 17:06:37 +02:00
Wim Taymans
b8c5aa3a6b
token: simplify token constructor
...
Use variable arguments to make easier API.
2013-07-12 16:36:05 +02:00
Wim Taymans
67d0fbc048
media-factory: add convenience API for factory
2013-07-12 16:17:57 +02:00
Wim Taymans
facc91a942
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.
2013-07-12 16:17:15 +02:00
Wim Taymans
a6a8293595
auth: fix typo
2013-07-12 16:01:14 +02:00
Wim Taymans
5cf75e64af
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.
2013-07-12 15:19:29 +02:00
Wim Taymans
7532de687a
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.
2013-07-12 15:13:48 +02:00
Wim Taymans
9a09d98e6d
docs: fix docs
2013-07-12 14:10:13 +02:00
Wim Taymans
4b2e6d88b3
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.
2013-07-12 12:41:52 +02:00
Wim Taymans
a1e96c2269
client: add state push/pop
2013-07-12 12:38:54 +02:00
Wim Taymans
e1628a0515
client: add connection to state
2013-07-12 12:37:25 +02:00
Wim Taymans
f6674d5c10
mount-points: fix debug
2013-07-11 20:45:11 +02:00
Wim Taymans
7f8fdbc453
thread-pool: we don't require a state
2013-07-11 17:28:04 +02:00
Wim Taymans
c2d4b79b69
server: let context ref the server
...
So that we don't risk losing the server object early anc crash.
2013-07-11 17:18:58 +02:00
Wim Taymans
0b3644a21b
docs: improve docs
2013-07-11 16:57:14 +02:00
Wim Taymans
8b4c9570fa
session-pool: make vmethod to create a session
...
Make a vmethod to create a sessions so that subclasses can create
custom session objects
2013-07-11 16:28:09 +02:00
Wim Taymans
d357fc55af
docs: more updates
2013-07-11 12:24:33 +02:00
Wim Taymans
ccceb1de11
docs: update docs
2013-07-11 12:18:26 +02:00
Wim Taymans
6f5a82aed3
thread-pool: fix vmethod invocation
2013-07-10 20:48:47 +02:00
Wim Taymans
8cec0f8a46
thread-pool: store thread type in thread
2013-07-10 20:48:18 +02:00
Wim Taymans
4e9c4d8bb7
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.
2013-07-10 17:09:27 +02:00
Wim Taymans
d1e4baab6c
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.
2013-07-10 17:08:14 +02:00
Wim Taymans
01b921e8a6
server: configure client thread pool
2013-07-10 17:07:13 +02:00
Wim Taymans
00997d956f
client: add method to configure thread pool
2013-07-10 17:06:36 +02:00
Wim Taymans
27917f4ef3
server: use thread pool
...
Use the thread pool instead of doing our own thing.
2013-07-10 17:02:58 +02:00
Wim Taymans
25269c7b1a
thread-pool: add object to manage threads
...
Add an object to manage the client and media threads.
2013-07-10 16:47:43 +02:00
Wim Taymans
1a0c7051aa
auth: debug authorization check
2013-07-10 15:28:35 +02:00
Wim Taymans
c4c9c873b8
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.
2013-07-09 20:44:51 +02:00
Wim Taymans
ca28a46600
factory: pass permissions to media by default
2013-07-09 16:38:39 +02:00
Wim Taymans
d7dec33328
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.
2013-07-09 16:04:35 +02:00
Wim Taymans
c9d6455ad3
client: add state to current thread
...
Add the client to the ClientState object.
Place the ClientState on the current thread.
2013-07-09 16:01:29 +02:00
Wim Taymans
0499a1ec7d
media: make it possible to set permissions
...
Make it possible to set permissions on media and media factory objects
2013-07-09 14:33:43 +02:00
Wim Taymans
8f008807ad
permissions: add permissions object
...
Add a mini object to store permissions based on a role.
2013-07-09 14:31:15 +02:00
Wim Taymans
a63f4a2a4c
auth: add auth checks
...
Add an enum with auth checks and implement the checks in the auth object.
Perform the checks from the client.
2013-07-08 16:29:01 +02:00
Wim Taymans
fb7c9b8122
auth: use the token after authentication
...
After we authenticated a user, keep the Token around in the state.
2013-07-08 11:10:20 +02:00
Wim Taymans
12583e819c
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.
2013-07-08 11:10:20 +02:00
Wim Taymans
48ff096a25
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.
2013-07-05 20:53:19 +02:00
Wim Taymans
19cffc7999
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.
2013-07-05 20:53:19 +02:00
Wim Taymans
78bc979690
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.
2013-07-04 14:33:59 +02:00
Wim Taymans
a1e5bde58d
client: error out on non-aggregate control
...
We require aggregate control (for now) for PLAY, PAUSE and TEARDOWN.
2013-07-03 16:15:04 +02:00
Wim Taymans
9182263532
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.
2013-07-03 15:55:38 +02:00
Wim Taymans
3999bd4e4e
media: add method to find a stream by control url
2013-07-03 15:14:39 +02:00
Wim Taymans
d4e8d800c9
stream: add method to check control url of stream
2013-07-03 15:13:45 +02:00
Wim Taymans
5a833f503e
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.
2013-07-03 12:37:48 +02:00
Wim Taymans
8f79daef5e
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.
2013-07-03 11:10:27 +02:00
Wim Taymans
df08a2dd9e
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.
2013-07-03 10:45:51 +02:00
Sebastian Dröge
a22889ac08
rtsp-server: Allow building of static library
2013-07-03 10:40:48 +02:00
Wim Taymans
714e84d891
sdp: get control string from stream
...
Use the control string as configured in the stream.
2013-07-02 15:54:43 +02:00
Wim Taymans
2ffb0f69d2
stream: add methods and property to set control string
2013-07-02 14:50:30 +02:00
Wim Taymans
0248775c74
client: cleanups
...
Rename variables for clarity
Keep media in state when we can
2013-07-02 11:58:02 +02:00
Wim Taymans
a7fe63298c
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
2013-07-01 16:46:39 +02:00
Wim Taymans
13016309b1
client: fix comment
2013-07-01 15:18:43 +02:00
Wim Taymans
82812988a6
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
2013-07-01 14:47:33 +02:00
Wim Taymans
284a0a5cd1
stream: improve docs
2013-07-01 12:20:50 +02:00
Wim Taymans
5b6cbb4ede
stream-transport: remove old if 0 block
2013-07-01 12:04:45 +02:00
Wim Taymans
ffd4b1aaf1
client: add method to filter managed sessions
...
Add a method to filter the sessions managed by this client connection.
See https://bugzilla.gnome.org/show_bug.cgi?id=703016
2013-06-26 17:19:11 +02:00
Wim Taymans
27a786aa4a
client: remove _get_uri() method
...
Remove the get_uri() method on the client. A client has no uri, the uri
property is an internal property to manage the last cached media for
the client.
2013-06-26 16:32:06 +02:00
Wim Taymans
13ab4905e4
media-factory: fix typo
2013-06-26 16:31:39 +02:00
Ognyan Tonchev
cd4120ef26
rtsp-media: Do not leak the query in default_query_stop
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703120
2013-06-26 15:42:01 +02:00
Wim Taymans
81c3843ad1
media: don't unlock when conversion fails
...
Don't unlock the state lock when conversion fails because it was not locked.
2013-06-25 15:46:41 +02:00
Youness Alaoui
0b94f50eab
Add query_position and query_stop vmethods to rtsp-media
2013-06-25 15:23:36 +02:00
Youness Alaoui
842f5ad9c4
Fix typo in property install for rtsp-media's time-provider
2013-06-25 15:12:36 +02:00
Wim Taymans
55214d0d52
client: clean some variables
...
Clean some variables and add some guards to _send_request()
2013-06-25 15:09:13 +02:00
Youness Alaoui
d2dab47085
Add gst_rtsp_client_send_request API
...
This makes it possible to send arbitrary messages to a client, such as
SET_PARAMETER or GET_PARAMETER
2013-06-25 14:58:17 +02:00
Wim Taymans
aab1198516
media: add _get_element() method
...
Add method to get the element used when creating the media.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703008
2013-06-24 23:56:57 +02:00
Wim Taymans
6d69a4ae80
media: fix docs
2013-06-24 23:51:38 +02:00
Aleix Conchillo Flaque
aeaadf0e5e
stream: allow access to the rtp session
...
https://bugzilla.gnome.org/show_bug.cgi?id=703004
2013-06-24 23:42:58 +02:00
Alexander Schrab
c3f8673174
dscp qos support in gst-rtsp-stream
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702645
2013-06-24 14:51:44 +02:00
Wim Taymans
fa1d3354c0
client: also watch newly created session
...
When we newly created a session, start watching it immediately instead of
on the next request.
2013-06-20 12:20:21 +02:00
Wim Taymans
949f11c643
client: emit new-session when new session is created
...
Only emit new-session when we created a new session for a client, not when a
client picked up a previous session.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701587
2013-06-20 12:16:07 +02:00
Alexander Schrab
a5490e323b
client: handle asterisk as path in requests
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701266
2013-06-20 11:17:29 +02:00
Wim Taymans
23ec78faea
media: handle segment query format mismatch
...
It's possible that the segment query returns with a different format than what
we asked for, handle this case also.
2013-06-20 11:14:31 +02:00
David Svensson Fors
52eb796bec
media: use segment stop in collect_media_stats
...
Use segment stop instead of duration as range end point.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701185
2013-06-20 10:17:32 +02:00
Ognyan Tonchev
d9e245e62e
rtsp-media: Do not leak the element in take_pipeline
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702470
2013-06-17 17:18:40 +02:00
Ognyan Tonchev
7e9df0e112
rtsp-client: Make configure_client_transport virtual
...
This patch makes configure_client_transport virtual. The functionality is
needed to handle some weird clients sending multicast transport settings as url
options.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702173
2013-06-17 16:18:37 +02:00
Ognyan Tonchev
b5f8ff8232
rtsp-client: Make param_set and param_get virtual
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702072
2013-06-17 16:11:40 +02:00
David Svensson Fors
6151072a2e
media: convert_range replaces get_range_times
...
get_range_times worked for handling UTC ranges for seeks, but we also
need to convert back from NPT to the requested unit in
get_range_string. convert_range is now used for both.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702084
2013-06-14 16:11:34 +02:00
Wim Taymans
3dbe0e17d4
sdp: cleanup sdp info
...
We don't need to pass the proto, we can more easily check a boolean.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702063
2013-06-14 16:06:46 +02:00
Alexander Schrab
f9f994e33d
use 0.0.0.0 or :: for c= line instead of server address
2013-06-14 15:58:52 +02:00
Alexander Schrab
275e2d52a4
use local address, not remote, in SDP
...
See https://bugzilla.gnome.org/show_bug.cgi?id=702063
2013-06-14 15:52:14 +02:00
David Svensson Fors
7efa871c1f
media: possibility to override range time conversion
...
Make it possible to override the conversion from GstRTSPTimeRange to
GstClockTimes, that is done before seeking on the media
pipeline. Overriding can be useful for UTC ranges, where the default
conversion gives nanoseconds since 1900.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701191
2013-06-03 14:29:05 +02:00
Ognyan Tonchev
c5b3066c33
rtsp-server: Expose the use_client_settings API
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=699935
2013-06-03 12:04:44 +02:00
Alexander Schrab
3e119be829
rtspstream: handle both ipv4 and ipv6 clients
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701129
2013-06-03 11:23:40 +02:00
Wim Taymans
17b07d1c0e
Revert "rtsp-sdp: Parse width/height from caps and set SDP attribute"
...
This reverts commit 5fd034ff1a
.
We already have a way to place extra attributes in the SDP by using a string
property with prefix x- or a- in the caps.
2013-05-31 15:43:11 +02:00
Wim Taymans
2a0aaa1019
Revert "rtsp-sdp: Parse framerate caps field and set SDP attribute"
...
This reverts commit d6a4dee036
.
We already have a way to place extra attributes in the SDP, just make a string
property in the payloader with a- or x- prefix.
2013-05-31 15:43:11 +02:00
Wim Taymans
cfdf2e6db5
rtsp: place a- and x- properties as attributes
...
application/x-rtp has properties with a- and x- prefixes that should be
placed as attributes in the SDP for the media instead of being added to the
fmtp.
2013-05-31 15:43:10 +02:00
Wim Taymans
0a285290cb
server: add support for TLS
...
Add methods to set and get a TLS certificate.
Add vmethod to configure a new connection. By default, configure the TLS
certificate in a new connection if needed.
2013-05-31 11:42:36 +02:00
Wim Taymans
531ffca018
server: remove accept_client vmethod
...
This vmethod is not very useful so remove it.
2013-05-31 11:14:17 +02:00
Wim Taymans
0091339254
server: don't crash on NULL GError
2013-05-30 17:23:51 +02:00
Patricia Muscalu
aa50aac669
rtsp-session-pool: corrected session timeout detection
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701253
2013-05-30 13:13:05 +02:00
Wim Taymans
7526178a09
client: improve debug
2013-05-30 10:52:46 +02:00
Wim Taymans
d638b03ff9
server: refactor connection setup
...
Let the server accept the socket connection and construct a GstRTSPConnection
from it. Remove the code from the client and let the client only deal with
a fully configure GstRTSPConnection object.
We will need this later when the server will configure the connection for
TLS.
2013-05-30 07:18:22 +02:00
Wim Taymans
7b880231b1
stream: keep the transport object alive
...
Keep the transport object alive while we have it as qdata on the
source.
2013-05-30 06:49:20 +02:00
Alexander Schrab
c75e1c6b47
rtsp-server: Do not crash on nmapping of server
...
* generate error when gst_rtsp_connection_accept fails
* do not stop accepting incoming connections because
accepting a client fails
https://bugzilla.gnome.org/show_bug.cgi?id=701072
2013-05-27 13:20:36 +02:00
Alexander Schrab
e047c9fec1
rtsp-client: ipv4 adress should not be marked ipv6 even if socket is ipv6
...
https://bugzilla.gnome.org/show_bug.cgi?id=700953
2013-05-27 11:15:50 +02:00
Sebastian Rasmussen
d6a4dee036
rtsp-sdp: Parse framerate caps field and set SDP attribute
...
The SDP attribute and its format is described in RFC4566.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700747
2013-05-23 21:02:58 +02:00
Sebastian Rasmussen
5fd034ff1a
rtsp-sdp: Parse width/height from caps and set SDP attribute
...
The SDP attribute and its format is described in RFC6064.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700747
2013-05-23 21:02:50 +02:00
Patricia Muscalu
0951aa37e1
rtsp-sdp: add bandwidth line
...
https://bugzilla.gnome.org/show_bug.cgi?id=699220
2013-05-15 12:36:32 +02:00
Wim Taymans
573b10bc83
media: release lock when removing fakesink
2013-04-23 10:28:35 +02:00
Wim Taymans
0ddd98bfa6
stream: set elements to NULL before removing
...
When removing a stream, set the elements to NULL first. This avoids
element-is-not-in-NULL-state errors when we dispose the elements.
2013-04-23 10:28:34 +02:00
Wim Taymans
b80b8824be
media: listen to pad-removed signals
...
Listen to the pad-removed signal and remove the stream associated with the
removed pad.
Add signal to be notified of the removed pad.
Remove the fakesink in unprepare()
Fix signatures of the signal methods
2013-04-22 17:34:37 +02:00
Ognyan Tonchev
00291e5285
stream: add method to get the srcpad
2013-04-22 17:32:31 +02:00
Ognyan Tonchev
a26b06cc69
media: disconnect from signal handlers in unprepare()
...
We connected to the pad-added and no-more-pads signals in prepare() so
we need to disconnect from them in unprepare().
See https://bugzilla.gnome.org/show_bug.cgi?id=698376
2013-04-22 16:40:48 +02:00
Ognyan Tonchev
9b31fcc7f8
media: don't free streams array
...
Don't free the streams array in the unprepare() method, they were not
added in prepare().
See https://bugzilla.gnome.org/show_bug.cgi?id=698376
2013-04-22 16:25:17 +02:00
Ognyan Tonchev
0bdff0161c
media: don't unref the pipeline in unprepare
...
Unprepare() should undo what prepare() does. Because the pipeline is
not created in prepare(), we should not unref it in unprepare()
2013-04-22 16:19:35 +02:00
Ognyan Tonchev
6081f91351
stream: clear session and caps for reuse
...
Set the session and caps to NULL after unref otherwise we might unref
them again later.
See https://bugzilla.gnome.org/show_bug.cgi?id=698376
2013-04-22 16:09:22 +02:00
David Svensson Fors
bba7c4042d
client: send out teardown signal before tearing down
...
The advantage is that in the signal handler you get direct access to
information about what streams are about to get torn down (in the
GstRTSPClientState).
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697686
2013-04-15 12:21:54 +02:00
David Svensson Fors
825d6f0b51
client: expose connection
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697546
2013-04-15 12:17:34 +02:00
Wim Taymans
a64cb68164
media: add method to get the base_time of the pipeline
...
Together with a shared clock, this base-time could eventually be sent to
the client so that it can reconstruct the exact running-time of the clock
on the server.
2013-04-12 11:34:38 +01:00
Wim Taymans
36ff679558
media: add GstNetTimeProvider support
...
Add a property to let the media provide a GstNetTimeProvider for its clock.
Make methods to get the clock and nettimeprovider
Add a x-gst-clock property to the SDP with the IP and port number of the nettime
provider and also the current time of the clock. This should make it possible
for (GStreamer) clients to slave their clock to the server clock.
2013-04-09 22:38:44 +02:00
Wim Taymans
95bf53513f
media: wait for buffering to complete
...
Wait for buffering to complete before changing the state to the target state.
2013-04-09 20:39:58 +02:00
Wim Taymans
ec0718d7c9
media: small cleanup
2013-04-09 20:11:35 +02:00
Olivier Crête
91210f40f2
rtsp-media-factory: g_signal_connect_object is not thread safe, can't use it here
...
Instead use a GWeakRef which is safe to use
This is a known GLib bug, see:
https://bugzilla.gnome.org/show_bug.cgi?id=667145
2013-03-22 18:59:50 -04:00
Olivier Crête
c18eafbb24
rtsp-media/client: Reply to PLAY request with same type of Range
...
Remember the type of Range from the PLAY request and use the same type for
the reply.
2013-03-22 15:53:06 +01:00
Patricia Muscalu
8a08fddb41
rtsp-client: expose uri
2013-03-18 23:44:38 +00:00
Olivier Crête
5a39e25949
stream: Select unicast address from pool if appropriate
2013-03-11 11:07:20 +01:00
Olivier Crête
a797cbde06
stream: Properties are always there in Gst 1.0
2013-03-11 11:07:20 +01:00
Olivier Crête
27a057962c
address-pool: Verify that multicast addresses are used for multicast and vice-versa
2013-03-11 11:07:20 +01:00
Olivier Crête
d06e68abd1
address-pool: Add unicast addresses
2013-03-11 11:07:20 +01:00
Olivier Crête
4c61c6d308
rtsp-server: Limit the number of threads per server instance
...
If we exceed the maximum, just round robin the clients over the existing
threads.
2013-03-11 11:07:20 +01:00
Olivier Crête
4071e1b999
rtsp-server: No need to store the GMainContext in the client context
2013-03-11 11:07:20 +01:00
Olivier Crête
b9d111372e
Document locking and its order
2013-03-11 11:07:19 +01:00
Olivier Crête
f0ab7ce1bf
docs: Generate docs for GstRTSPAddressPool
2013-03-11 11:07:19 +01:00
Olivier Crête
773c48e22f
client: Check client provided addresses against the address pool
2013-03-11 11:07:19 +01:00
Olivier Crête
cda75709bb
address-pool: Add API to request a specific address from the pool
...
Also add relevant unit tests.
2013-03-11 11:07:19 +01:00
Olivier Crête
456f4367e3
address-pool: Fix off by one error
...
When splitting a port range, the port after a skip is not part of range.
2013-03-11 11:07:19 +01:00
Wim Taymans
6db0dbc76c
client: make sure the watch exists while sending data
...
Protect the send_func with a lock. This allows us to wait for sending
to complete before changing the send_func and user_data. We add an
extra ref to the watch to make sure that it remains valid during
sending.
When closing the connection, set the send_func to NULL
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692433
2013-01-28 11:11:46 +01:00
Wim Taymans
4100b20b0a
rtsp-client: set the client backlog
...
Set the client backlog to a reasonable default
2012-12-14 11:58:29 +01:00
Ognyan Tonchev
0844e8afbc
rtsp-media: Make the element a constructor parameter
...
https://bugzilla.gnome.org/show_bug.cgi?id=689594
2012-12-10 10:25:57 +01:00
Wim Taymans
6beabf1ed4
media: match prepare with unprepare
...
Really unprepare when there were an equal amount of prepare calls.
2012-11-30 15:03:15 +01:00
Wim Taymans
ca26588c7e
media: media has to be unprepared in finalize
...
Because unprepare takes away the last ref on the media.
2012-11-30 14:58:46 +01:00
Wim Taymans
38addd7822
Revert "client: never call gst_rtsp_media_unprepare, let gst_rtsp_media_finalize do it"
...
This reverts commit ba5b78ff2f
.
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.
2012-11-30 14:36:30 +01:00
Wim Taymans
119674a828
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.
2012-11-30 13:35:05 +01:00
Wim Taymans
339ea9b085
media: improve debug
2012-11-30 12:54:10 +01:00
Wim Taymans
241baba20a
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.
2012-11-30 12:53:02 +01:00
Wim Taymans
edf2ef4f0b
media: use g_object_ref/unref for GObjects
2012-11-30 10:05:48 +01:00
Alessandro Decina
ba5b78ff2f
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.
2012-11-30 07:06:17 +01:00
Alessandro Decina
00d9a94e1a
Fix compiler warning
2012-11-30 06:17:46 +01:00
Alessandro Decina
e2a7690cb3
Add missing g_type_class_add_private in GstRTSPMediaFactoryURI
2012-11-30 06:14:49 +01:00
Wim Taymans
1abc9be682
small cleanup
2012-11-29 17:21:12 +01:00
Wim Taymans
28fd887547
media: avoid element leak
2012-11-29 17:20:56 +01:00
Wim Taymans
4eb010824e
media: require an element in media constructor
2012-11-29 17:20:26 +01:00
Wim Taymans
865c9a6b30
Revert "client: TEARDOWN brings that state to Init again"
...
This reverts commit 4b61fdad85
.
The object is already disposed, there is no point in setting the state.
2012-11-29 17:07:30 +01:00
Wim Taymans
4b61fdad85
client: TEARDOWN brings that state to Init again
2012-11-29 12:30:20 +01:00
Wim Taymans
ad00c5e792
rtsp: make object details private
...
Make all object details private
Add methods to access private bits
2012-11-29 11:11:05 +01:00
Wim Taymans
e11287eb7c
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.
2012-11-28 14:45:30 +01:00
Wim Taymans
d3d74ab77b
stream: improve debug
2012-11-28 12:40:18 +01:00
Wim Taymans
fe71114a7d
media: unref pipeline in finalize to avoid leaking it
2012-11-28 12:39:37 +01:00
Wim Taymans
d43a31055e
rtsp: use gst_object_unref on GstObjects
2012-11-28 12:10:47 +01:00
Wim Taymans
6b36241816
media-factory: require an url
2012-11-28 12:10:14 +01:00
Wim Taymans
20f09bf3e7
server: remove unused include
2012-11-28 11:17:27 +01:00
Wim Taymans
e5ba372808
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.
2012-11-28 11:05:08 +01:00
Wim Taymans
b4c168c71d
mounts: add g_return_if guards
2012-11-28 10:40:14 +01:00
Wim Taymans
b3fe3357ab
client: improve debug
2012-11-27 12:33:02 +01:00
Wim Taymans
d5389c940d
client: improve debug and fix leaks
...
Cleanup the uri and session when there is a bad request.
2012-11-27 12:24:21 +01:00
Wim Taymans
a26e9b621e
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.
2012-11-27 12:11:41 +01:00
Wim Taymans
4782d08bdc
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.
2012-11-27 11:17:45 +01:00
Wim Taymans
18bb9ffa6b
client: small cleanup
2012-11-26 17:35:51 +01:00
Wim Taymans
fc0f176a17
client: remove unused include
2012-11-26 17:34:35 +01:00
Wim Taymans
9f8e8bc02d
client: fix compilation
2012-11-26 17:34:24 +01:00
Wim Taymans
eb88fa9e76
client: call destroy without the lock
2012-11-26 17:28:29 +01:00
Wim Taymans
33da3af265
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.
2012-11-26 17:20:39 +01:00
Wim Taymans
26a4b98ab0
client: small cleanup
2012-11-26 16:45:04 +01:00
Wim Taymans
8da4171055
client: remove reference to server
...
We don't need to keep a ref to the server
2012-11-26 16:39:26 +01:00
Wim Taymans
4fa7502fd9
client: add locking
...
Also add some g_return_if()
2012-11-26 16:31:43 +01:00
Wim Taymans
b21b46ec4d
client: log more errors
2012-11-26 13:37:20 +01:00
Wim Taymans
f460e7360e
client: fix compilation
2012-11-26 13:36:19 +01:00
Wim Taymans
84e72262d0
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.
2012-11-26 13:19:06 +01:00
Wim Taymans
1d53c46d23
MediaMapping -> MountPoints
...
Describes better what the object manages.
2012-11-26 12:37:55 +01:00
Wim Taymans
0f93879b2c
media: fix seeking
2012-11-21 17:21:28 +01:00
Wim Taymans
5eb5fd45f3
media: support more Range formats
...
Use the new -base methods to convert the Range string into a seek start and stop
value.
2012-11-21 16:41:56 +01:00
Wim Taymans
37a7ec8033
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
2012-11-20 12:29:55 +01:00
Wim Taymans
8fcdca987d
factory-uri: add some debug
2012-11-20 12:29:26 +01:00
Wim Taymans
1826844ee4
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.
2012-11-20 12:24:13 +01:00
Wim Taymans
8211cdfdc2
factory-uri: take ref to factory
...
Take a ref to the factory that we place in our list.
2012-11-20 12:10:16 +01:00
David Svensson Fors
0eeb4a5c73
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
2012-11-20 11:30:37 +01:00
Wim Taymans
8a7197f078
server: fix small leak
2012-11-20 11:24:35 +01:00
Wim Taymans
989f004e24
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
2012-11-20 09:46:40 +01:00
David Svensson Fors
01973c924d
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
2012-11-20 09:46:00 +01:00
Alessandro Decina
65042a9551
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
2012-11-20 09:32:19 +01:00
David Svensson Fors
0996266342
rtsp-stream: plug socket leak
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688703
2012-11-20 09:26:28 +01:00
Tim-Philipp Müller
0006ca6d60
rtsp-server: don't use deprecated API
2012-11-17 00:11:27 +00:00
Tim-Philipp Müller
290968eb8c
rtsp-client: fix unused-but-set-variable compiler warning
...
rtsp-client.c:1260:21: error: variable 'protocols' set but not used
2012-11-17 00:03:42 +00:00
Wim Taymans
26ff5fc073
rtsp: cleanups
2012-11-15 17:11:16 +01:00
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
c34f5d1c1a
media: add signal for new streams
...
This allows applications to listen for new streams and configure properties on
them, like the address pool.
2012-11-15 15:41:42 +01:00
Wim Taymans
4168a67992
media: configure address pool in new streams
2012-11-15 15:41:19 +01:00
Wim Taymans
44a2855eb3
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.
2012-11-15 15:36:21 +01:00
Wim Taymans
1b4ac6e5b0
media: remove MTU property
...
It is a stream property
2012-11-15 15:32:43 +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
6c2947e68b
stream: share src and sink sockets
...
the allocated socket is in the used-socket property, not socket.
2012-11-15 13:52:07 +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
d0ffc8e679
address-pool: add clear method
2012-11-14 16:20:36 +01:00
Wim Taymans
6085b1fcc1
address-pool: small cleanups
2012-11-14 16:10:45 +01:00
Wim Taymans
b30202b174
address-pool: add object to manage multicast addresses
...
Make an object that can manage a rage of multicast addresses and ports.
2012-11-14 15:49:06 +01:00
Wim Taymans
7d6e4606fa
server: set default max-threads property
2012-11-13 12:05:42 +01:00
Wim Taymans
dfe3efef74
media: wait for concurrent _prepare
...
If a prepare is busy, wait for the result.
2012-11-13 11:54:17 +01:00
Wim Taymans
47127bd270
media: add lock around message handler
...
We don't want to dispatch messages while we are still processing the result of
the state change.
2012-11-13 11:49:08 +01:00
Wim Taymans
9a97de88ea
media: add lock to protect state changes
2012-11-13 11:15:35 +01:00
Wim Taymans
4753588b09
stream: add locking
2012-11-13 11:14:49 +01:00
Wim Taymans
c7d20e5603
stream-transport: add keep-alive method
2012-11-12 17:11:18 +01:00
Wim Taymans
75473fc88d
stream-transport: add method to handle RTP/RTCP
...
Call new methods instead of poking into the structures directly.
2012-11-12 17:06:42 +01:00
Wim Taymans
883cf794e4
session-media: add locking
2012-11-12 16:51:03 +01:00
Wim Taymans
11cf3f3ccb
session: add locking
2012-11-12 16:42:37 +01:00
Wim Taymans
65fa516677
server: free old socket
2012-11-12 16:30:16 +01:00
Wim Taymans
04881bd632
mapping: add locking
2012-11-12 16:18:57 +01:00
Wim Taymans
b8cba7719c
media-factory: add locking
2012-11-12 16:14:19 +01:00
Wim Taymans
e61c84c9bb
auth: add locking
2012-11-12 16:03:21 +01:00
Wim Taymans
06cadebe71
server: add max-thread property
2012-11-12 15:53:28 +01:00
Wim Taymans
8523c9ca92
server: use a threadpool for the mainloops
2012-11-12 15:29:39 +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
Sebastian Pölsterl
75598337a9
rtsp-server: added annotations to indicate type of ownership transfer of return values
...
https://bugzilla.gnome.org/show_bug.cgi?id=680777
2012-10-28 15:39:04 +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
0bb0e3733c
small fixes to docs and debug
2012-10-27 11:53:51 +02:00
Wim Taymans
6a838fd5c8
stream: transports must already have been removed
2012-10-26 17:29:30 +02:00
Wim Taymans
6f7d755894
stream: improve join and leave of the pipeline
...
simplify code
Do the cleanup properly
Add some docs
2012-10-26 17:28:10 +02:00
Wim Taymans
693dd3cfc4
media: move unprepare below default implementation
...
Makes it easier to find the default implementation
2012-10-26 15:23:16 +02:00
Wim Taymans
0d55e1f50c
media: signal unprepared when we actually finish
2012-10-26 15:21:50 +02:00
Wim Taymans
84b7cf1590
media: no need to unlock, unprepare does that when needed
2012-10-26 15:19:23 +02:00
Wim Taymans
348b7f9c21
docs: update docs
2012-10-26 12:35:20 +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
Ognyan Tonchev
78bde6fa3e
rtsp-server: don't ref server socket if it is NULL
...
Fixes test_bind_already_in_use unit test again after commit 6a497440
.
https://bugzilla.gnome.org/show_bug.cgi?id=686644
2012-10-22 18:11:28 +01:00
Sebastian Pölsterl
5cec59737b
rtsp-media-mapping: rename find_media vfunc to find_factory
...
The virtual method and class method should have the same name
so it is correctly represented in GIR file
https://bugzilla.gnome.org/show_bug.cgi?id=680777
2012-10-18 19:31:23 +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
Alessandro Decina
bc474a5b26
media-mapping: fix transfer mode for gst_rtsp_media_mapping_add_factory
2012-10-15 10:50:27 +02:00
Alessandro Decina
1e954a1a5e
rtsp-server: allow binding on port 0 (binds on a random port)
2012-10-15 10:50:27 +02:00
Alessandro Decina
6a49744088
rtsp-server: add bound-port property
...
bound-port can be used to retrieve the port number when the server is bound on
port 0, which binds on a random port.
2012-10-15 10:50:27 +02:00
Alessandro Decina
8f507e4512
rtsp-media-factory: make ::get_element overridable by GI bindings
...
The way to annotate vfuncs with GI seems to be to create an invoker (GI term)
for them and to annotate the invoker. Add gst_rtsp_media_factory_get_element()
as the invoker for ::get_element(), making it overridable by GI generated
bindings.
2012-10-15 10:50:26 +02:00
Alessandro Decina
3a49b8e783
rtsp-media-factory-uri: don't autoplug parsers in a loop
...
Stop autoplugging parsers if caps have parsed=true set. Fixes autoplugging
h264parse forever.
2012-10-15 10:50:26 +02:00
Alessandro Decina
8da18a85ef
Explicitly link against gio. Fix link error on mac.
2012-10-15 10:50:26 +02:00
Ognyan Tonchev
4f0ef292f0
session: add ttl to the transport header in SETUP
...
See https://bugzilla.gnome.org/show_bug.cgi?id=685561
2012-10-10 11:13:58 +02: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
Ognyan Tonchev
f4a0a371b7
media: fix check for seekability
2012-09-10 16:29:35 +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
Wim Taymans
87c73c06fb
server: remove obsolete includes
2012-09-07 17:14:10 +02:00
Aleix Conchillo Flaque
c6cce4a6b9
rtsp-media: also initialize transports in on_ssrc_active (bug #683304 )
...
* gst/rtsp-server/rtsp-media.c: GstRTSPMediaStream transports might not
be available in "on_new_ssrc". The transports are added in
gst_rtsp_media_set_state when going to PLAYING state. However,
"on_new_ssrc" might be called before this happens.
https://bugzilla.gnome.org/show_bug.cgi?id=683304
2012-09-07 16:45:17 +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
50e4c7e8c4
rtsp-server: fixed segfault in gst_rtsp_server_create_socket
...
Do not assume that *error is set in g_socket_address_enumerator_next.
Added test_bind_already_in_use unit-test.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681914
2012-08-20 11:49:27 +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
Tim-Philipp Müller
217a46e4c1
rtsp-media: update for gst_element_make_from_uri() changes
2012-06-23 15:06:11 +01:00
David Svensson Fors
36df0dd8be
rtsp-media: don't collect media stats when going to NULL
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=678015
2012-06-14 10:14:06 +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
aa158fa738
factory: plug pad leak in collect_streams
...
In gst_rtsp_media_factory_collect_streams: unref the srcpad that
was retrieved using gst_element_get_static_pad. gst_ghost_pad_new
will take one reference, and the other reference will otherwise
give a memory leak.
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
Sebastian Dröge
7df1696713
configure: Modernize autotools setup a bit
...
Also we now only create tar.bz2 and tar.xz tarballs.
2012-04-13 14:02:15 +02:00
Sebastian Dröge
fb0718a036
rtsp-server: Update versioning
2012-04-04 14:48:44 +02:00
Sebastian Dröge
e9ef6f6254
Merge remote-tracking branch 'origin/0.10'
...
Conflicts:
gst/rtsp-server/rtsp-session-pool.c
2012-03-29 15:12:21 +02:00
Sebastian Dröge
1f442d45b6
rtsp-server: Don't use deprecated GLib API
2012-03-27 10:13:20 +02:00
Wim Taymans
e0be150e91
media: fix state of the appqueue
2012-03-13 18:10:53 +01:00
Wim Taymans
6403227471
factory: use videoconvert
2012-03-13 16:07:16 +01:00
Wim Taymans
377f6d9156
factory: change to new style caps
2012-03-13 16:02:47 +01: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
bace3995d5
Merge branch 'master' into 0.11
2011-11-03 12:58:42 +01:00
Wim Taymans
a701e8595e
media: add a seekable boolean
...
Maintain the seekable state with a new variable instead of reusing the
is_live variable.
2011-11-03 12:55:24 +01:00
Victor Gottardi
526bbb5a8f
Disallow seek in live media
2011-11-03 12:45:18 +01:00
Wim Taymans
05c3928b11
Merge branch 'master' into 0.11
2011-11-03 11:58:42 +01:00
mat
20b6be3852
#ifdef statements for windows socket creation were missing
2011-11-03 11:56:51 +01:00
Wim Taymans
6759a4b9b0
client: use method to access property
2011-08-16 16:39:11 +02:00
Wim Taymans
4c8f3696d0
media-factory: add protocols property
...
Add a property to configure the allowed protocols in the media created from the
factory.
2011-08-16 16:39:07 +02:00
Wim Taymans
85e2013ca4
media-factory: add media-configure signal
...
Add signal to allow the application to configure the media after it was created
from the factory.
2011-08-16 16:39:04 +02:00
Wim Taymans
6fa73b2552
client: use method to access property
2011-08-16 16:07:04 +02:00
Wim Taymans
0e9ce1caf3
media-factory: add protocols property
...
Add a property to configure the allowed protocols in the media created from the
factory.
2011-08-16 15:15:19 +02:00
Wim Taymans
8684fc5c69
media-factory: add media-configure signal
...
Add signal to allow the application to configure the media after it was created
from the factory.
2011-08-16 15:03:06 +02:00
Wim Taymans
56a16f9f5a
client: use media multicast group
2011-08-16 14:50:21 +02:00
Wim Taymans
2c9701bd73
retab some .h
2011-08-16 14:50:18 +02:00
Robert Krakora
a5e028ba72
sdp: copy and free the server ip address
...
Copy and free the server ip address to make memory management easier later.
2011-08-16 14:50:15 +02:00
Wim Taymans
647e8c7af8
media-factory: configure multicast in media
2011-08-16 14:50:12 +02:00
Wim Taymans
c079325169
media: add property for multicast group
...
Add a property to configure the multicast group in the media.
Based on patches from Marc Leeman and Robert Krakora.
2011-08-16 14:50:05 +02:00
Wim Taymans
514728864a
media-factory: add property for multicast group
...
Add a property to configure the multicast group in the media factory.
Based on patches from Marc Leeman and Robert Krakora.
2011-08-16 14:49:59 +02:00
Wim Taymans
b881dc6669
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 14:49:55 +02:00
Wim Taymans
9573058f54
client: use media multicast group
2011-08-16 13:43:44 +02:00
Wim Taymans
26c8898e79
retab some .h
2011-08-16 13:37:50 +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
ccfb99f852
media-factory: configure multicast in media
2011-08-16 13:27:39 +02:00
Wim Taymans
5b53335873
media: add property for multicast group
...
Add a property to configure the multicast group in the media.
Based on patches from Marc Leeman and Robert Krakora.
2011-08-16 13:25:16 +02:00
Wim Taymans
1f8b97d940
media-factory: add property for multicast group
...
Add a property to configure the multicast group in the media factory.
Based on patches from Marc Leeman and Robert Krakora.
2011-08-16 13:13:36 +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
1aefff4959
Merge branch 'master' into 0.11
2011-08-16 11:53:37 +02:00
Emmanuel Pacaud
5dc9e76125
media-factory: add a "media-constructed" signal to GstRTSPMediaFactory
...
For example, it can be used to retrieve source elements like appsrc, in a more
convenient way than subclassing get_element.
2011-08-16 11:22:55 +02:00
Wim Taymans
b5aa7628bf
Merge branch 'master' into 0.11
2011-08-16 11:12:33 +02:00
David Schleef
041b62db8b
rtsp-server: hold on to reference while using object
2011-08-11 18:07:08 -07:00
Wim Taymans
bbab01747d
media: use new api
2011-08-04 08:59:17 +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
Edward Hervey
b93f046708
Makefile.am: 0.10 => @GST_MAJORMINOR@
2011-06-07 11:04:10 +02:00
Edward Hervey
597a99e9b9
rtsp-media-factory-uri: GST_PLUGIN_FEATURE_NAME is no longer
2011-06-07 10:59:16 +02:00
Edward Hervey
14f8ed65b4
.gitignore: 0.10 => 0.11
2011-06-07 10:59:03 +02:00
Edward Hervey
c94416d486
Makefile.am: 0.10 => @GST_MAJORMINOR@
2011-06-07 10:54:26 +02:00
Wim Taymans
80e0b0b19a
media: port to new caps API
2011-05-17 09:48:13 +02:00
Wim Taymans
debbea1008
Merge branch 'master' into 0.11
2011-05-17 09:45:04 +02:00
Fabian Deutsch
6ef7c966ae
Add a signal for newly connected clients.
...
Signed-off-by: Fabian Deutsch <fabian.deutsch@gmx.de>
2011-05-17 09:44:14 +02:00
Wim Taymans
914b481e42
rtsp-server: port to 0.11
2011-04-26 19:22:50 +02:00
Wim Taymans
6959ebd8e8
Merge branch 'master' into 0.11
...
Conflicts:
common
configure.ac
2011-04-26 19:07:13 +02:00
Miguel Angel Cabrera Moya
17ce0df09a
session: use full charset for RTSP session ID
...
As specified in RFC 2326 section 3.4 use full valid charset to make guessing
session ID more difficult.
https://bugzilla.gnome.org/show_bug.cgi?id=643812
2011-03-07 18:39:43 +00:00
Sebastian Dröge
63744dfece
rtsp-server: Don't install the funnel header
2011-03-07 10:23:06 +01:00
Wim Taymans
a924e90c79
media: remove more unused code
2011-02-02 15:37:03 +01:00
Wim Taymans
ec2201a3a8
media: remove duplicate filtering
...
Remove the duplicate filtering code now that we have a released -good version.
Give a warning instead.
2011-02-02 15:30:45 +01:00
Wim Taymans
8477fdbf43
media: fix default buffer size
2011-01-31 17:38:47 +01:00
Wim Taymans
e86b7c4b15
media-factory: add property to configure the buffer-size
...
Add a property to configure the kernel UDP buffer size.
2011-01-31 17:37:45 +01:00
Wim Taymans
88b4c02dff
media: add property to configure kernel buffer sizes
...
Add a property to configure the kernel UDP buffer size.
2011-01-31 17:37:41 +01:00
Wim Taymans
325b2cf8a2
rtsp-server: clarify docs a little
2011-01-19 15:29:55 +01:00
Wim Taymans
44b418b346
media: init debug category before starting thread
2011-01-13 18:57:15 +01:00
Wim Taymans
cd8382674d
auth: add realm to make it more spec compliant
2011-01-13 18:40:48 +01:00
Wim Taymans
b076933f5e
server: add locking
2011-01-12 18:57:41 +01:00
Wim Taymans
94c9999715
server: ensure the watch has a ref to the server
2011-01-12 18:26:57 +01:00
Wim Taymans
3315031bf6
server: simpify channel function
2011-01-12 18:24:44 +01:00
Wim Taymans
ba4d65a673
server: simplify management of channel and source
...
We don't need to keep around the channel and source objects. Let the mainloop
and the source manage the source and channel respectively.
2011-01-12 18:18:13 +01:00
Wim Taymans
9e97faf2db
server: improve debugging in various objects
2011-01-12 18:14:48 +01:00
Wim Taymans
0ef53a2d4f
server: chain up to the parent finalize
2011-01-12 16:38:34 +01: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
318b3a1df4
server: use signal to keep track of clients
...
Keep track of all the clients that the server creates and remove them when they
fire the 'closed' signal.
2011-01-12 15:36:22 +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
9ea0346d97
media-factory: add methods to configure authorisation
2011-01-12 12:07:40 +01:00
Wim Taymans
748d044b62
client: unref auth in finalize
2011-01-12 12:07:20 +01:00
Wim Taymans
6915572695
server: unref auth in finalize
2011-01-12 12:07:04 +01:00
Wim Taymans
6d6ba1ee61
server: separate create and accept
...
Create separate create and accept methods so that subclasses can create custom
client object.
Configure the server in the client object and prepare for keeping track of
connected clients.
2011-01-12 10:57:08 +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
9f52f281ba
auth: fix memleak and add some docs
...
Fix a memleak of the basic auth token.
Add docs for the helper function
2011-01-12 10:41:42 +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
61bee9985a
server: move includes back
...
the includes are needed for sockaddr_in.
2011-01-12 00:20:36 +01:00
Wim Taymans
da35feb1aa
rtsp: move network includes where they are needed
2011-01-11 22:42:25 +01:00
Sreerenj Balachandran
28597c913d
rtsp-media.h: Minor corrections in comments.
...
Fixes #638944
2011-01-11 21:32:45 +01:00
Edward Hervey
2cc9eee3e6
gitignore: updates
2011-01-11 13:04:31 +01:00