Commit graph

4439 commits

Author SHA1 Message Date
Sebastian Dröge
bb5b0f2d12 opusdec: Take output sample rate from the stream headers too
This way we let opusdec do the resampling if needed and don't carry
around buffers with a too high sample rate if not required.

While Opus always uses 48kHz internally, this information from the
header specifies which frequencies are safe to drop.
2015-03-23 11:57:09 +01:00
Sebastian Dröge
716eaf765b opusheader: Put number of channels and sample rate into the caps
https://bugzilla.gnome.org/show_bug.cgi?id=746617
2015-03-23 11:56:09 +01:00
Nicola Murino
0719c8c766 glimagesink: fix caps leak
https://bugzilla.gnome.org/show_bug.cgi?id=746541
2015-03-21 16:52:08 +00:00
Jose Antonio Santos Cadenas
ff11a1a8a0 srtpdec: Add support for buffer list
https://bugzilla.gnome.org/show_bug.cgi?id=746387
2015-03-19 16:31:47 +01:00
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
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
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
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
xixi
5a1ed14c3c dashdemux: fetch wrong segment at the end of Period
Fix check for end of Period time to avoid trying
to fetch a segment that doesn't exist

https://bugzilla.gnome.org/show_bug.cgi?id=746038
2015-03-15 12:02:58 +00:00
Víctor Manuel Jáquez Leal
d925e7fd19 glupload: move meta-data copy into gst-gl library
In some upload implementations the out buffer has more than one references,
turning the buffer not writable, so it won't be possible to modify its
meta-data.

This patch moves the meta-data copy before increasing the reference of the out
buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=746173
2015-03-14 19:53:02 +00:00
Julien Isorce
f8fca66fb9 glimagesink: keep window invisible when sharing output
https://bugzilla.gnome.org/show_bug.cgi?id=739681
2015-03-14 17:56:39 +00:00
Julien Isorce
0150255a46 glimagesink: provide GstSample in client-draw signal
Instead of prividing texture and size directly.
And apply changes to examples.

https://bugzilla.gnome.org/show_bug.cgi?id=739681
2015-03-14 17:56:21 +00:00
Matthew Waters
fa61e8e4ce glsyncmeta: make context to wait and set sync explicit
otherwise we may wait on a sync object in same context by accident
2015-03-14 16:53:46 +00:00
Nicolas Dufresne
ac89e53173 glimagesink: Add NULL check in error case
Other context may be NULL if something went wrong. Avoid trying to unref
a NULL pointer.
2015-03-14 12:58:22 +00:00
Matthew Waters
0c8ede8565 glupload/colorconvert: only copy timestamps if the input buffer != output 2015-03-14 10:39:06 +00:00
Matthew Waters
a29a18cc3a glshader: attribute locations are -1 on error 2015-03-13 17:41:17 +00:00
Jan Schmidt
450dc5f697 GL: Remove annoying printf in the filterbin class_init 2015-03-14 02:54:18 +11:00
Matthew Waters
2ba6bb9b93 glimagesink: add pixel-aspect-ratio property on the bin 2015-03-13 12:43:13 +00:00
Matthew Waters
4be45e5f30 glimagesink: forward ALL the properties on the bin 2015-03-13 12:30:20 +00:00
Matthew Waters
067d5c45d2 gluploadelement: properly unref buffers that are the same as the input
basetransform doesn't unref equal input and output buffers
2015-03-13 12:30:20 +00:00
Matthew Waters
34485c9976 gl: get the context from basemixer/basefilter 2015-03-13 12:30:20 +00:00
Matthew Waters
91b7642c48 gl: retreive the gldisplay/app gl context as soon as possible
fixes the usage of gst_gl_display_filter_gl_api
2015-03-13 12:30:20 +00:00
Matthew Waters
dbe8ae4d98 caopengllayersink: implement as a bin like glimagesink 2015-03-12 16:45:51 +00:00
Matthew Waters
66ccdab09a gl/cocoa: avoid deadlock when creating context on the main thread.
Make window/view creation async so that it is possible to
gst_gl_context_create from the main thread.
2015-03-12 16:45:51 +00:00
Matthew Waters
ef0bd30c87 gl: store the list of contexts within gldisplay
Removes the reliance on the allocation query to propogate GL contexts.

Allows thread safely getting a context for the a specific thread.
2015-03-12 16:45:51 +00:00
Matthew Waters
2f2470488b glimagesink: unset the current shader after rendering
fixes gltestsrc ! glimagesink when gltestsrc doesn't use a shader
2015-03-12 16:45:51 +00:00
Matthew Waters
5495397c81 gltestsrc: remove usage of gldownload library object 2015-03-12 16:45:51 +00:00
Matthew Waters
776d190f59 gl: new glsrcbin element 2015-03-12 16:45:51 +00:00