Commit graph

722 commits

Author SHA1 Message Date
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
Wim Taymans f8a6a5668d client: cleanup error paths 2014-04-03 12:57:13 +02:00
Wim Taymans 07ae06a595 media: fix docs 2014-04-02 12:27:24 +02:00
Wim Taymans 3d6175c745 stream: add SRTP support
Install srtp encoder and decoder elements in rtpbin
Add MIKEY in SDP
2014-03-25 10:31:21 +01:00
Sebastian Rasmussen b1b5301577 gobject-introspection: Add annotations to support language bindings
In addition a few cosmetic changes:

 * Adjust the order of arguments
 * Fix typo: occured -> occurred
 * Fix indentation after Return:-clauses

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726941
2014-03-24 00:36:42 +00:00
Sebastian Rasmussen 0b617dd5bd rtsp-stream: Don't mix IPv4 and IPv6 addresses
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726362
2014-03-15 15:44:25 +01:00
Wim Taymans 2c7ffe97ca stream: take caps after the session manager
Take the caps for the SDP after they leave the rtpbin so that we can
also get the properties added by rtpbin elements.
2014-03-13 14:27:15 +01:00
Wim Taymans 50ca10e751 stream: release lock while pushing out packets
Keep a cache of the transports and use this to iterate the transport
while pushing packets. This allows us to release the lock early.

See https://bugzilla.gnome.org/show_bug.cgi?id=725898
2014-03-13 14:20:17 +01:00