Commit 2a188848 authored by Sebastian Dröge's avatar Sebastian Dröge 🍵

Release 1.7.1

parent b610d4c2
=== release 1.7.1 ===
2015-12-24 Sebastian Dröge <>
releasing 1.7.1
2015-12-24 12:21:21 +0100 Sebastian Dröge <>
* po/cs.po:
* po/de.po:
* po/fr.po:
* po/hu.po:
* po/nb.po:
* po/nl.po:
* po/pl.po:
* po/ru.po:
* po/sv.po:
* po/uk.po:
* po/vi.po:
* po/zh_CN.po:
po: Update translations
2015-12-21 00:43:49 +0100 Koop Mast <>
configure: Make -Bsymbolic check work with clang.
Update the -Bsymbolic check with the version glib has. This version
works with clang.
2015-12-16 09:35:18 +0100 Sebastian Dröge <>
* docs/plugins/gstreamer-plugins.args:
* docs/plugins/gstreamer-plugins.hierarchy:
* docs/plugins/gstreamer-plugins.signals:
* docs/plugins/inspect/plugin-coreelements.xml:
docs: update to git
2015-11-10 12:38:59 -0500 Xavier Claessens <>
* gst/gstallocator.h:
* gst/gstatomicqueue.h:
* gst/gstbin.h:
* gst/gstbuffer.h:
* gst/gstbufferlist.h:
* gst/gstbus.h:
* gst/gstcaps.h:
* gst/gstcapsfeatures.h:
* gst/gstclock.h:
* gst/gstcontext.h:
* gst/gstcontrolbinding.h:
* gst/gstcontrolsource.h:
* gst/gstdatetime.h:
* gst/gstdevice.h:
* gst/gstdevicemonitor.h:
* gst/gstdeviceprovider.h:
* gst/gstdeviceproviderfactory.h:
* gst/gstelement.h:
* gst/gstelementfactory.h:
* gst/gstevent.h:
* gst/gstghostpad.h:
* gst/gstiterator.h:
* gst/gstmemory.h:
* gst/gstmessage.h:
* gst/gstobject.h:
* gst/gstpad.h:
* gst/gstpadtemplate.h:
* gst/gstparse.h:
* gst/gstpipeline.h:
* gst/gstplugin.h:
* gst/gstpluginfeature.h:
* gst/gstquery.h:
* gst/gstregistry.h:
* gst/gstsample.h:
* gst/gstsegment.h:
* gst/gststructure.h:
* gst/gstsystemclock.h:
* gst/gsttaglist.h:
* gst/gsttask.h:
* gst/gsttaskpool.h:
* gst/gsttoc.h:
* gst/gsttracer.h:
* gst/gsttracerfactory.h:
* gst/gsttypefindfactory.h:
* gst/gsturi.h:
* libs/gst/base/gstadapter.h:
* libs/gst/base/gstbaseparse.h:
* libs/gst/base/gstbasesink.h:
* libs/gst/base/gstbasesrc.h:
* libs/gst/base/gstbasetransform.h:
* libs/gst/base/gstcollectpads.h:
* libs/gst/base/gstdataqueue.h:
* libs/gst/base/gstflowcombiner.h:
* libs/gst/base/gstpushsrc.h:
* libs/gst/check/gsttestclock.h:
* libs/gst/controller/gstargbcontrolbinding.h:
* libs/gst/controller/gstdirectcontrolbinding.h:
* libs/gst/controller/gstinterpolationcontrolsource.h:
* libs/gst/controller/gstlfocontrolsource.h:
* libs/gst/controller/gsttimedvaluecontrolsource.h:
* libs/gst/controller/gsttriggercontrolsource.h:
* libs/gst/net/gstnetclientclock.h:
* libs/gst/net/gstnettimepacket.h:
* libs/gst/net/gstnettimeprovider.h:
* libs/gst/net/gstptpclock.h:
core: Add g_autoptr() support to all types
2015-12-14 13:06:57 +0100 Sebastian Dröge <>
* plugins/elements/gsttee.c:
tee: Check if parsing the name template with sscanf() was successful
If not, go back to the automatic pad numbering.
CID 1195129
2015-12-14 11:20:43 +0100 Sebastian Dröge <>
* plugins/elements/gstmultiqueue.c:
* plugins/elements/gstqueue.c:
queue/multiqueue: Don't special-case CAPS events in the event handlers
For CAPS events we will never ever have a FALSE return value here, so just
remove the dead code instead of causing future confusion.
2015-12-14 11:16:50 +0100 Sebastian Dröge <>
* plugins/elements/gstqueue.c:
Revert "queue: Illegal memory access of sink event"
This reverts commit 78614c505a2a761cb4dcb7f4e5f3e9f97c9a8e88.
The code it was fixing does not have any effect anyway and will be removed in
the next commit.
2015-12-14 10:32:14 +0900 Vineeth TM <>
* plugins/elements/gstqueue.c:
queue: Illegal memory access of sink event
Once event is pushed to pad, then queue should not access the event.
This is leading to invalid read valgrind errors
2015-12-14 10:10:04 +0100 Sebastian Dröge <>
* gst/gstelement.c:
element: Unref event if GstElement::send_event() is not implemented
Otherwise we'll take ownership of the event only if it's implemented, and
leak the event in all other situations.
2015-12-14 10:04:19 +0100 Sebastian Dröge <>
* docs/manual/advanced-dataaccess.xml:
manual: Fix dynamic pipeline example
Use GST_PAD_PROBE_PASS to pass through all events other than EOS instead of
blocking on the first non-EOS event forever. Also fix a typo in a comment in
that function.
Thanks to David Jaggard for reporting this on the mailing list.
2015-12-13 00:37:39 +0000 Luis de Bethencourt <>
* docs/pwg/building-boiler.xml:
docs: typo in the location of make_element tool
2015-12-12 01:13:59 -0800 Reynaldo H. Verdejo Pinochet <>
* plugins/elements/gstdownloadbuffer.c:
downloadbuffer: drop unneeded macros for G_OS_WIN32
2015-12-12 01:09:20 -0800 Reynaldo H. Verdejo Pinochet <>
* plugins/elements/gstfdsrc.c:
fdsrc: drop unneeded macros for G_OS_WIN32
2015-12-12 01:06:43 -0800 Reynaldo H. Verdejo Pinochet <>
* plugins/elements/gstfdsrc.c:
fdsrc: enable large file support in Android
2015-12-11 22:14:32 -0800 Reynaldo H. Verdejo Pinochet <>
* plugins/elements/gstfdsink.c:
fdsink: enable large file support in Android
2015-12-11 20:52:57 -0800 Reynaldo H. Verdejo Pinochet <>
* plugins/elements/gstqueue2.c:
queue2: fix some typos
2015-12-11 20:42:05 -0800 Reynaldo H. Verdejo Pinochet <>
* plugins/elements/gstqueue2.c:
queue2: enable large file support on Android
2015-12-11 19:11:01 -0800 Reynaldo H. Verdejo Pinochet <>
* plugins/elements/gstdownloadbuffer.c:
downloadbuffer: fix some typos
2015-12-11 18:59:32 -0800 Reynaldo H. Verdejo Pinochet <>
* plugins/elements/gstdownloadbuffer.c:
downloadbuffer: enable large file support on Android
2015-12-11 14:36:29 -0800 Reynaldo H. Verdejo Pinochet <>
* plugins/elements/gstsparsefile.c:
sparsefile: drop bogus reference to file descriptor
+fix typo on return value comment
2015-12-11 14:07:27 -0800 Reynaldo H. Verdejo Pinochet <>
* plugins/elements/gstsparsefile.c:
sparsefile: enable large file support on Android
2015-12-10 14:32:27 +0100 Aurélien Zanelli <>
* gst/gstelement.c:
element: unref message in _post_message when there is no implementation
'gst_element_post_message' takes the ownership of the message, so it
shall unref it when there is no post_message implementation. Otherwise
message is leaked.
2015-12-10 11:35:05 +0200 Sebastian Dröge <>
* gst/gstelement.c:
element: Don't hold state lock all the time while sending an event
This lock seems to exist only to prevent elements from changing states while
events are being processed. However events are going to be processed
nonetheless in those elements if sent directly via pads, so protection must
already be implemented inside the elements for event handling if it is needed.
As such having the lock here is not very useful and is actually causing
various deadlocks in different situations as described in
2015-12-07 20:27:45 -0800 Reynaldo H. Verdejo Pinochet <>
* plugins/elements/gstfilesrc.c:
filesrc: enable large file support in Android
2015-12-03 15:04:32 -0800 Reynaldo H. Verdejo Pinochet <>
* plugins/elements/gstfilesink.c:
filesink: enable large file support on Android
2015-12-03 15:01:27 -0800 Reynaldo H. Verdejo Pinochet <>
* plugins/elements/gstfilesink.c:
* plugins/elements/gstfilesink.h:
filesink: indentation fixes
2015-12-09 17:40:02 +0100 Edward Hervey <>
* plugins/elements/gstmultiqueue.c:
multiqueue: Don't use random segment.position from upstream
segment.position is meant for internal usage only, but the various
GST_EVENT_SEGMENT creationg/parsing functions won't clear that field.
Use the appropriate segment boundary as an initial value instead
2015-12-07 17:25:02 +0200 Sebastian Dröge <>
* gst/gstbin.c:
bin: Post a LATENCY message with async-handling=TRUE if the PLAYING state is reached
Otherwise each bin might have a different latency in the end, causing
synchronization problems.
The bin will still first handle latency internally as before, but gives the
overall pipeline the opportunity to update the latency of the whole pipeline
2015-12-07 18:20:35 +0200 Athanasios Oikonomou <>
* libs/gst/base/gstbaseparse.c:
baseparse: post tag list when avg bitrate changes at least 2%
Watching videos with variant bitrate is common to have delta
more than 10 kbps, resulting in tag list spam.
Instead of relying on fixed 10 kpbs delta, it is better to
calculale the difference in percentage and update tag list
only when bitrate changes more than 2%.
2015-12-07 09:08:01 -0500 Nicolas Dufresne <>
* common:
Automatic update of common submodule
From b319909 to 86e4663
2015-12-07 12:59:39 +0200 Sebastian Dröge <>
* gst/gstelement.c:
element: Check for an activated pad before adding, not a non-flushing one
The pad could be activated but flushing because of a FLUSH_START event. That's
not what we're looking for here, we want to check for activated pads.
2015-11-19 15:33:06 -0300 Thiago Santos <>
* tests/check/elements/funnel.c:
tests: funnel: remove state change from stress tests
Changing states up and down while buffers are being pushed is not
a valid use case. If a pad is deactivated and reactivated during
a buffer push it is racy with the check of pushed sticky events
and the actual chainfunction call. As it might call the chain
without noticing the peer pad lost its previous sticky events.
2015-12-04 10:22:56 -0500 Nicolas Dufresne <>
* tools/gst-launch.c:
gst-launch: Fix process return value on error
In case of a run-time error message, the process return value was left
unset. This would lead to error not being caught at shell level.
2015-12-04 10:45:25 -0500 Nicolas Dufresne <>
* tools/gst-launch.c:
Revert "tools: gst-launch: return non-0 exit code on async error"
This reverts commit 2ee4cba2485d7f1646d48e4559426aed4ba99c85.
2015-12-04 15:09:39 +0000 Tim-Philipp Müller <>
* tools/gst-launch.c:
tools: gst-launch: return non-0 exit code on async error
When an error happens in playing state, still return a
non-0 exit code.
2015-12-04 14:39:29 +0000 Ross Burton <>
* libs/gst/helpers/
helpers: really fix install race
My previous fix for #758029 wasn't quite right and simply made the race rarer.
Some of the files are installed by install-exec and others by install-exec, so
the hooks need to be split too.
2015-12-04 11:56:45 +0100 Wim Taymans <>
* gst/gstquery.c:
query: fix docs
The allocation query has parameters with the meta API, not flags.
2015-12-02 15:02:25 -0800 Reynaldo H. Verdejo Pinochet <>
* libs/gst/base/
* libs/gst/check/
* libs/gst/controller/
* libs/gst/net/
Drop usage of deprecated g-ir-scanner --strip-prefix flag
2015-12-02 16:28:23 +0100 Edward Hervey <>
* plugins/elements/gstmultiqueue.c:
multiqueue: Fix set/get property
Blame it on the rebasing :)
2015-11-12 17:15:37 +0100 Edward Hervey <>
* gst/gstpad.c:
* gst/gstpad.h:
* plugins/elements/gstmultiqueue.c:
* plugins/elements/gstqueue.c:
* win32/common/libgstreamer.def:
pad: Implement GstPadEventFullFunction
API: GstPadEventFullFunction
Returns a GstFlowReturn, allows asynchronous elements to properly
propagate flow returns
2015-11-30 17:09:43 +0100 Edward Hervey <>
* plugins/elements/gstmultiqueue.c:
* plugins/elements/gstmultiqueue.h:
multiqueue: Use signed clock values for running time calculation
This improves the accuracy of queue levels and when to push buffers
for buffers falling outside of the segment
2015-11-27 09:45:29 +0100 Edward Hervey <>
* plugins/elements/gstmultiqueue.c:
* plugins/elements/gstmultiqueue.h:
multiqueue: Add an extra cache time for unlinked streams
When synchronizing the output by time, there are some use-cases (like
allowing gapless playback downstream) where we want the unlinked streams
to stay slightly behind the linked streams.
The "unlinked-cache-time" property allows the user to specify by how
much time the unlinked streams should wait before pushing again.
2015-10-26 08:06:01 +0100 Edward Hervey <>
* plugins/elements/gstmultiqueue.c:
* plugins/elements/gstmultiqueue.h:
multiqueue: Optimize multiqueue sizes based on interleave
Multiqueue should only be used to cope with:
* decoupling upstream and dowstream threading (i.e. having separate threads
for elementary streams).
* Ensuring individual queues have enough space to cope with upstream interleave
(distance in stream time between co-located samples). This is to guarantee
that we have enough room in each individual queues to provide new data in
each, without being blocked.
* Limit the queue sizes to that interleave distance (and an extra minimal
buffering size). This is to ensure we don't consume too much memory.
Based on that, multiqueue now continuously calculates the input interleave
(per incoming streaming thread). Based on that, it calculates a target
interleave (currently 1.5 x real_interleave + 250ms padding).
If the target interleave is greater than the current max_size.time, it will
update it accordingly (to allow enough margin to not block).
If the target interleave goes down by more than 50%, we re-adjust it once
we know we have gone past a safe distance (2 x current max_size.time).
This mode can only be used for incoming streams that are guaranteed to be
properly timestamped.
Furthermore, we ignore sparse streams when calculating interleave and maximum
size of queues.
For the simplest of use-cases (single stream), multiqueue acts as a single
queue with a time limit of 250ms.
If there are multiple inputs, but each come from a different streaming thread,
the maximum time limit will also end up being 250ms.
On regular files (more than one input stream from the same upstream streaming
thread), it can reduce the total memory used as much as 10x, ending up with
max_size.time around 500ms.
Due to the adaptive nature, it can also cope with changing interleave (which
can happen commonly on some files at startup/pre-roll time)
2013-01-08 21:16:42 +0000 Vincent Penquerc'h <>
* plugins/elements/gstmultiqueue.c:
multiqueue: use new stream-start event sparse flag to avoid overreading subtitles
This will mean a much lower delay before a subtitles track changes take
effect. Also avoids excessive memory usage in many cases.
This will also consider sparse streams as (individually) never full, so
as to avoid blocking all playback due to one sparse stream.
2015-10-30 10:22:20 +0100 Edward Hervey <>
* plugins/elements/gstmultiqueue.c:
multiqueue: Fix high_time computation
* Avoid the computation completely if we know we don't need it (not in
sync time mode)
* Make sure we don't override highest time with GST_CLOCK_TIME_NONE on
unlinked pads
* Ensure the high_time gets properly updated if all pads are not linked
* Fix the comparision in the loop whether the target high time is the same
as the current time
* Split wake_up_next_non_linked method to avoid useless calculation
2015-11-06 03:02:42 +1100 Jan Schmidt <>
* plugins/elements/gstqueue2.c:
queue2: Don't report 0% unless empty
When preparing a buffering message, don't report 0% if there
is any bytes left in the queue at all. We still have something
to push, so don't tell the app to start buffering - maybe
we'll get more data before actually running dry.
2015-11-30 17:11:33 +0100 Edward Hervey <>
* gst/gstclock.h:
gstclock: Fix GST_STIME_ARGS
It wasn't properly handling GST_CLOCK_STIME_NONE and always use the
sign marker (+/-) to make it easier to identify signed values in
2015-11-30 23:08:50 +0100 Thibault Saunier <>
* gst/gstcontrolsource.c:
controlsource: Annotate get_value[_array] as (method)
As the names clash with gst_object_get_value[_array]
2015-11-13 17:32:57 -0500 Nicolas Dufresne <>
* gst/gstplugin.c:
* gst/gstplugin.h:
plugin: Add prefix support to dependencies
which allow using the names as prefix for plugin depencies.
2015-11-13 16:32:31 -0500 Nicolas Dufresne <>
* gst/gstplugin.c:
plugin: Allow device nodes as dependency
This is useful for feature that are produced after probing a specific
node. You want to reload this plugin if the specific node(s) have been
removed, added, or reloaded.
2015-11-13 16:20:42 -0500 Nicolas Dufresne <>
* gst/gstplugin.c:
plugin: Don't do lossy shift on hash
In plugin is responsible for calculating a hash of the dependencies
in order to determine if the cache should be invalidated or not.
Currently, the hash combining method removes a bit of the original
have before combining with an addition. As we use 32bits for our hash
and shift 1 bit for each file and directory, that resulting hash only
account for the last 32 files. And is more affected by the last file.
Rotating technique (shifting, and adding back the ending bit), can be
use to make the addition non-commutative. In a way that different order
gives different hashes. In this case, I don't preserve this behaviour
because the order in which the files are provided by the OS is
In most cases, the XOR operation is used to combine hashes. In this
code we use the addition. I decided to preserve the addition because
we make use of non-random hash ((guint) -1) in the algorithm for
matching files that are not really part of the hash (symlinks, special
files). Doing successive XOR on this value, will simply switch from
full ones, to full zero. The XOR used with whitelist has been preserved
as it's based on a fairly randomized hash (g_str_hash).
2015-11-23 21:40:34 +0000 Lukasz Forynski <>
* gst/gstinfo.h:
info: fix compiler warning with -Wpedantic and gcc 5
Gstreamer compiled with gcc 5.2 and -Wpedantic produces the
following warning:
'ISO C does not support '__FUNCTION__' predefined identifier [-Wpedantic]
const char *s = __FUNCTION__;'
Since gcc 5 enables C99 by default, use __func__ if it's available
instead of the non-standard __FUNCTION__ (as suggested in [2]).
2015-11-20 19:45:39 +0000 Tim-Philipp Müller <>
controller: fix annotation to make g-ir-scanner happy
gstinterpolationcontrolsource.h:59: Warning: GstController: missing ":" at column 51:
* @GST_INTERPOLATION_MODE_CUBIC_MONO: (Since 1.8) monotonic cubic interpolation, will not
gstinterpolationcontrolsource.h:59: Warning: GstController: unknown annotation: since
2014-09-29 14:03:13 +0530 Ravi Kiran K N <>
* gst/gsttaglist.c:
* gst/gsttaglist.h:
Can be used to represent private data that may be
contained in tags, such as ID3v2 PRIV frames.
2015-11-19 00:51:44 -0300 Thiago Santos <>
* libs/gst/base/gstbaseparse.c:
Revert "baseparse: do not overwrite header buffer timestamps"
This reverts commit 2c475a035543efc0202ecdc52070295a421ed4b4.
This causes issues with h264parse. It breaks timestamps as
there are headers in the middle of the stream and this patch
makes the timestamps for those differ from the ones that
are adjusted, creating a discontinuity and leading to sync
2015-11-17 18:47:48 -0300 Thiago Santos <>
* libs/gst/base/gstbaseparse.c:
Revert "baseparse: simplify code a bit"
This reverts commit 3984f7159a72c2eebe01905ee53716e3b2abcb30.
2015-11-18 11:46:45 +0000 Tim-Philipp Müller <>
* plugins/elements/gstqueue2.c:
queue2: don't print criticals when receiving custom events in ring buffer mode
Downgrade from g_warning to GST_WARNING log message.
2015-11-18 09:21:23 +0200 Sebastian Dröge <>
* libs/gst/helpers/gst-ptp-helper.c:
ptp-helper: Disable multicast loopback
We're not really interested in our own packets and ignore them anyway.
2015-11-17 09:17:58 +0900 Vineeth TM <>
* gst/gstdebugutils.c:
debugutils: Fix string memory leak
2015-11-16 08:22:14 -0300 Thiago Santos <>
* libs/gst/base/gstbaseparse.c:
baseparse: simplify code a bit
Avoid repeated checks for testing if a buffer is a header
2015-11-13 20:44:57 -0300 Thiago Santos <>
* libs/gst/base/gstcollectpads.c:
collectpads: handle buffer with dts-only when mapping to running time
Otherwise the buffer was left with the original values and later would
be compared with other buffers that were converted to runninn time,
leading to bad interleaving of multiple streams.
2015-11-13 16:31:06 -0300 Thiago Santos <>
* libs/gst/base/gstbaseparse.c:
baseparse: do not overwrite header buffer timestamps
baseparse tries to preserve timestamps from upstream if
it is running on a time segment and write that to
output buffers. It assumes the first DTS is going to be
segment.start and sets that to the first buffers. In case
the buffer is a header buffer, it had no timestamps and
will have only the DTS set due to this mechanism.
This patch prevents this by skipping this behavior for
header buffers.
2015-06-18 13:56:53 -0700 Aleix Conchillo Flaqué <>
* plugins/elements/gstidentity.c:
* plugins/elements/gstidentity.h:
identity: add drop-buffer-flags property
New property drop-buffer-flags that will discard buffers that have the
given flags set.
2015-11-12 19:46:44 +0000 Ross Burton <>
* libs/gst/helpers/
helpers: fix install race
The install hook needs to be a install-data-hook not an install-exec-hook as the
helpers are installed into helperdir which is considered data (only path
variables with "exec" in are considered executables).
The explicit dependency on install-helpersPROGRAMS was an attempt at solving
this, but this causes occasional races where install-helpersPROGRAMS can run
twice in parallel (once via install-all, once via the hook's dependency).
2015-11-12 16:14:18 +0100 Heinrich Fink <>
* tests/check/gst/gstsystemclock.c:
systemclock: Add test for gst_clock_get_resolution
In a series of time measurements, the diff between now and previous
timestamps is either 0 or at least as long as get_resolution returned.
2015-11-12 11:26:56 +0100 Heinrich Fink <>
* gst/gstsystemclock.c:
systemclock: Use mach_time on Apple platforms
On iOS/OSX g_get_current_time was used by default. However, mach_time is
the preferred high-resolution monotonic clock to be used on Apple
2015-11-11 11:11:23 -0300 Thiago Santos <>
* plugins/tracers/gstlog.c:
tracers: log: add missing hooks
Log all possible hooks
2015-10-29 08:40:32 -0300 Thiago Santos <>
* gst/gstelement.c:
* gst/gsttracerutils.c:
* gst/gsttracerutils.h:
tracer: add element-change-state-pre/post hook
Helps catching when a state change is starting and ending.
It is also possible to track the end of state changes by checking the
async-done or state-change messages.
This is particularly important for elements that do async state changes.
2015-11-11 14:32:44 +0100 Miguel París Díaz <>
* tests/check/gst/gstpad.c:
pad: test for checking the order of the probe calls
2015-11-10 14:41:35 -0300 Thiago Santos <>
* gst/gstcontext.c:
context: fix some copy and paste leftover in docs
2015-11-10 14:37:27 -0300 Thiago Santos <>
* gst/gstcontext.c:
context: add some more documentation
Add a short paragraph on what means for a context to be persistent
2015-11-09 18:02:09 +0000 Tim-Philipp Müller <>
* gst/gstutils.h:
utils: use 'static inline' instead of 'inline static' for gtk-doc
gtk-doc doesn't seem to recognise the former variant.
2015-11-09 17:59:16 +0000 Tim-Philipp Müller <>
* gst/gstbuffer.h:
* gst/gstbufferlist.h:
* gst/gstcaps.h:
* gst/gstcontext.h:
* gst/gstevent.h:
* gst/gstmemory.h:
* gst/gstmessage.h:
* gst/gstquery.h:
* gst/gstsample.h:
* gst/gsttaglist.h:
* gst/gsturi.h:
* gst/gstutils.h:
* libs/gst/base/gstbytewriter.h:
docs: remove dummy function declarations with G_INLINE_FUNCTION for gtk-doc
gtk-doc can handle static inline functions just fine these days,
there's no need for this stuff any more.
2015-02-23 13:16:19 +1000 Duncan Palmer <>
* plugins/elements/gstqueue2.c:
* plugins/elements/gstqueue2.h:
queue2: Add the avg-in-rate property.
2015-11-04 12:02:51 +0100 Philippe Normand <>
* plugins/elements/gstqueue2.c:
* plugins/elements/gstqueue2.h:
* tests/check/elements/queue2.c:
queue2: add overrun signal
Notifies that the queue2 is full, same as queue does
2015-09-29 21:14:19 -0300 Thiago Santos <>
* tests/check/gst/gstpad.c:
pad: tests for accept-caps handling with proxy pads
Adds 3 new tests for testing accept-caps behavior with
proxy-caps pads.
1) A scenario where there is no proxy. The caps should be compared to the
template caps of the pad
2) A scenario where there is a compatible pad. The caps should be compared
to the proxied pad caps (and also with the template)
3) A scenario where there is an incompatible proxy pad. No caps should be
possible at all.
2015-11-05 16:15:22 -0300 Thiago Santos <>
* gst/gstpad.c:
pad: check template caps for proxy pads in accept-caps
Validate that the proxy pad indeed accepts the caps by also
comparing with the pad template caps, otherwise when the pad
had no internally linked pads it would always return true.
2015-11-06 12:58:42 +0100 Thibault Saunier <>
* gst/gstpreset.c:
Fix build with -Werror=maybe-uninitialized
2015-11-06 12:05:18 +0100 Thibault Saunier <>
* gst/gstpreset.c:
* scripts/gst-uninstalled:
preset: Add a GST_PRESET_PATH env variable for presets to be usable uninstalled
And start setting the various uninstalled presets paths.
2015-11-05 08:56:43 +0100 Anton Bondarenko <>
* plugins/elements/gstfilesink.c:
filesink: continue element cleanup even if fclose fails
Sometimes filesink cleanup during stop may fail due to fclose error.
In this case object left partial cleanup with no file opened
but still holding old file descriptor.
It's not possible to change location property in a such state,
so next start will cause old file overwrite if 'append' does not set.
According to man page and POSIX standard about fclose behavior(extract):
The fclose() function shall cause the stream pointed to by stream
to be flushed and the associated file to be closed.
Whether or not the call succeeds, the stream shall be disassociated
from the file and any buffer set by the setbuf() or setvbuf()
function shall be disassociated from the stream.
The fclose() function shall perform the equivalent of a close()
on the file descriptor that is associated with the stream
pointed to by stream.
After the call to fclose(), any use of stream results
in undefined behavior.
So file is in 'closed' state no matter if fclose succeed or not.
And cleanup could be continued.
2015-11-01 00:04:27 +1100 Jan Schmidt <>
* gst/gstpad.c:
pad: Mark sticky events as sent on not-linked
Instead of re-sending sticky events over and over to a not-linked
pad, mark them as sent the first time. If the not-linked came from
downstream, it already received the events. If the pad is actually
not-linked, the sticky events will be rescheduled when the
pad is linked anyway.