Commit graph

18809 commits

Author SHA1 Message Date
Vincent Penquerc'h 29fd6332a4 tsdemux: fix refcounting when applying a new PMT
A new program object is created to replace an existing one
in the programs hash table, so its refcount needs to match.

With the default of 0 refcount on creation, the next PAT
change will cause that refcount to be both incremented and
decremented (assuming the new PAT references that stream too),
which will cause the program to be destroyed.

https://bugzilla.gnome.org/show_bug.cgi?id=748412
2015-05-15 14:45:49 +01:00
Jose Antonio Santos Cadenas d625770a18 dtls: Fix memory leak
Keys were not correctly released when it was get as a property
nor when a second key was received

https://bugzilla.gnome.org/show_bug.cgi?id=749380
2015-05-15 15:47:39 +03:00
Matthew Waters c6abd1632f glimagesink: free the vertex buffer when done
fixes a memory leak
2015-05-14 21:21:01 +10:00
Matthew Waters 1e9c30223e glcontext/cocoa: implement GL3 core context selection 2015-05-14 20:35:18 +10:00
Matthew Waters 904cdf3f58 tests/gl: fix typo 2015-05-14 18:35:35 +10:00
Matthew Waters 0870e8785e gl: remove useless gl{En,Dis}able (GL_TEXTURE_*) calls
We are using shaders everywhere and so they are not needed
2015-05-14 16:42:09 +10:00
Matthew Waters 1f89d1dce2 glimagesink: cleanup properties
remove unused "display-name"
ensure defaults between the bin/element are the same
2015-05-14 15:10:59 +10:00
Matthew Waters a852146624 gleffects: only try the GL2 shader init path if we have a GL2 context 2015-05-14 14:58:07 +10:00
Matthew Waters e1b077d6af glshader: attempt to detect the gles2 inside opengl3 case
This is necessary to use gles2 shaders in a GL 3 core context on
OS X which fails without a proper #version being set on the shaders.
2015-05-14 14:58:07 +10:00
Matthew Waters 3d0bc93edc glshader: remove references to gl3 specific shaders
We rely specifically on gles2 shaders being supported by the GL
implementation with GL3 core profile.
2015-05-14 14:58:07 +10:00
Matthew Waters 7f7a9dd3ec gl: element buffers are part of vao state
Use them as such.  They are also required for GL3 core profile support
with glDrawElements on OS X.
2015-05-14 14:58:07 +10:00
Matthew Waters ba5130fe01 glmemory: properly detect (hopefully) the correct ext_rg/arb_rg variant
GL_EXT_texture_rg is only valid for GLES2. GLES3 uses similar wording to
the GL_ARB_texture_rg which requires a sized internal format that the
GL_EXT_texture_rg does not require.

https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_rg.txt
https://www.opengl.org/registry/specs/ARB/texture_rg.txt
2015-05-14 14:58:07 +10:00
Matthew Waters 0871b7b43d compositor: implement proper par handling
We were previously failing on different input and output par
2015-05-14 14:58:07 +10:00
Thiago Santos f4789d0430 dashdemux: avoid busy-looping when waiting for new fragment
When all fragments have already been downloaded on a live stream
dashdemux would busy loop as the default implementation of
has_next_fragment would return TRUE. Implement it to correctly
signal if adaptivedemux should wait for the manifest update before
trying to get new fragments.
2015-05-13 13:39:32 -03:00
Thiago Santos 23ad922b64 dashdemux: Improve live stream manifest update repositioning
When updating the manifest the timestamps on it might have changed a little
due to rounding and timescale conversions. If the change makes the timestamp
of the current segment to go up it makes dashdemux reposition to the previous
one causing one extra unnecessary download.

So when repositioning add an extra 10 microseconds to cover for that rounding
issues and increase the chance of falling in the same segment.

Additionally, also improve the time used when the client is already after the
last segment. Instead of using the last segment starting timestamp use the
final timestamp to make it reposition to the next one and not to the one that
has already been downloaded.
2015-05-13 13:39:31 -03:00
Thiago Santos 7de9fbc122 dashdemux: add more protection when acessing gptrarray entries
The glib structure doesn't do range checking so we have to do it
ourselves.

