Commit graph

18880 commits

Author SHA1 Message Date
Jose Antonio Santos Cadenas
8f8b0f5478 srtpenc: Do not drop all buffers in buffer list if one fails
https://bugzilla.gnome.org/show_bug.cgi?id=746387
2015-03-19 16:27:21 +01:00
Luis de Bethencourt
fd3c60de34 gaudieffects: update copyright dates of dilate 2015-03-19 13:59:42 +00:00
Luis de Bethencourt
78ebbb4fd7 gaudieffects: factorize transform code of dilate 2015-03-19 13:58:21 +00:00
Sebastian Dröge
82b73713cb dtls: Pass the connection instance as data to the thread pool
No need to ref/unref the connection every time we push something on the pool.
However we have to provide non-NULL data to the pool, so let's just give it
some coffee.
2015-03-19 14:04:28 +01:00
Sebastian Dröge
602b1ca3d2 dtls: Remove unused thread struct field 2015-03-19 13:55:53 +01:00
Sebastian Dröge
fd609f6bc0 dtls: Use a shared thread pool for the timeouts
This way we will share threads with other DTLS connections if possible, and
don't have to start/stop threads for timeouts if there are many to be handled
in a short period of time.

Also use the system clock and async waiting on it for scheduling the timeouts.
2015-03-19 13:30:00 +01:00
Sebastian Dröge
4072666c7d dtls: Shutdown timeout thread when it's not needed
It is not needed most of the time and usually we have a thread
idling around doing nothing all the time after the first few seconds.
2015-03-18 18:21:35 +01:00
Matthew Waters
0ee027b6ee gl/docs: update some doc comments 2015-03-18 10:13:25 -07:00
Sebastian Dröge
7782bdf286 dtlsenc: Clear the queue when deactivating the pad 2015-03-18 17:40:47 +01:00
Sebastian Dröge
4fed95c534 dtlsenc: Handle pad activity states properly 2015-03-18 17:40:34 +01:00
Sebastian Dröge
ff01df1093 dtlsenc: Don't manually activate/deactivate srcpad 2015-03-18 17:35:12 +01:00
Jose Antonio Santos Cadenas
8d2e98bc3f srtpdec: Separate buffer encoding functionality into a different function
https://bugzilla.gnome.org/show_bug.cgi?id=746387
2015-03-18 16:26:48 +01:00
Jose Antonio Santos Cadenas
f295beda07 srtpenc: Add support for buffer list
https://bugzilla.gnome.org/show_bug.cgi?id=746387
2015-03-18 16:26:48 +01:00
Jose Antonio Santos Cadenas
ef4a904700 srtpenc: Add missing locks
https://bugzilla.gnome.org/show_bug.cgi?id=746387
2015-03-18 16:22:58 +01:00
Jose Antonio Santos Cadenas
2d3938c063 srtpenc: Split chain functionality so it can be reused for buffer list
https://bugzilla.gnome.org/show_bug.cgi?id=746387
2015-03-18 16:21:36 +01:00
Sebastian Dröge
3614302cf8 dtlsenc: Use a GQueue instead of a GPtrArray
Using a GPtrArray as a queue is not very efficient as the whole
array has to be copied whenever an element is removed from the
beginning.
2015-03-18 13:52:38 +01:00
Sebastian Dröge
47b73f0d52 dtlsdec: Fix locking
Especially don't hold any mutex while adding/removing pads or pushing data.
2015-03-18 10:06:47 +01:00
Sebastian Dröge
989c2ef67b dtlsdec: Add support for buffer lists 2015-03-18 10:06:15 +01:00
Sebastian Dröge
2082476efb dtls: Fix some search & replace mistakes from renaming the elements 2015-03-18 09:46:40 +01:00
Jose Antonio Santos Cadenas
e2cdbdae13 srtpenc: Improve memory management on chain function
Avoiding copy the buffer twice, one while mapping and other with mencpy

