Wim Taymans
ced406cc28
client: expose _close() method
...
Expose a previously internal close method to close the client
connection.
2014-07-10 17:05:13 +02:00
Wim Taymans
301585b30f
session-pool: signal session-removed outside of the lock
...
Release the lock before emiting the session-removed signal.
2014-07-10 12:20:15 +02:00
Wim Taymans
945c93fde0
filter: Release lock in filter functions
...
Release the object lock before calling the filter functions. We need to
keep a cookie to detect when the list changed during the filter
callback. We also keep a hashtable to make sure we only call the filter
function once for each object in case of concurrent modification.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732950
2014-07-10 11:36:55 +02:00
Ognyan Tonchev
6543082d2b
client: check if watch is set in handle_teardown()
...
The unit tests run without a watch
2014-07-09 16:17:00 +02:00
Ognyan Tonchev
e0bc97e40c
client: keep ref to client for the session removed handler
...
This extra ref will be dropped when all client sessions have been
removed. A session is removed when a client sends teardown, closes its
endpoint of the TCP connection or the sessions expires.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732226
2014-07-09 16:16:50 +02:00
Wim Taymans
5aec4af1b9
client: manage media in session as a last step
...
Once we manage a media in a session, we can't unmanage it anymore
without destroying it. Therefore, first check everything before we
manage the media, otherwise if something is wrong we have no way to
unmanage the media.
If we created a new session and something went wrong, remove the session
again. Fixes a leak in the unit test.
2014-07-08 14:46:13 +02:00
Wim Taymans
99f670d8bc
rtsp: fix for MIKEY api change
2014-07-02 16:04:53 +02:00
Wim Taymans
72a57e792f
client: free watch context only once
...
The watch context is freed when the source is destroyed. Avoids
a CRITICAL when we try to unref the context twice.
2014-07-01 16:12:13 +02:00
Wim Taymans
517bb78ae3
client: fix build
2014-07-01 15:02:15 +02:00
Wim Taymans
5e2afcefdd
client: protect sessions with lock
...
Protect the list of sessions with the lock.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732226
2014-07-01 14:41:14 +02:00
Wim Taymans
fe081e7301
Client: keep a ref to the session
...
Don't just keep a weak ref to the session objects but use a hard ref. We
will be notified when a session is removed from the pool (expired) with
the new session-removed signal.
Don't automatically close the RTSP connection when all the sessions of
a client are removed, a client can continue to operate and it can create
a new session if it wants. If you want to remove the client from the
server, you have to use gst_rtsp_server_client_filter() now.
Based on patch from Ognyan Tonchev <ognyan.tonchev at axis.com>
See https://bugzilla.gnome.org/show_bug.cgi?id=732226
2014-07-01 12:28:41 +02:00
Wim Taymans
964ca3c988
session-pool: add session-removed signal
...
Add a signal to be notified when a session is removed from the pool.
2014-06-30 15:14:34 +02:00
Evan Nemerson
41d1ef7ed3
Make rtsp-server.h a single-include header, use it for G-I
...
https://bugzilla.gnome.org/show_bug.cgi?id=732411
2014-06-30 09:45:11 +02:00
Wim Taymans
db95746f6b
stream: crypto can be NULL
2014-06-27 16:55:07 +02:00
Evan Nemerson
cecc2cb4ff
introspection: add missing allow-none annotations
...
https://bugzilla.gnome.org/show_bug.cgi?id=730952
2014-06-26 19:08:56 +02:00
Evan Nemerson
34e6ac3b9f
introspection: add (nullable) annotations to return values
...
https://bugzilla.gnome.org/show_bug.cgi?id=730952
2014-06-26 19:08:16 +02:00
Evan Nemerson
d08b46f4b7
gi: improve annotations
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=730953
2014-06-24 09:48:45 +02:00
Wim Taymans
661f4d928f
signals: use generic marshal function
...
Use the generic C marshal function.
Use more explicit type instead of G_TYPE_POINTER
2014-06-24 09:43:44 +02:00
Wim Taymans
aa44c03439
context: add type macro
2014-06-24 09:42:47 +02:00
Wim Taymans
d676c56888
sdp: hide key length defines
...
They don't have a namespace.
2014-06-24 09:34:50 +02:00
Aleix Conchillo Flaqué
32432b5c61
mikey: add different key length parameters
...
Add encryption and authentication key length parameters to MIKEY. For
the encoders, the key lengths are obtained from the cipher and auth
algorithms set in the caps. For the decoders, they are obtained while
parsing the key management from the client.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=730472
2014-06-19 16:06:27 +02:00
Ognyan Tonchev
f2b1aa8c81
client: ref the context until rtsp watch is alive
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=731569
2014-06-18 15:23:15 +02:00
Ognyan Tonchev
9715252588
client: Destroy the rtsp watch after connection close
2014-06-18 15:21:23 +02:00
Wim Taymans
e327af8a26
media: fix confusing comment
2014-06-13 16:46:06 +02:00
Göran Jönsson
aaf921cac4
rtsp-session: Timeout in header.
...
Adding the possbilty to always have timout in header.
This is configurabe with setting "timeout-always-visible".
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728264
2014-06-05 10:36:11 +02:00
Wim Taymans
5aa06b8058
client: store TCP ports in transport
...
Store the TCP ports in the transport when we are doing RTSP over TCP.
This way, we can easily get to the ports from the transport.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=729776
2014-05-20 15:57:30 +02:00
Aleix Conchillo Flaqué
17322693f6
stream: add signals for new RTP/RTCP encoders
...
New signals to allow the user to configure the dynamically created
encoders.
https://bugzilla.gnome.org/show_bug.cgi?id=730228
2014-05-16 16:27:52 +02:00
Ognyan Tonchev
0fb7922e9b
media: Make suspend()/unsuspend() virtual
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=730109
2014-05-15 15:42:18 +02:00
Aleix Conchillo Flaqué
d01beef7c5
client: fix send-message signal marshaller
...
Use generic marshalling for the send-message signal. It has
two POINTER arguments, not just one.
https://bugzilla.gnome.org/show_bug.cgi?id=729900
2014-05-10 12:23:16 +01:00
Tim-Philipp Müller
efd079546a
rtsp-client: handle Require headers and respond with OPTION_NOT_SUPPORTED
...
Servers must handle Require headers and must report a failure
if they don't handle any of the Required options, see RFC 2326,
section 12.32: https://tools.ietf.org/html/rfc2326#page-54
https://bugzilla.gnome.org/show_bug.cgi?id=729426
2014-05-09 13:55:21 +01:00
Wim Taymans
ea4543efc8
client: emit a signal before sending a message
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728970
2014-05-01 06:17:06 +02:00
Wim Taymans
4c42aec6dd
client: pass context to send_message
...
Pass the current context to send_message, we will need it later.
2014-05-01 06:07:08 +02:00
Wim Taymans
a646e278d3
client: fix typo in comment
2014-05-01 05:29:54 +02:00
Ognyan Tonchev
7cce8e2dde
media: Do not stop thread twice if default_prepare() fails
2014-04-21 12:21:37 +02:00
Wim Taymans
e69241ac97
client: set the watch to flushing before going to NULL
...
First set the watch to flushing so that we unblock any current and
future attempt to send data on the watch, Then set the pipeline to
NULL.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728153
2014-04-15 16:51:17 +02:00
Linus Svensson
9219509bcf
rtsp-session-pool: Fixes annotation
...
Fixes annotation for gst_rtsp_session_pool_create() and memory leaks
in the sessionpool test.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728060
2014-04-12 06:15:03 +02:00
Ognyan Tonchev
80474e9e5e
media: make media_prepare virtual
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728029
2014-04-12 06:04:13 +02:00
Ognyan Tonchev
da19a3c21a
media: stop the thread in more error cases
2014-04-12 05:57:00 +02:00
Ognyan Tonchev
de2a70bb10
media: allow NULL as the thread
...
Use the default context whan passing a NULL thread.
2014-04-12 05:55:02 +02:00
Vincent Penquerc'h
adc3e8907e
rtsp-client: indent cleanup
...
Coverity was moaning about unreachable code, and I think it was just
confused by { being before the label. We'll see if it pops up again.
Coverity 1197705
2014-04-10 16:39:11 +01:00
Göran Jönsson
11369d38ef
client: Add drop-backlog property
...
When we have too many messages queued for a client (currently hardcoded
to 100) we overflow and drop the messages. Add a drop-backlog property
to control this behaviour. Setting this property to FALSE will retry
to send the messages to the client by waiting for more room in the
backlog.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725898
2014-04-10 16:08:06 +02:00
Ognyan Tonchev
0493a63a65
client: support for POST before GET when setting up a tunnel
2014-04-08 16:20:44 +02:00
Ognyan Tonchev
132f77751d
client: remove watch of the second client after http tunnel setup
...
The second client will be freed after the HTTP tunnel has been set up.
Make sure it's RTSP watch is never dispatched again.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=727488
2014-04-08 16:17:30 +02:00
Ognyan Tonchev
9c0ef4d9f8
media: Make media_prepare() fail if port allocation fails
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=727376
2014-04-08 15:11:25 +02:00
Linus Svensson
a3e6b11f11
rtsp-media: Unblock blocked streams in unprepare
...
The streams will be blocked when a live media is prepared.
The streams should be unblocked in gst_rtsp_media_unprepare.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=727231
2014-04-08 14:58:23 +02:00
Wim Taymans
fd5e949169
media: release the state lock when going to NULL
...
Set our state to UNPREPARING and release the state-lock before
setting the pipeline to the NULL state. This way, any pad-added
callback will be able to take the state-lock and check that we are now
unpreparing instead of deadlocking.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=727102
2014-04-08 14:49:41 +02:00
Wim Taymans
7f40d3d87f
media: protect status with lock
...
Make sure we only update the status with the lock.
2014-04-08 12:08:17 +02:00
Wim Taymans
248db04720
rtsp: update for MIKEY API changes
2014-04-04 17:39:36 +02:00
Wim Taymans
0d22b798ae
client: parse the mikey response from the client
...
Parse the mikey response from the client and update the policy for
each SSRC.
2014-04-03 17:42:25 +02:00
Wim Taymans
377ca6ed0f
stream: add method to set crypto info
...
Make a method to configure the crypto information of a stream.
Set udpsrc in READY instead of PAUSED so that we can configure caps
later.
2014-04-03 17:26:12 +02:00