Also adds some more debugging messages
2015-05-13 13:39:24 -03:00
Thiago Santos f298fca8ad dashdemux: remove unused functions
These functions of directly getting and setting segment indexes
are no longer useful as now we need 2 indexes: repeat and segment
index.

The only operations needed are advance_segment, going back to the
first one or seeking for a timestamp.
2015-05-13 13:39:18 -03:00
Thiago Santos d617139ee7 dashdemux: reuse seeking function to reduce repeated code
Instead of writing a seek routine, just use the mpdparser function.

Also remove function that is not needed anymore
2015-05-13 13:35:14 -03:00
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
Thiago Santos 61cad123d7 adaptivedemux: drop debug message that was wrong
EOS doesn't necessarily mean that no fragment was downloaded
2015-05-13 13:35:14 -03:00
Thiago Santos 8331b083ee adaptivedemux: run gst-indent
To allow commiting on this file cleanly
2015-05-13 13:35:14 -03:00
Thiago Santos d60c171ad2 mpegtsmux: the parent is provided in the function
No need to get it again
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
Wim Taymans 1f738ca5b8 fix faad2 version check
On fedora 22, the output of cpp inserts extra debug comments, which
makes our regexp for the faad2 version check fail. This in turn causes
it to compile with the wrong arguments passed which then causes stack
corruption and crashes.

Fix this by only checking for the version (which should be by itself on
a single line). This is potentially less safe, it might be possible that
a similar string would appear in a later version in the header file.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=748571
2015-05-13 16:29:31 +02:00
Matthew Waters 07dffe9e5b glcontext: propagate the version/extension failure upwards
Otherwise the calling code has no idea that the context failed to
be created fully.

https://bugzilla.gnome.org/show_bug.cgi?id=749284
2015-05-13 23:56:48 +10: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
Lyon Wang 6adf3c2499 h263parse: fix custom picture format (CPFMT) parsing
In the H263 spec, CPFMT is present only if the use of a custom
picture format is signalled in PLUSEPTYPE and UFEP is "001",
so we need to check params->format and only if the value is
6 (custom source format) the CPFMT should be read, otherwise
it's not present and wrong data will be parsed.

When reading the CPFMT, the width and height were not
calculated correctly (wrong bitmask).

https://bugzilla.gnome.org//show_bug.cgi?id=749253
2015-05-13 11:51:20 +01:00
Matthew Waters c519169052 compositor: fix rectangle obscure test to clamp against the output frame size
Rather than one of the input pad video info's.

The test checking this was not constraining the output frame size
to ensure that the out of frame stream was not being displayed.
2015-05-13 17:44:30 +10: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
Ilya Konstantinov c948484c7f avfvideosrc: fix unconditional buffer queue unlock
Unless stopRequest is set, we should unlock conditionally -- otherwise,
the 'create:' method can wake up to an empty buffer queue
and pull a nil buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=748054
2015-05-11 21:11:30 +10:00
Heinrich Fink 6007829e77 decklink: Rename mode 2048p to 1556p
https://bugzilla.gnome.org/show_bug.cgi?id=749218
2015-05-11 13:20:11 +03:00
Heinrich Fink 1dabd7c5b8 decklink: Use correct frame rate for mode 2160p50
https://bugzilla.gnome.org/show_bug.cgi?id=749218
2015-05-11 13:14:39 +03:00
Heinrich Fink e6d82dec32 decklink: Rename mode 3184p to 2160p
https://bugzilla.gnome.org/show_bug.cgi?id=749218
2015-05-11 13:14:15 +03:00
Piotr Drąg 6b0a9af0be po: update POTFILES.skip and POTFILES.in
The ones in .skip need to be added back to POTFILES.in
after porting to 1.x.

https://bugzilla.gnome.org/show_bug.cgi?id=743352
2015-05-10 10:58:29 +01:00
Luis de Bethencourt 6a71b91c6e removesilence: remove gst_remove_silence_reset()
No need to call gst_remove_silence_reset() in gst_remove_silence_init() because
vad_new() already calls this function. Since there are no more uses of
_silence_reset(), we can remove it altogether.
2015-05-08 14:24:07 +01:00