https://bugzilla.gnome.org/show_bug.cgi?id=746356
2015-03-17 18:18:43 +01:00
Jose Antonio Santos Cadenas
5bad599560 srtpenc: Fix typo in log 2015-03-17 18:18:32 +01:00
Sebastian Dröge
2dcd5dd39b dtls: Initialize debug category earlier
Otherwise the openssl initialization will use it before initialization
2015-03-17 11:43:00 +01:00
Olivier Crête
84eff5cca9 audiointerleave: Add unit tests
Almost a copy of the "interleave" unit tests, improved to support
the thread on the src pad on GstAggregator.

https://bugzilla.gnome.org/show_bug.cgi?id=740236
2015-03-16 16:44:03 -04:00
Olivier Crête
224f14a299 audiointerleave: Set src caps in aggregate
This prevents races between the setcaps of the sink pads

https://bugzilla.gnome.org/show_bug.cgi?id=740236
2015-03-16 16:44:03 -04:00
Olivier Crête
b08b01895f audiointerleave: Add interleave element based on audioaggregator
https://bugzilla.gnome.org/show_bug.cgi?id=740236
2015-03-16 16:44:03 -04:00
Olivier Crête
c565877991 audioaggregator: Print a message when a buffer is late
https://bugzilla.gnome.org/show_bug.cgi?id=740236
2015-03-16 16:44:03 -04:00
Olivier Crête
01520c7e47 audioaggregator: Don't re-send the caps if they did not change
https://bugzilla.gnome.org/show_bug.cgi?id=740236
2015-03-16 16:41:45 -04:00
Olivier Crête
959f8e4a3e audioaggregator: Split base class from audiomixer
Also:
-  Don't modify size on early buffer
   The size is the size of the buffer, not of remaining part.
- Use the input caps when manipulating the input buffer
   Also store in in the sink pad
- Reply to the position query in bytes too
- Put GAP flag on output if all inputs are GAP data
- Only try to clip buffer if the incoming segment is in time or samples
- Use incoming segment with incoming timestamp
   Handle non-time segments and NONE timestamps
- Don't reset the position when pushing out new caps
- Make a number of member variables private
- Correctly handle case where no pad has a buffer
  If none of the pads have buffers that can be handled, don't claim to be EOS.
- Ensure proper locking
- Only support time segments

https://bugzilla.gnome.org/show_bug.cgi?id=740236
2015-03-16 16:41:45 -04:00
Olivier Crête
ff9be3ba34 audiomixer: Release pad object lock before dropping buffer
Otherwise, the locking order is violated and deadlocks happen.

