Commit graph

42 commits

Author SHA1 Message Date
Aleix Conchillo Flaqué
da30669589 srtp: add support for rollover counters and replay protection window size
We add a new signal, get-rollover-counter, to the SRTP encoder. Given a
ssrc the signal will return the currently internal SRTP rollover counter
for the given stream.

For the SRTP decoder we have a new SRTP caps parameter "roc" that needs
to be set when a new SRTP stream is created for a given SSRC.

https://bugzilla.gnome.org/show_bug.cgi?id=726861
2014-06-03 16:18:25 -04:00
Olivier Crête
0566be384d srtpdec: Don't reset stream if the key hasn't changed 2014-05-06 00:49:59 -04:00
Olivier Crête
b2a6490626 srtpdec: Add "remove-key" action signal to remove a single key
Removing all the keys can be a problem as it also resets the various
counters, so instead add an option to remove a single key.
2014-05-06 00:49:59 -04:00
Olivier Crête
53a4e05261 srtpenc: Use %u in templates to match rtpbin 2014-05-06 00:49:22 -04:00
Olivier Crête
8c9b1ade36 srtpdec: Remove unused field 2014-05-06 00:49:15 -04:00
Olivier Crête
5d3ce2c611 srtpenc: Add config for the replay window size 2014-05-02 17:27:56 -04:00
Olivier Crête
b51344651e srtpenc: Remove unused object members 2014-05-02 17:25:35 -04:00
Olivier Crête
820200e20e srtpenc: Remove useless structure
Remove now useless structure
2014-05-02 17:19:51 -04:00
Olivier Crête
2906fae146 srtpenc: Remove ssrc parsing from stream
It's no longer used
2014-05-02 17:19:51 -04:00
Olivier Crête
98f8bf46df srtpenc: Remove SSRC from signal, it's meaningless 2014-05-02 17:19:51 -04:00
Olivier Crête
5a38ae5a83 srtpenc: Set the SRTP key as a shared key for all SSRCs
This is already how it was used.
2014-05-02 17:19:51 -04:00
Olivier Crête
775e998dab srtpdec: Only clear streams if they have been created 2014-05-01 19:16:35 -04:00
Olivier Crête
494b8e110d srtpdec: Use object debug 2014-05-01 19:10:43 -04:00
Aleix Conchillo Flaqué
01c15547d4 srtpdec: fix assertion checking ssrc from rtcp packets
rtcp_buffer_get_ssrc is called even with RTP buffers. this means we
might end up with an exception and not find any valid RTCP packet type
and thus hit GST_RTCP_TYPE_INVALID. we now take care of this.

https://bugzilla.gnome.org/show_bug.cgi?id=727512
2014-04-12 05:08:20 +02:00
Vincent Penquerc'h
54704b6f5d srtp: remove dead assignment
Coverity 1197707
2014-04-09 16:55:30 +01:00
Wim Taymans
9adb1734cf srtpenc: unlock object lock before posting error
Posting an error with the object lock will deadlock. Rework the code
a bit to make things more simple.
2014-03-25 17:46:32 +01:00
Aleix Conchillo Flaqué
a04fe75047 srtpenc: unref caps after gst_query_set_caps_result
https://bugzilla.gnome.org/show_bug.cgi?id=725412
2014-03-01 16:40:39 +01:00
Sebastian Dröge
15e0db90e8 srtpdec: Fix comparison compiler warning
error: comparison of constant -1 with expression of type
'GstSrtpCipherType' is always false
2014-02-08 19:59:43 +01:00
Miguel París Díaz
e944195b64 srtpdec: Fix GstCaps memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=721382
2014-01-03 10:46:29 +01:00
Aleix Conchillo Flaqué
fefd021ee2 srtp: add 256-bit key support
* ext/srtp/gstsrtp.[ch]: added GST_SRTP_CIPHER_AES_256_ICM to
  GstSrtpCipherType and new function cipher_key_size.

