Sebastian Dröge [Mon, 19 May 2014 07:12:14 +0000 (09:12 +0200)]
rsvgdec: Unref handle and output state on error paths
CID 1214604
Sebastian Dröge [Fri, 16 May 2014 07:10:48 +0000 (09:10 +0200)]
opensles: Work around race condition in Android < 4.2 that leads to deadlocks on shutdown
We need to sleep a bit before destroying the player object
because of a bug in Android in versions < 4.2.
OpenSLES is using AudioTrack for rendering the sound. AudioTrack
has a thread that pulls raw audio from the buffer queue and then
passes it forward to AudioFlinger (AudioTrack::processAudioBuffer()).
This thread is calling various callbacks on events, e.g. when
an underrun happens or to request data. OpenSLES sets this callback
on AudioTrack (audioTrack_callBack_pullFromBuffQueue() from
android_AudioPlayer.cpp). Among other things this is taking a lock
on the player interface.
Now if we destroy the player interface object, it will first of all
take the player interface lock (IObject_Destroy()). Then it destroys
the audio player instance (android_audioPlayer_destroy()) which then
calls stop() on the AudioTrack and deletes it. Now the destructor of
AudioTrack will wait until the rendering thread (AudioTrack::processAudioBuffer())
has finished.
If all this happens with bad timing it can happen that the rendering
thread is currently e.g. handling underrun but did not lock the player
interface object yet. Then destroying happens and takes the lock and waits
for the thread to finish. Then the thread tries to take the lock and waits
forever.
We wait a bit before destroying the player object to make sure that
the rendering thread finished whatever it was doing, and then stops
(note: we called gst_opensles_ringbuffer_stop() before this already).
Thiago Santos [Thu, 15 May 2014 23:34:48 +0000 (20:34 -0300)]
mpegts: mpegtsdescriptor: fix gobject-introspection warnings
Adds missing : to gobject-introspection markers
Thiago Santos [Thu, 15 May 2014 22:16:30 +0000 (19:16 -0300)]
mpegts: sections: prevent assertion when packet parsing fails
the descriptors entry can be left as NULL and freeing the structure
will fail (assertion happens)
Nicola Murino [Wed, 14 May 2014 19:32:10 +0000 (21:32 +0200)]
motioncells: fix memleak
Check gst_buffer_map return and remember to unmap and free memory before
returning
https://bugzilla.gnome.org/show_bug.cgi?id=730133
Wim Taymans [Wed, 14 May 2014 09:47:03 +0000 (11:47 +0200)]
bluez: fix property names
These were forgotten when they got renamed.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=729731
Matthew Waters [Tue, 13 May 2014 04:13:57 +0000 (14:13 +1000)]
gl/download: update to be similar to the glupload semantics
Matthew Waters [Tue, 13 May 2014 04:07:39 +0000 (14:07 +1000)]
gl/colorconvert: fix up alpha clobbering
Previously it would only work if the alpha value was in the last
component (RGBx, BGRx). Now it works wherever the alpha value may
be (xRGB, xBGR, etc).
Tim-Philipp Müller [Tue, 13 May 2014 23:23:35 +0000 (00:23 +0100)]
mxfdemux: post error message when erroring out on unsupported essence wrapping
Aurélien Zanelli [Thu, 10 Apr 2014 14:10:06 +0000 (16:10 +0200)]
Add missing backslash in Android.mk
https://bugzilla.gnome.org/show_bug.cgi?id=727968
Thiago Santos [Tue, 13 May 2014 19:29:46 +0000 (16:29 -0300)]
hlssink: do not leak playlist object
In finalize, also release the playlist
Nicolas Dufresne [Tue, 13 May 2014 17:16:34 +0000 (13:16 -0400)]
glfilter: Fix building without EGL support
This fixes the OSX build and any builds with --disable-egl. That issue
was introduced in "glfilter: rewrite transform_caps to preserve caps fields".
https://bugzilla.gnome.org/show_bug.cgi?id=729861
Julien Isorce [Tue, 13 May 2014 12:30:47 +0000 (13:30 +0100)]
glfilter: rewrite transform_caps to preserve caps fields
https://bugzilla.gnome.org/show_bug.cgi?id=729861
Matthew Waters [Tue, 13 May 2014 00:53:19 +0000 (10:53 +1000)]
gl/colorconvert: use the texture scaling from the gl memory
The colorconvert values were not being used at all.
https://bugzilla.gnome.org/show_bug.cgi?id=729896
Nicolas Dufresne [Mon, 12 May 2014 23:29:45 +0000 (19:29 -0400)]
glmemory: Fix handling of stride with alignement larger then 8
Setting a scaled factor for X coordinate is not enough as the indexer
will still think stride is shorter and will not fully skip it. Instead,
update width, so the lines are as expected. Combined with the scale, it
will hide the cropped portion.
https://bugzilla.gnome.org/show_bug.cgi?id=729896
Thiago Santos [Tue, 13 May 2014 14:22:58 +0000 (11:22 -0300)]
dashdemux: mpdparser: properly unref gstdatetime
Avoid leaking the GstDateTime instances when summing dates
CID #1212143
Thiago Santos [Tue, 13 May 2014 13:24:51 +0000 (10:24 -0300)]
dashdemux: mpdparser: avoid double free of segment timeline node
The parsing function already frees the old value (if any), avoid a double
free by not freeing it before calling the function without setting the
pointer to NULL
Coverity ID: 1212178
Thiago Santos [Tue, 13 May 2014 13:13:37 +0000 (10:13 -0300)]
dashdemux: mpdparser: avoid double free
The _parse_url function already frees the previous pointer, avoid
freeing it before without setting to null or we have a double free.
Coverity ID: 1212181
Coverity ID: 1212180
Coverity ID: 1212179
Edward Hervey [Tue, 13 May 2014 12:21:15 +0000 (14:21 +0200)]
schrodec: Use pool configuration
It was leaking the config, but also not using it...
CID #1212155
Edward Hervey [Tue, 13 May 2014 12:15:24 +0000 (14:15 +0200)]
rsvg: Don't leak GstVideoCodecState
And avoid useless call to _get_output_state (set_output_state() already
returns it).
CID #1212160
CID #1212161
Edward Hervey [Tue, 13 May 2014 11:54:23 +0000 (13:54 +0200)]
mpegtbase: Small rewrite
Setting done was useless anyway
Edward Hervey [Tue, 13 May 2014 11:52:48 +0000 (13:52 +0200)]
dash: Don't leak GstActiveStream
CID #1212142
Edward Hervey [Tue, 13 May 2014 09:41:42 +0000 (11:41 +0200)]
shm: Don't leak GstShmPipe
By reordering the leaking code path to before the allocation
CID #1212153
Edward Hervey [Tue, 13 May 2014 09:38:44 +0000 (11:38 +0200)]
vmndec: Don't leak output state
_set_output_state returns a reference to the codec state.
CID #1212170
Edward Hervey [Tue, 13 May 2014 09:35:46 +0000 (11:35 +0200)]
sdpdemux: Don't leak adapter data
CID #1212158
Edward Hervey [Tue, 13 May 2014 09:30:35 +0000 (11:30 +0200)]
mpegpsmux; Fix stream leak
CID #1212164
Edward Hervey [Tue, 13 May 2014 09:23:42 +0000 (11:23 +0200)]
jp2kdecimator: Don't leak various slices and arrays
CID #1212139
CID #1212140
CID #1212141
Edward Hervey [Tue, 13 May 2014 09:19:24 +0000 (11:19 +0200)]
asfmux: Don't leak bytereader
By making it go through the error path that takes care of cleanups
CID #1212168
Nicolas Dufresne [Mon, 12 May 2014 17:50:47 +0000 (13:50 -0400)]
glupload: Ensure we still have a texture after upload_set_format()
gst_gl_upload_set_format() resets the upload, hence the texture.
So we need to ensure we have a texture after this call when
uploading.
Nicolas Dufresne [Mon, 12 May 2014 16:59:59 +0000 (12:59 -0400)]
glupload: Correctly update the video info from video meta
Using gst_video_info_set_format() isn't complete when updating
a video info from video meta.
Nicolas Dufresne [Mon, 12 May 2014 16:57:18 +0000 (12:57 -0400)]
glupload: Correctly update video info in upload fallback
When the upload accelerated method fails, we fallback to an upload,
but the video info was not correctly updated.
Thiago Santos [Mon, 12 May 2014 21:28:45 +0000 (18:28 -0300)]
mssdemux: avoid deadlocking when erroring
It might get stuck when posting the message while
a reconfigure event is being pushed upstream
Thiago Santos [Mon, 12 May 2014 20:37:16 +0000 (17:37 -0300)]
mssdemux: fix caps leak
Thiago Santos [Mon, 12 May 2014 18:43:05 +0000 (15:43 -0300)]
mssdemux: handle error messages from internal source
set up a bin message handler to get notified of error messages from
the internal source element
Thiago Santos [Mon, 12 May 2014 17:58:45 +0000 (14:58 -0300)]
mssdemux: Always accept the latency configure event
Upstream or internal elements are irrelevant and we should
always succeed.
Thiago Santos [Mon, 12 May 2014 17:51:00 +0000 (14:51 -0300)]
mssdemux: reenable segment tracking for streams
Store the latest pushed timestamp so that mssdemux streams know
where they are in time
Thiago Santos [Mon, 12 May 2014 17:23:15 +0000 (14:23 -0300)]
mssdemux: deprecate unused max-queue-size-buffers
There is no internal storage of buffers anymore
Thiago Santos [Mon, 12 May 2014 17:18:13 +0000 (14:18 -0300)]
mssdemux: measure bitrate similarly to hlsdemux
new bitrate = (old bitrate + (last fragment bitrate * 3)) / 4
Thiago Santos [Mon, 12 May 2014 16:40:19 +0000 (13:40 -0300)]
mssdemux: remove uridownloader in favor of internal source
Refactor mssdemux to remove uridownloader to use an internal
source element which reduces startup latency and provides smaller
buffers for better buffering management downstream
Thiago Santos [Mon, 12 May 2014 16:28:35 +0000 (13:28 -0300)]
dashdemux: initialize the mutex and cond for fragment download
Julien Isorce [Mon, 12 May 2014 12:32:31 +0000 (13:32 +0100)]
gl/upload: set out_tex after reset, not before
Fix a regression introduced recently with the lazy init.
It was happening when calling gst_video_gl_texture_upload_meta_upload
from an aplication. So not using gst_gl_upload_perform_with_buffer.
Matthew Waters [Sun, 11 May 2014 02:48:52 +0000 (12:48 +1000)]
gl/upload: update the video info on mapping a video frame
The buffer should contain the most specific data on how the data is
formatted. We should use this information.
https://bugzilla.gnome.org/show_bug.cgi?id=729896
Matthew Waters [Mon, 12 May 2014 11:56:06 +0000 (21:56 +1000)]
gl/convert: clobber alpha channel when needed
Needed in the conversion from padded RGB formats to formats with an
alpha channel. e.g. BGRx -> ABGR, etc
https://bugzilla.gnome.org/show_bug.cgi?id=729742
Matthew Waters [Mon, 12 May 2014 11:51:38 +0000 (21:51 +1000)]
gl/upload: avoid performing color conversion when there is no need
One such example is when the buffer contains GstGLMemory in the
RGBA format
https://bugzilla.gnome.org/show_bug.cgi?id=729278
Sebastian Dröge [Mon, 12 May 2014 08:01:43 +0000 (10:01 +0200)]
dvbsrc: Don't free string we're still using
CID 1213780
Thiago Santos [Sun, 11 May 2014 18:26:45 +0000 (15:26 -0300)]
dashdemux: remove unused stream uridownloader
The uridownloader for the stream fragments isn't used anymore.
Sebastian Dröge [Sun, 11 May 2014 05:56:17 +0000 (07:56 +0200)]
assrender: Do not try to add a feature to a caps features ANY
It does not makes sense and asserts
Based on
7f9aac386fd5d5921c80100889a5f212c0148a88 from gst-plugins-base.
Sebastian Dröge [Sun, 11 May 2014 05:55:59 +0000 (07:55 +0200)]
dvbsuboverlay: Do not try to add a feature to a caps features ANY
It does not makes sense and asserts.
Based on
7f9aac386fd5d5921c80100889a5f212c0148a88 from gst-plugins-base.
Matthew Waters [Sun, 11 May 2014 04:02:34 +0000 (14:02 +1000)]
gl/colorconvert: choose the right alpha component for AYUV -> RGBA
Matthew Waters [Sun, 11 May 2014 00:27:02 +0000 (10:27 +1000)]
gl/upload: update the respective state when we cache textures/data
Reynaldo H. Verdejo Pinochet [Thu, 1 May 2014 06:10:20 +0000 (02:10 -0400)]
dvbsrc: drop C++ style comments
This patch builds on previous work done by
Fabrizio (Misto) Milo <mistobaan@gmail.com>
https://bugzilla.gnome.org/show_bug.cgi?id=641204
Reynaldo H. Verdejo Pinochet [Thu, 1 May 2014 05:58:03 +0000 (01:58 -0400)]
dvbsrc: fix up error reporting
This patch builds on previous work done by
Fabrizio (Misto) Milo <mistobaan@gmail.com>
https://bugzilla.gnome.org/show_bug.cgi?id=641204
Matthew Waters [Sat, 10 May 2014 13:33:24 +0000 (23:33 +1000)]
gl/upload: cache the textures that we are using
Matthew Waters [Sat, 10 May 2014 12:48:05 +0000 (22:48 +1000)]
gl/upload: avoid recreating the GLMemory struct for output textures
Tim-Philipp Müller [Fri, 11 Apr 2014 18:38:32 +0000 (19:38 +0100)]
rtmpsrc: error out if we get EOS immediately without any data
It's not really right to just go EOS as if nothing was wrong.
Tim-Philipp Müller [Sat, 10 May 2014 11:54:58 +0000 (12:54 +0100)]
tsdemux: remove confusing debug log line
Olivier Crête [Thu, 8 May 2014 00:08:08 +0000 (20:08 -0400)]
autoconvert: factories don't need the lock
An atomic is enough, they can only be set once.
Olivier Crête [Sat, 10 May 2014 00:06:12 +0000 (20:06 -0400)]
Revert "autoconvert: Handle caps query on internal srcpad"
This is not needed anymore if the gst_pad_link checks nothing.
This reverts commit
a303375a3f5c12e97ca8bf50b5a93ce8652faf23.
Olivier Crête [Sat, 10 May 2014 00:12:27 +0000 (20:12 -0400)]
autoconvert: No need to check anything when linking internal pads
Olivier Crête [Sat, 10 May 2014 00:05:07 +0000 (20:05 -0400)]
autoconvert: Don't ignore elements accepted ANY, it is valid
Olivier Crête [Fri, 9 May 2014 22:49:14 +0000 (18:49 -0400)]
autoconvert: Remove broken usage of the iterator
We're a subclass, so we can just take the object lock and iterate the list
directly.
Olivier Crête [Thu, 8 May 2014 23:35:07 +0000 (19:35 -0400)]
autoconvert: Process upstream getcaps
Process it like downstream getcaps
Olivier Crête [Thu, 8 May 2014 00:00:08 +0000 (20:00 -0400)]
autoconvert: Return the GList of factories, to a pointer to it.
Olivier Crête [Wed, 7 May 2014 23:54:46 +0000 (19:54 -0400)]
autoconvert: subelement can only be change with stream lock held
It was already the case, now be more explicit about that, and remove useless
lock/ref/unlock/unref dances.
Olivier Crête [Wed, 7 May 2014 23:48:49 +0000 (19:48 -0400)]
autoconvert: Keep a ref to the pads too
Simplifies the code
Olivier Crête [Wed, 7 May 2014 23:47:04 +0000 (19:47 -0400)]
autoconvert: Remove uneeded if()
NULL is valid GList
Olivier Crête [Wed, 7 May 2014 23:44:11 +0000 (19:44 -0400)]
autoconvert: Always push reconfigure upstream too
A reconfigure could trigger a change of contents instead of just reconfiguring the internal element
Olivier Crête [Wed, 7 May 2014 23:43:13 +0000 (19:43 -0400)]
autoconvert: Remove unused internal parameter
Nicolas Dufresne [Fri, 9 May 2014 22:59:46 +0000 (18:59 -0400)]
gl: Fix some of the error handling
Nicolas Dufresne [Fri, 9 May 2014 21:59:43 +0000 (17:59 -0400)]
glupload: Update GstVideoInfo after the buffer is mapped
gst_video_frame_map() will store an updated video info base
on the video meta. In order to have the right stride and offset
we should update that video info accordingly.
Sebastian Dröge [Fri, 9 May 2014 13:42:08 +0000 (15:42 +0200)]
gl: Fix memory leak
CID #1212171
Sebastian Dröge [Fri, 9 May 2014 13:26:31 +0000 (15:26 +0200)]
hls: Remove invalid free
data does not have to be freed at all here, it's a pointer to
an arbitrary position inside the current line. Also don't reuse
the data variable for anything else, that will cause crashes
in playlists that have the I-frame playlist URI followed by
other attributes.
CID 1212127
Edward Hervey [Fri, 9 May 2014 12:31:57 +0000 (14:31 +0200)]
mpegts: Fix leak
The cell extension was never added to the parent cell
CID #1212162
Matthew Waters [Fri, 9 May 2014 12:22:43 +0000 (22:22 +1000)]
gl/colorconvert: preserve alpha in AYUV <-> RGBA conversions
https://bugzilla.gnome.org/show_bug.cgi?id=729743
Matthew Waters [Fri, 9 May 2014 08:07:03 +0000 (18:07 +1000)]
gl/colorconvert: implement lazy init
Julien Isorce [Thu, 8 May 2014 14:38:24 +0000 (15:38 +0100)]
gl/upload: set initted to TRUE when _init_upload succeeded
Sebastian Dröge [Thu, 8 May 2014 20:49:33 +0000 (22:49 +0200)]
gldisplay: Use GST_STR_NULL() for printing possibly NULL strings and print all variables we use
Fixes compiler warning about set but not used platform_choice variable
among other things.
Julien Isorce [Thu, 8 May 2014 15:08:08 +0000 (16:08 +0100)]
gleffects: use gl_vtable
Matthew Waters [Thu, 8 May 2014 07:28:11 +0000 (17:28 +1000)]
gl/upload: fix compilation on OS X
Matthew Waters [Thu, 8 May 2014 05:40:33 +0000 (15:40 +1000)]
gl/upload: fail propoerly if init fails
Matthew Waters [Thu, 8 May 2014 05:30:49 +0000 (15:30 +1000)]
gl: make all GObjects inherit from GstObject
Aids memory leak debugging with GST_TRACE=mem-live
Matthew Waters [Thu, 8 May 2014 03:46:29 +0000 (13:46 +1000)]
gl/upload: implement lazy init
Rename init_format to set_format
Matthew Waters [Wed, 7 May 2014 14:59:42 +0000 (00:59 +1000)]
gl/upload: add get_format method
Simply retreives the format set by init_format
Matthew Waters [Wed, 7 May 2014 14:48:07 +0000 (00:48 +1000)]
gl/filter: attempt to passthrough the pool if the caps are the same
Reduces the number of glbufferpool instances required for >=2
consecutive GL elements in a pipeline.
Matthew Waters [Wed, 7 May 2014 14:43:14 +0000 (00:43 +1000)]
gl/filter: always initialize the upload object
Matthew Waters [Wed, 7 May 2014 11:45:53 +0000 (21:45 +1000)]
gl: advertise GstGLMemory usage in the caps as capsfeatures
https://bugzilla.gnome.org/show_bug.cgi?id=729658
Matthew Waters [Wed, 7 May 2014 10:12:23 +0000 (20:12 +1000)]
gl/examples: fix compilation for clutter examples
ClutterX11TexturePixmap is deprecated in Clutter 1.6 and we ask for
at least 1.8
Matthew Waters [Wed, 7 May 2014 09:05:55 +0000 (19:05 +1000)]
gl/display: avoid endless recursion for cocoa
Thiago Santos [Tue, 6 May 2014 11:52:27 +0000 (08:52 -0300)]
dashdemux: deprecate max-buffering-time property
It is not used as dashdemux doesn't have a internal buffer
for fragments anymore
Thiago Santos [Tue, 6 May 2014 04:56:28 +0000 (01:56 -0300)]
dashdemux: removing old unused code
The 'catch up mode' isn't needed anymore since dashdemux
is downloading and pushing from the same thread
Thiago Santos [Mon, 5 May 2014 13:13:15 +0000 (10:13 -0300)]
dashdemux: remember to set starting fragment to new fragments
Thiago Santos [Fri, 2 May 2014 21:34:04 +0000 (18:34 -0300)]
dashdemux: handle a few more error cases
related to missing plugins, bad URI and a lockup on dealing with
errors from the source.
Thiago Santos [Fri, 2 May 2014 21:32:56 +0000 (18:32 -0300)]
dashdemux: Only set timestamp to the first buffer of fragments
Setting it to the other parts of the fragment is slightly wrong
and misleading as it isn't accurate enough.
Thiago Santos [Fri, 2 May 2014 21:30:05 +0000 (18:30 -0300)]
dashdemux: handle error messages from the sources
Set up a message handling function to be able to catch errors
from the source element and signal the cond to allow the download
loop to retry the download.
Thiago Santos [Fri, 2 May 2014 00:04:54 +0000 (21:04 -0300)]
dashdemux: check for errors between downloads
To abort earlier in case of failures
Thiago Santos [Fri, 2 May 2014 00:00:32 +0000 (21:00 -0300)]
dashdemux: Always accept the latency configure event
Upstream or internal elements are irrelevant and we should
always succeed.
Thiago Santos [Thu, 1 May 2014 15:04:51 +0000 (12:04 -0300)]
dashdemux: measure download rate just like hlsdemux
new bitrate = (old bitrate + (last fragment bitrate * 3)) / 4
Thiago Santos [Fri, 25 Apr 2014 11:50:18 +0000 (08:50 -0300)]
dashdemux: remove uridownloader from fragments download
Instead, use a source element linked to a ghostpad to provide
smaller buffers and more granular control for downstream
buffering elements while also reducing startup latency
Matthew Waters [Tue, 6 May 2014 23:11:25 +0000 (09:11 +1000)]
gl/sink: make sure we always initialize the upload object
https://bugzilla.gnome.org/show_bug.cgi?id=729542
Thiago Santos [Tue, 6 May 2014 22:24:55 +0000 (19:24 -0300)]
hlsdemux: fix internal source event leaks