https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-03-16 14:31:50 -04:00
Olivier Crête
2d553d1b25 audiomixer: Only ignore pads with no buffers on timeout
When the timeout is reached, only ignore pads with no buffers, iterate
over the other pads until all buffers have been read. This is important
in the cases where the input buffers are smaller than the output buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-03-16 14:31:50 -04:00
Olivier Crête
0656c2fc67 aggregator: Be more aggressive with invalid replies to our latency query
https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-03-16 14:31:50 -04:00
Olivier Crête
9c49624610 audiomixer: Only advance by the buffer size when a buffer is late
https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-03-16 14:31:50 -04:00
Tim-Philipp Müller
9f06d36d95 dtls: make sure we actually log into the right debug category
GST_DTLS_USE_GST_LOG is not defined anywhere, so
we'd just log into the default category by accident.
We use the gst logging system unconditionally now,
so might just as well remove this #if #else.
2015-03-16 17:51:20 +00:00
Tim-Philipp Müller
86a889883e dtls: fix some more compiler warnings
gcc-4.9.2:
gstdtlsagent.c:114:1: error: old-style function definition
gstdtlsconnection.c:253:3: error: ISO C90 forbids mixed declarations and code
gstdtlsconnection.c:291:3: error: ISO C90 forbids mixed declarations and code
gstdtlsconnection.c:391:3: error: ISO C90 forbids mixed declarations and code
gstdtlsconnection.c:434:3: error: ISO C90 forbids mixed declarations and code
gstdtlsconnection.c:773:1: error: 'BIO_s_gst_dtls_connection' was used with no prototype before its definition
gstdtlsconnection.c:773:1: error: old-style function definition
2015-03-16 17:36:49 +00:00
Sebastian Dröge
d9344ad820 dtls: Unconditionally use GStreamer debug log system 2015-03-16 18:23:27 +01:00
Sebastian Dröge
936fa2f1c4 dtls: Re-namespace from Er to Gst 2015-03-16 18:23:27 +01:00
Sebastian Dröge
1de51fcf02 dtls: Fix some compiler warnings
gstdtlsconnection.c:128:32: error: passing 'const char [30]' to parameter of type 'void *'
      discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
      SSL_get_ex_new_index (0, "gstdtlsagent connection index", NULL, NULL,
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/openssl/ssl.h:1981:43: note: passing argument to parameter 'argp' here
int SSL_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
                                          ^
gstdtlsconnection.c:822:40: error: arithmetic on a pointer to void is a GNU extension
      [-Werror,-Wpointer-arith]
  memcpy (out_buffer, priv->bio_buffer + priv->bio_buffer_offset, copy_size);
                      ~~~~~~~~~~~~~~~~ ^
2015-03-16 18:23:27 +01:00
Sebastian Dröge
6183e99eec dtls: Fix indention 2015-03-16 18:23:27 +01:00
Sebastian Dröge
1e0ed9af11 dtls: Add new DTLS plugin
This is a copy of the Ericsson DTLS plugin from
https://github.com/EricssonResearch/openwebrtc-gst-plugins/tree/master/ext/erdtls/src

https://bugzilla.gnome.org/show_bug.cgi?id=744582
2015-03-16 18:23:27 +01:00
Jan Schmidt
d5ca311a0d compositor: Revert most of previous patch.
The calculation doesn't produce the same results.
Keep just the change to divide alpha by 255 instead of 256,
for slightly better accuracy
2015-03-16 04:00:44 +11:00
Sebastian Dröge
35ef602b7d androidmedia: Add helpers for calling static methods 2015-03-15 16:59:25 +00:00
Sebastian Dröge
1580336152 androidmedia: Fix indention 2015-03-15 16:41:12 +00:00
Matthieu Bouron
66f315d6a6 androidmedia: Add more JNI helper functions 2015-03-15 16:28:03 +00:00
Matthieu Bouron
be2378a071 androidmedia: Split jni code to gstjniutils.c 2015-03-15 16:28:03 +00:00
Tim-Philipp Müller
5c3652dd22 mpegtsmux: drop some superfluous assertions
g_return_*_if_fail() is for public API to catch
programming errors. For internal code, we should
just use g_assert() to check internal state.
2015-03-15 16:10:31 +00:00
Tim-Philipp Müller
ec6e93d45f tests: mpegtsmux: add test for keyframe/delta flag propagation
The first output MPEG-TS packet that corresponds to a video input
buffer which had the delta flag cleared (i.e. was a keyframe)
should have the delta flag cleared as well.

This is needed e.g. by tcpserversink in order to keep track
of the last keyframe and be able to burst data to newly-
connected clients.

https://bugzilla.gnome.org/show_bug.cgi?id=706872
2015-03-15 15:54:01 +00:00
Matthew Waters
e9fb5509ac gl/docs: add missing functions/objects 2015-03-15 14:43:10 +00:00
Matthew Waters
78c82328ee gldisplay: tentative proper context collision detection
Fixes
tee name=t ! queue ! gliamgesink t. ! queue ! glimagesink
2015-03-15 14:43:10 +00:00
Jesper Larsen
67d46d9934 mpegtsmux: Fix namespace of some internal functions
https://bugzilla.gnome.org/show_bug.cgi?id=733347
2015-03-15 14:10:32 +00:00
Jan Schmidt
badc0438d6 compositor: Fix blending functions
Correctly calculate alpha in a few places by dividing by 255,
not 256.

Fix the argb and bgra blending functions to avoid an off-by-one
error in the calculations, so painting with alpha = 0xff doesn't
ever bleed through from behind
2015-03-16 00:33:23 +11:00