* ext/srtp/gstsrtpenc.c: maximum key size is now 46 characters (14 for
  the salt plus the key). If different ciphers are chosen for RTP and
  RTCP the maximum needed key size is expected.

* ext/srtp/gstsrtpdec.c: minor documentation updates.

https://bugzilla.gnome.org/show_bug.cgi?id=720434
2013-12-13 17:51:18 -05:00
Olivier Crête
b58ca88fb9 srtpenc: Set the first session flag to false once one is create
Otherwise it always thinks it's the first session.

https://bugzilla.gnome.org/show_bug.cgi?id=711495
2013-11-19 20:18:48 -05:00
Olivier Crête
2b75eb85c4 srtpdec: Make sure that stream-id/caps/segment are sent before buffers
It may be possible that only one of the two sink pads is linked in that case,
the events need to be created from the other pad.
2013-11-19 20:12:54 -05:00
Olivier Crête
de1fb842e6 srtpdec: Pass is_rtcp to setcaps function 2013-11-19 19:10:06 -05:00
Olivier Crête
8c76d7c77e srtp: Implement SRTCP demultiplexing
Separate multiplexed RTP and RTCP if they arrive
on the rtp_sink pad.
2013-11-19 18:34:08 -05:00
Tim-Philipp Müller
b8f9d674be srtpdec: fix buffers being dropped due to shadowed variable
Spotted by gstblub@gmail.com.

https://bugzilla.gnome.org/show_bug.cgi?id=706091
2013-08-16 19:48:03 +01:00
Olivier Crête
d346e75606 srtp: Let packets through without touching them if no crypto or auth is set 2013-08-12 12:27:33 -04:00
Olivier Crête
a10e800dfd srtpdec: Refactor code a bit
Simplify the error handling case and get the packet push out of the if()
2013-08-12 12:27:16 -04:00
Olivier Crête
04bd37dd67 srtpdec: Don't error on invalid packet, just drop it 2013-08-12 11:57:04 -04:00
Olivier Crête
ad7ffe64a6 srtp: Don't require a key if both auth and cipher are null 2013-06-28 20:35:16 -04:00
Olivier Crête
47a6118fbc srtp: Move the enums to the common header
The types are used in both the encoder and decoder
2013-06-28 20:35:15 -04:00
Olivier Crête
4d7a186513 srtp: Remove unused code 2013-06-28 20:13:38 -04:00
Edward Hervey
f88f1d0a35 srtp: Fix dist
The enums should not be dist-ed and instead be re-generated when
compiling.
2013-06-23 09:06:29 +02:00
Sebastian Dröge
e51cd4fe2f gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
Olivier Crête
4a9c3d4f16 srtpdec: Don't stop on invalid buffer 2013-04-09 21:37:25 -04:00
Olivier Crête
3bf994eb3b srtpdec: Cleaner stream cleanup 2013-04-09 21:37:25 -04:00
Olivier Crête
4b89870a58 srtpdec: Don't crash on invalid cipher 2013-04-09 21:37:24 -04:00
Tim-Philipp Müller
5beefc66cd ext: printf format fixes in debug and error messages 2013-04-08 17:40:14 +01:00
Olivier Crête
c42ac5b450 srtp: Update example pipelines 2013-03-28 14:35:48 -04:00
Olivier Crête
ed7f675966 srtp: Fix filter handling in caps negotiation to keep filter content 2013-03-25 13:48:56 -04:00
Jose Antonio Santos Cadenas
ea2332c466 srtp: fix compilation warning returning NULL in case of error
https://bugzilla.gnome.org/show_bug.cgi?id=695897
2013-03-15 11:04:39 +00:00
Jose Antonio Santos Cadenas
2347c4e711 srtp: use constant AES_128_ICM instead of AES_ICM that is not found
https://bugzilla.gnome.org/show_bug.cgi?id=695897
2013-03-15 11:04:29 +00:00
Olivier Crête
4eb960d6c3 srtp: Add SRTP plugin based on libsrtp
In large part the work of Gabriel Millaire
2013-03-12 20:01:50 -04:00