Thiago Santos
57a2105a31
dashdemux: refactor segment iteration for better performance
...
Segments are now stored with their repeat counts instead of spanding
them to multiple segments. This caused advancing to the next segment
using a single index to have to iterate over the whole list every time.
This commit addresses this by storing both the segment index as well
as the repeat index and makes advancing to next segment just an
increment of the repeat or the segment index.
2015-05-13 13:35:14 -03:00
Thiago Santos
6344f86e44
dashdemux: improve mpd parsing for repeated segment entries
...
Use a single segment to represent it internally to avoid using too
much memory. This has the drawback of issuing a linear search to
find the correct segment to play but this can be fixed by using
binary searches or caching the current position and just looking
for the next one.
https://bugzilla.gnome.org/show_bug.cgi?id=748369
2015-05-13 13:35:14 -03:00
Jose Antonio Santos Cadenas
aae1a5e2ce
dtlsenc: Fix memory leak releasing connection_id
...
https://bugzilla.gnome.org/show_bug.cgi?id=749318
2015-05-13 19:14:34 +03:00
Jose Antonio Santos Cadenas
6b0183b7bf
dtlsenc: Fix memory leak while setting connection-id
...
https://bugzilla.gnome.org/show_bug.cgi?id=749318
2015-05-13 19:14:17 +03:00
Jose Antonio Santos Cadenas
3c3d6e8828
dtlsdec: Fix memory leak, release previous pem
...
https://bugzilla.gnome.org/show_bug.cgi?id=749322
2015-05-13 19:12:51 +03:00
Jose Antonio Santos Cadenas
2173f9f15d
dtlsdec: Fix memory leak on dispose
...
Parent dispose function was not called
https://bugzilla.gnome.org/show_bug.cgi?id=749322
2015-05-13 19:12:32 +03:00
Jose Antonio Santos Cadenas
c44acd8bde
dtlsconnection: Fix memory leak while setting closure
...
https://bugzilla.gnome.org/show_bug.cgi?id=749325
2015-05-13 19:10:34 +03:00
Matthew Waters
1853e455ac
gl: don't deadlock on context creation failure
...
https://bugzilla.gnome.org/show_bug.cgi?id=749284
2015-05-13 23:56:48 +10:00
Sebastian Dröge
5f6bddf719
glmixerbin: Don't unref pad templates
...
Otherwise we unref the reference that is owned by the element class.
2015-05-13 15:42:50 +03:00
Tim-Philipp Müller
9adefac59b
srtpenc: fix failure return values from create_session()
...
create_session() returns an err_status_t with
err_status_ok=0 and err_status_fail=1, so
returning TRUE/FALSE is not quite right.
https://bugzilla.gnome.org/show_bug.cgi?id=749304
2015-05-13 12:32:53 +01:00
Miguel París Díaz
481e1f76e8
srtpenc: fix over unlocking
...
Called should call function with lock, and is
also responsible for unlocking it later.
https://bugzilla.gnome.org/show_bug.cgi?id=749304
2015-05-13 12:29:21 +01:00
Matthew Waters
725c1147bc
glvideomixer: implement par handling
...
We were previously ignoring it completely
2015-05-13 17:44:08 +10:00
Matthew Waters
21a6cfcc18
glvideomixer: don't upload the vertex data every frame
...
Add the missing cache tracking statement.
2015-05-13 17:44:04 +10:00
Nicolas Dufresne
f01d47d0f2
gluploadelement: Remove uneeded header and defines
2015-05-12 16:36:58 -04:00
Nicolas Dufresne
df3d415906
gltestsrc: Use default get_caps implementation
...
The custom code is wrong as it ignores the templates, which leads to
missing fields in the result. Instead, simply use the default get_caps
implementation which does it correctly (get the template, intersect
with filter and return).
https://bugzilla.gnome.org/show_bug.cgi?id=749237
2015-05-11 15:02:02 -04:00
Sebastian Dröge
b8941efc4a
glmixer: Implement GstVideoAggregator::find_best_format()
...
Without this, we will fixate weird pixel-aspect-ratios like 1/2147483647. But
in the end, all the negotiation code in videoaggregator needs a big cleanup
and videoaggregator needs to get rid of the software-mixer specific things
everywhere.
2015-05-11 16:34:26 +03:00
Matthew Waters
628d8d9599
gl: demote upload/convert/download elements to none
...
Copy paste error
2015-05-11 22:58:45 +10:00
Matthew Waters
bd1a0cfec2
gl: expose internal glvideomixerelement\
...
We might want more control over the exact pipeline
Also reduces overhead
2015-05-11 22:58:45 +10:00
Matthew Waters
d2a6e8a92e
gl: expose internal glimagesinkelement
...
We might want more control over the exact pipeline.
Also reduces overhead.
2015-05-11 22:58:37 +10:00
Sebastian Dröge
c534c8899c
dtlssrtpdec: Don't merge RTP and RTCP streams that were just split by srtpdec
...
The funnel has some overhead, and later rtpbin will have to split both streams
again anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=748723
2015-05-07 21:04:30 +02:00
Sebastian Dröge
541c3049dc
Revert "Revert "glimagesink: add pixel-aspect-ratio property on the bin""
...
This reverts commit d96e43b034
.
2015-05-06 15:47:27 +02:00
Sebastian Dröge
8c28a51ee1
Revert "Revert "glimagesink: forward ALL the properties on the bin""
...
This reverts commit 59fb0f830f
.
2015-05-06 15:47:20 +02:00
Sebastian Dröge
35d5c648c6
Revert "Revert "glimagesink: implement as a bin""
...
This reverts commit be938f92d9
.
2015-05-06 15:47:04 +02:00
Sebastian Dröge
53c79cbf86
Revert "gl: readd glupload/download onto element pads"
...
This reverts commit 87d8270f30
.
2015-05-06 15:46:49 +02:00
Sebastian Dröge
21413ff3fc
Revert "Revert "glvideomixer: implement with glmixerbin""
...
This reverts commit b4bd11f2f3
.
2015-05-06 15:43:32 +02:00
Sebastian Dröge
3d6a79b08b
srtpdec: Actually set the caps on the srcpad instead of just calling the default event handler for the sinkpad
...
Fixes up dafa11b9d2
2015-05-06 12:59:33 +02:00
Matthew Waters
8ef4b12ab8
glimagesink: handle the local_context query
...
so that upstream elements can get the GL context from glimagesink
2015-05-04 23:44:17 +10:00
Sebastian Dröge
c7d92b6cf5
opusdepay: Set multistream=FALSE on the Opus caps
...
The RTP Opus mapping only allows mono/stereo, and not multistream Opus
streams.
2015-05-04 11:23:16 +02:00
Jose Antonio Santos Cadenas
de827c792d
opusheader: Do not include rate in caps if it is 0
...
As expressed in gst_opus_header_create_caps, value 0 means unset.
Setting rate value to 0 make negotiation with decoder fail.
https://bugzilla.gnome.org/show_bug.cgi?id=748875
2015-05-04 10:50:42 +02:00
Sebastian Dröge
dafa11b9d2
srtpdec: Make sure to send caps events downstream before any segment events
...
Upstream might not give us a caps event (dtlssrtpdec) because it might be an
RTP/RTCP mixed stream, but we split the two streams anyway and should report
proper caps downstream if possible.
Fixes "sticky event misordering" warnings with dtlssrtpdec.
2015-04-30 21:34:54 +02:00
Matthew Waters
87d8270f30
gl: readd glupload/download onto element pads
...
Allows insertion of gl elements into non-gl pipelines without converter
(upload/download) elements.
https://bugzilla.gnome.org/show_bug.cgi?id=743974
2015-04-30 11:26:33 +10:00
Matthew Waters
b4bd11f2f3
Revert "glvideomixer: implement with glmixerbin"
...
This reverts commit 0fb56738a1
.
2015-04-30 11:26:33 +10:00
Matthew Waters
be938f92d9
Revert "glimagesink: implement as a bin"
...
This reverts commit 8a0017e21d
.
2015-04-30 11:26:33 +10:00
Matthew Waters
59fb0f830f
Revert "glimagesink: forward ALL the properties on the bin"
...
This reverts commit 4be45e5f30
.
2015-04-30 11:26:32 +10:00
Matthew Waters
d96e43b034
Revert "glimagesink: add pixel-aspect-ratio property on the bin"
...
This reverts commit 2ba6bb9b93
.
2015-04-30 11:26:32 +10:00
Jan Schmidt
ff12434b9f
glimagesink: Cache caps for passing to the client draw call
...
Don't convert the GstVideoInfo to caps on every draw call,
just cache the caps and pass them into the GstSample.
2015-04-29 02:52:40 +10:00
Tim-Philipp Müller
35808c27fa
opus: fix includes and compilation against opus in non-standard prefix
...
https://bugzilla.gnome.org/show_bug.cgi?id=748594
2015-04-28 17:24:04 +01:00
Mersad Jelacic
036f07e087
opus: don't use deprecated gst_buffer_new_and_alloc
...
Use the helper function available in the base class instead.
https://bugzilla.gnome.org/show_bug.cgi?id=748585
2015-04-28 16:36:02 +01:00
Tim-Philipp Müller
c754b8526b
de265dec: use g_get_num_processors() if available
...
And provide home-made fallback for older GLib versions,
so that we can later find these and remove them when
we bump the GLib requirement (which is certainly going
to happen before 2.0).
https://bugzilla.gnome.org/show_bug.cgi?id=748495
2015-04-28 16:08:31 +01:00
Matthieu Bouron
17d3a75583
glimagesink: Use gst_pad_get_pad_template_caps in ::get_caps()
2015-04-28 20:14:07 +10:00
Matthew Waters
0b7f65bbc3
glupload: provide the sink template caps that could be used
...
https://bugzilla.gnome.org/show_bug.cgi?id=746399
2015-04-28 20:13:48 +10:00
Руслан Ижбулатов
0a95a4ea24
libde265: W32 thread count support
...
This code is imported from GLib g_get_num_processors(). This function
was added in 2.36 but we depend on 2.32.
https://bugzilla.gnome.org/show_bug.cgi?id=748495
2015-04-27 10:26:33 -04:00
Руслан Ижбулатов
283fc200c6
libde265: Fix format string for gsize
...
https://bugzilla.gnome.org/show_bug.cgi?id=748496
2015-04-27 10:26:33 -04:00
Руслан Ижбулатов
5b22a126fe
spandsp: Don't use the private field 'missing_samples'
...
https://bugzilla.gnome.org/show_bug.cgi?id=748497
2015-04-27 10:02:38 -04:00
Matthieu Bouron
e765a9bb00
glfiltercube: Don't initialize multiple shaders on renegotiation
2015-04-27 14:52:37 +02:00
Matthieu Bouron
4ca63b01ab
glimagesink: Remove unused stop function
2015-04-27 18:27:48 +10:00
Matthew Waters
05109be4a0
glimagesink: unref the pool in the correct place
...
Otherwise we could hold a pool to a context that is never going to be used.
https://bugzilla.gnome.org/show_bug.cgi?id=748405
2015-04-27 18:21:01 +10:00
Matthieu Bouron
c6ec145a95
gltransformation: Unref shader in ::stop()
2015-04-27 10:16:24 +02:00
Matthew Waters
bd940327ef
gl: unref display/other-context in the correct place
...
Otherwise state changes from PLAYING->READY->PAUSED will cause there to
to be no display configured on the element.
https://bugzilla.gnome.org/show_bug.cgi?id=748405
2015-04-27 15:20:56 +10:00
Sebastian Dröge
e7aa25ca6f
glfilter: De-camelcase onInitFBO() vfunc
2015-04-26 21:42:03 +02:00
Sebastian Dröge
c638477c48
glfilter: Remove onStart/onStop vfuncs, and unused onReset()
...
onStart/onStop are just duplicates of the basetransform ones, onReset
was never called but was used everywhere when stop should've been used.
2015-04-26 21:39:06 +02:00
Lubosz Sarnecki
51daa8b9e2
gltransformation: don't initialize multiple shaders on renegotiation
...
https://bugzilla.gnome.org/show_bug.cgi?id=748407
* delete shader if one exists
* set it to NULL after unrefing
2015-04-26 21:23:16 +02:00
Sebastian Dröge
a8d498919e
glcolorconvert: Fix compiler warning
...
gstglcolorconvertelement.c:230:19: error: unused variable 'in_structure'
[-Werror,-Wunused-variable]
GstStructure *in_structure = gst_caps_get_structure (caps, 0);
^
2015-04-26 21:11:17 +02:00
Matthieu Bouron
76b2cefd2d
glcolorconvert: Keep colorimetry and chroma-site fields if passthrough
...
https://bugzilla.gnome.org/show_bug.cgi?id=748141
2015-04-26 20:31:53 +02:00
Tim-Philipp Müller
699452ef31
Remove obsolete Android build cruft
...
This is not needed any longer.
2015-04-26 18:59:32 +01:00
Matthew Waters
b216629941
glimagesink: balance change_state display ref/unref
...
the display was being unreffed on the incorrect state change causing
invalid state when changing from PLAYING/PAUSED->READY->PAUSED/PLAYING.
2015-04-24 17:16:18 +10:00
Sebastian Dröge
7c2a5da125
hlsdemux: Use the downloader of the base class instead of creating our own
...
The one of the base class is completely unused because we override all
the downloading here, so let's just use that one instead.
2015-04-23 17:47:18 +02:00
Sebastian Dröge
5fd2fc3050
hlsdemux: Don't error out if we can't match variant playlists after updating
...
It's better to just select some random variant playlist instead of stopping,
chances are that it's still continuing to work and we might just have to
select a different variant again later.
2015-04-23 17:47:18 +02:00
Sebastian Dröge
bb36ffb633
hlsdemux: Fix how the playlists are refreshed
...
We should only refresh the currently selected variant playlist (if any,
otherwise the main playlist), not the main playlist. And only try to
refresh the main playlist if updating the variant playlist fails.
Some servers (Wowza) use the request of the main playlist to create a
"session", which is then part of the URI of the variant playlist and
also the fragments. Refreshing the main playlist would generate a new
session, and the server rate limits that usually. And after a few retries
the server just kicks us out.
Also as a side effect we now use the same downloader for all playlists, so
that we only have 2 instead of 3 connections to the server. And also
previously we just ignored the downloaded data from the main playlist that
the base class gave to us.
2015-04-23 17:47:18 +02:00
Sebastian Dröge
0cd3938345
adaptivedemux: Allow subclasses to override how a new manifest would be downloaded
2015-04-23 17:47:18 +02:00
Matthieu Bouron
8f740fb484
glupload: Release glupload buffer when caps are changed
...
https://bugzilla.gnome.org/show_bug.cgi?id=748371
2015-04-24 00:55:58 +10:00
Thiago Santos
86a503a29b
hlsdemux: handle too short segments
...
When the segment is very short it might be the case that the
typefinding fails and when finishing the segment hlsdemux would
consider the remaining data (pending_buffer) as an encryption
leftover.
This patch fixes it and makes sure an error is properly posted
if typefind failed by refactoring buffer handling to a function
and using it from the data_received and finish_fragment functions.
2015-04-22 20:21:02 -03:00
Thiago Santos
6c513a9d1e
hlsdemux: use correct variable type
...
gst_buffer_resize needs gssize and not gsize. This makes gdb
print it correctly when debugging.
2015-04-22 19:04:43 -03:00
Vineeth T M
7e3cd63f87
glmixer: Possible null pointer dereference
...
While printing error message when context fails, error variable is not being used anymore
so it will lead to null pointer dereference
https://bugzilla.gnome.org/show_bug.cgi?id=748287
2015-04-22 22:33:28 +10:00
Sebastian Dröge
6c968ed3da
hlsdemux: Fix seeking
...
We also have to update the current_file GList pointer in the M3U playlist
client, otherwise we are just continuing playback from the current position
instead of seeking.
2015-04-21 18:30:33 +02:00
Sebastian Dröge
1e1e73a0f2
hlsdemux: Don't call unlock() just to call lock() immediately afterwards
2015-04-21 18:30:33 +02:00
Michał Dębski
b12f975e0a
gleffects: Create element for each effect
...
https://bugzilla.gnome.org/show_bug.cgi?id=746209
2015-04-21 13:03:11 +01:00
Michał Dębski
532f332c2f
gleffects: Merge laplacian filter into effects
...
https://bugzilla.gnome.org/show_bug.cgi?id=746209
2015-04-21 13:03:06 +01:00
Michał Dębski
0165b163db
gleffects: Merge sobel filter into effects
...
https://bugzilla.gnome.org/show_bug.cgi?id=746209
2015-04-21 13:02:57 +01:00
Michał Dębski
7770fb2f57
gleffects: Merge blur filter into effects
...
https://bugzilla.gnome.org/show_bug.cgi?id=746209
2015-04-21 13:02:53 +01:00
Michał Dębski
ff4bc2364c
gleffects: Correct attributes for hconv and vconv shaders
...
Width and height were switched for glow shaders. For blur
filter attributes names were obsolete.
https://bugzilla.gnome.org/show_bug.cgi?id=746209
2015-04-21 13:01:04 +01:00
Michał Dębski
40422d03c6
gleffects: Fix fisheye shader - pass float to sqrt
...
On OSX passing literal int to sqrt() in GLSL results in error.
https://bugzilla.gnome.org/show_bug.cgi?id=746209
2015-04-21 11:56:16 +01:00
Lubosz Sarnecki
5c07218bd2
gltransformation: fix shader memory leak
2015-04-21 16:37:17 +10:00
Matthew Waters
6cb6d8f9e8
gldisplay: synchronize the searching and creation of GstGLContext's
...
Ootherwise we could end up with multiple elements in different chains
each creating a context. Fixes context creation with glvideomixer.
2015-04-21 12:55:24 +10:00
Edward Hervey
1ce65e2f74
handdetect: remove unneeded check
...
Variable hands is already checked to contain a value previously at the beginning
of the current block. There is no need to check again. This is logically dead code.
CID 1197693
2015-04-20 14:31:42 +02:00
Guillaume Desmottes
ac5e25937b
glmixer: fix caps leak in gst_gl_mixer_pad_sink_getcaps()
...
Caps refcounting was all wrong in this function. Rewrote it and add some
comments to make it clearer.
Fix caps leaks with the
validate.file.glvideomixer.simple.play_15s.synchronized scenario.
https://bugzilla.gnome.org/show_bug.cgi?id=747915
Signed-off-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2015-04-20 09:05:11 +01:00
Руслан Ижбулатов
589407a077
opencv: Change opencv plugin to use opencv2-style includes
...
If old opencv1-style legacy include directory is available,
this change becomes purely cosmetic (maybe will compile a bit faster).
It becomes an FTBFS fix when opencv1-style include directory is missing
(possibly because opencv package maintainer decided not to pack it).
https://bugzilla.gnome.org/show_bug.cgi?id=747705
2015-04-17 18:34:22 +02:00
Guillaume Desmottes
fae93514e4
glmixer: unref owned caps when finalizing the mixer
...
Fix a caps leak with the
validate.file.glvideomixer.simple.play_15s.synchronized scenario.
https://bugzilla.gnome.org/show_bug.cgi?id=747915
Signed-off-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2015-04-17 14:28:37 +01:00
Guillaume Desmottes
481b1c921e
glmixer: pass the proper free function to frames and buffers array
...
'array_buffers' contain borrowed GstBuffer and so shouldn't have a free
function. 'frames' is the one containing GstGLMixerFrameData and so should use
_free_glmixer_frame_data as free function.
Fix GstGLMixerFrameData leaks with the
validate.file.glvideomixer.simple.play_15s.synchronized scenario.
https://bugzilla.gnome.org/show_bug.cgi?id=747913
Signed-off-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2015-04-17 14:28:25 +01:00
Sebastian Dröge
917c395403
gldownloadelement: Download *from* OpenGL, not into
2015-04-17 15:20:12 +02:00
Robert Swain
e5c73c8c8c
openh264enc: Add complexity property for speed/quality tradeoff
2015-04-17 14:57:14 +02:00
Matthieu Bouron
f283d72636
gluploadelement: Unref GstGLUpload object and caps in ::stop()
...
Fix leak of the GstGLUpload object.
https://bugzilla.gnome.org/show_bug.cgi?id=748033
2015-04-17 14:17:55 +02:00
Sebastian Dröge
c1cac829ef
gl: Remove some empty ::finalize() implementations
2015-04-17 14:09:47 +02:00
Sebastian Dröge
9ee29626c4
gldownloadelement: Fix element description
2015-04-17 14:06:03 +02:00
Sebastian Dröge
758fea90aa
gldownloadelement: Remove unused ::finalize() implementation
2015-04-17 14:05:44 +02:00
Sebastian Dröge
53ed701974
glcolorconvertelement: Also unref caps in ::stop() already
...
They are not useful anymore afterwards, so keeping them until ::finalize()
might only cause someone to use them later and then fail.
2015-04-17 14:04:14 +02:00
Guillaume Desmottes
17446a420c
glcolorconvertelement: fix GstGLColorConvert leak
...
convert->convert was never unreffed.
This can be reproduce with the
validate.file.glvideomixer.simple.play_15s.synchronized scenario.
https://bugzilla.gnome.org/show_bug.cgi?id=747911
2015-04-17 14:04:14 +02:00
Jan Schmidt
9e1135e209
apexsink: Fix buffer overflow, in case anyone ever ports it.
...
Fix a simple buffer overflow - 16 bytes isn't enough to hold
the string representation of a gulong on x86_64. I guess the
intent was to generate a 32 bit random key, so let's do that.
Only matters if anyone ever ports the sink to 1.x
https://bugzilla.gnome.org/show_bug.cgi?id=676524
2015-04-16 22:45:31 +10:00
Sebastian Dröge
49aba362a8
dtlsdec: Fix typo
2015-04-13 19:41:15 +02:00
Sebastian Dröge
a8627a1df7
dtlssrtpdec: Add some more debug output
2015-04-13 19:41:15 +02:00
Sebastian Dröge
87243e9c6e
srtpdec: Add some more debug output
2015-04-13 19:41:15 +02:00
Yujin Lee
218a89fcd9
dashdemux: enable playback of content with text streams
...
There is a playback error when trying to play a content that
has 'application' mimeType. This commit prevents an exception from
setup text streams.
https://bugzilla.gnome.org/show_bug.cgi?id=747525
2015-04-13 09:24:53 -03:00
Edward Hervey
f31127b9ff
open264: Fix GType/gsize usage
...
gstopenh264enc.cpp:108:7: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
2015-04-07 11:24:30 +02:00
Edward Hervey
29387e85c7
openh264: Detect 1.4 API change
...
As mentionned in release notes : Added new Sps/Pps strategies for real-time
video (replace the old setting variable 'bEnableSpsPpsIdAddition' with
'eSpsPpsIdStrategy')
2015-04-07 11:24:28 +02:00
Sebastian Dröge
25561db099
glimagesink: Disconnect mouse/key event signal handlers from window when shutting down context
2015-04-06 20:28:22 -07:00
Sebastian Dröge
a72e204eae
glimagesink: Guard against disconnecting invalid signal ids
2015-04-06 20:24:06 -07:00
Thiago Santos
75c9a5f129
hlssink: write the playlist end marker on EOS
...
Catch EOS from the multifilesink and add the endlist marker to
the playlist when it happens
https://bugzilla.gnome.org/show_bug.cgi?id=747319
2015-04-04 11:00:10 -03:00
Arun Raghavan
f092c9cb3d
opus: Fix incorrect fall-through condition in property getter
2015-04-03 11:47:09 +05:30
Edward Hervey
90028d68fe
glvideomixer: Don't use context if not present
...
Avoids assertions at runtime
2015-03-31 16:31:18 +02:00
Anton Obzhirov
4504356dda
gleffects: port all effects to GLES2.0
...
https://bugzilla.gnome.org/show_bug.cgi?id=745955
2015-03-30 19:06:44 +01:00