Tim-Philipp Müller [Fri, 17 Nov 2017 00:14:35 +0000 (00:14 +0000)]
tools: gst-inspect: fix double empty line after pad templates
Edward Hervey [Thu, 16 Nov 2017 09:47:46 +0000 (10:47 +0100)]
gstpad: Make pad (de)activation atomic
The following could happen previously:
* T1: calls gst_pad_set_active()
* T2: currently (de)activating it
* T1: gst_pad_set_active() returns, caller assumes that the pad has
completed the requested (de)activation ... whereas it is not
the case since the actual (de)activation in T2 might still be
going on.
To ensure atomicity of pad (de)activation, we use a internal
variable (and cond) to ensure only one thread at a time goes through
the actual (de)activation block
https://bugzilla.gnome.org/show_bug.cgi?id=790431
Edward Hervey [Thu, 16 Nov 2017 07:26:12 +0000 (08:26 +0100)]
gstpad: Make calls to GstPadActivateFunction MT-safe
checking whether we already were in the target GstPadMode was being
done too early and there was the risk that we *would* end up
(de)activating a pad more than once.
Instead, re-do the check for pad mode when entering the final pad
(de)activation block.
https://bugzilla.gnome.org/show_bug.cgi?id=790431
Nicolas Dufresne [Fri, 10 Nov 2017 17:07:28 +0000 (12:07 -0500)]
paramspec: Move condition check inside the g_return
It's mostly a debug check and crash avoidance, it's better to
keep all the condition inside the macro.
Nicolas Dufresne [Fri, 10 Nov 2017 17:03:00 +0000 (12:03 -0500)]
paramspec: Add missing since for _spec_array()
Edward Hervey [Fri, 10 Nov 2017 13:10:31 +0000 (14:10 +0100)]
concat: Handle single-pad use-cases
When EOS reaches concat, it will switch to the next candidate as its
activate pad.
The problem arises when there is only one sinkpad, the "active" pad
becomes NULL. This results in concat becoming unusable after it receives
a *single* EOS on its single sinkpad.
If we detect there is a single sinkpad and there is no current active pad:
* If we are waiting (from selected sink event/buffer), become the current
active pad.
* If there is a seek request, send it upstream. We don't switch the
active_sinkpad property at that point in time, since the seek could
fail. If the seek succeeds, the following SEGMENT (or STREAM_START)
will cause the pad_wait() to elect that pad as the new active one.
* Flush events get forwarded
https://bugzilla.gnome.org/show_bug.cgi?id=790167
Edward Hervey [Thu, 9 Nov 2017 16:38:19 +0000 (17:38 +0100)]
concat: Make QoS forward MT-safe
In the same way it's done for other event forwarding.
Guillaume Desmottes [Thu, 13 Apr 2017 14:28:54 +0000 (16:28 +0200)]
latency tracer: add timestamp to tracer records
Include the timestamp of the recorded log as in the 'stats' tracer.
This can be useful, for example, to plot a graph showing the latency
over time.
https://bugzilla.gnome.org/show_bug.cgi?id=781315
Edward Hervey [Sat, 4 Nov 2017 10:45:54 +0000 (11:45 +0100)]
typefindhelper: Fix overflow some more
Nothing guaranteed that off+size wouldn't exceed a 2**64 value.
Instead we reverse the operation and use a subtraction.
Edward Hervey [Sat, 4 Nov 2017 09:34:10 +0000 (10:34 +0100)]
typefindhelper: Fix signed integer overflow
Make sure the whole calculation is done with 64bit unsigned values
(To be ready for people want to typefind exabyte files).
Tim-Philipp Müller [Tue, 1 Aug 2017 10:06:32 +0000 (11:06 +0100)]
element: add gst_element_foreach_*pad()
Add convenience API that iterates over all pads, sink pads or
source pads and makes sure that the foreach function is called
exactly once for each pad.
This is a KISS implementation. It doesn't use GstIterator and
doesn't try to do clever things like resync if pads are added
or removed while the function is executing. We can still do that
in future if we think it's needed, but in practice it will
likely make absolutely no difference whatsoever, since these
things will have to be handled properly elsewhere by the element
anyway if they're important.
After all, it's always possible that a pad is added or removed
just after the iterator finishes iterating, but before the
function returns.
This is also a replacement for gst_aggregator_iterate_sink_pads().
https://bugzilla.gnome.org/show_bug.cgi?id=785679
Mathieu Duponchelle [Fri, 27 Oct 2017 12:58:28 +0000 (14:58 +0200)]
gstleaks.c: always log leaks listing
https://bugzilla.gnome.org/show_bug.cgi?id=789556
Sebastian Dröge [Wed, 1 Nov 2017 10:27:31 +0000 (12:27 +0200)]
net: Add new file to the meson.build
Sebastian Dröge [Wed, 1 Nov 2017 09:31:52 +0000 (11:31 +0200)]
examples/netclock-replay: Fix build
Robert Rosengren [Mon, 30 Oct 2017 09:49:06 +0000 (10:49 +0100)]
netutils: Add util for setting socket DSCP
Util function for setting QoS DSCP added, to remove duplicated code in
netclientclock and nettimeprovider. Fix build error if missing IP_TOS.
https://bugzilla.gnome.org/show_bug.cgi?id=784737
Edward Hervey [Tue, 31 Oct 2017 10:39:23 +0000 (11:39 +0100)]
gstvalue: Cast GST_MAKE_FOURCC arguments
To make it explicit that we are dealing with uint32 targets
Avoids erroneous runtime error: left shift of negative value -1
https://bugzilla.gnome.org/show_bug.cgi?id=789700
Nicolas Dufresne [Wed, 11 Oct 2017 15:08:12 +0000 (11:08 -0400)]
latency-tracer: Exclude synchronization time
The goal of this tracer is to measure the processing latency between a
src and a sink. In push mode, the time was read after the chain function
have returned. As the amount of time we wait to get synched is reverse
to the amount of latency the source introduced, the result was quite
surprising.
This patch moves the latency calculation in the pre-push hook. When
there is no processing in a a pipeline (e.g. fakesrc ! fakesink), the
latency will now be 0 as it's supposed to. For pull mode, the code was
already correct. When GstBaseSink operate in pull mode, the processing
time is done durring the pull, so pull-post is the right hook. The
synchronization will happen after the pull has ended. Note that
GstBaseSink rarely operate in pull mode.
https://bugzilla.gnome.org/show_bug.cgi?id=788431
Edward Hervey [Fri, 27 Oct 2017 07:53:06 +0000 (09:53 +0200)]
event: Don't allow invalid SELECT_STREAMS event creation
Asking to select no streams makes no sense and can create various
issues.
If one doesn't one any stream it should deactivate (or not use) the
element in question.
Edward Hervey [Wed, 25 Oct 2017 15:10:15 +0000 (17:10 +0200)]
gst: Fix build with option parsing disabled
Stefan Sauer [Fri, 20 Oct 2017 15:28:11 +0000 (17:28 +0200)]
segment: update the tests
Boy scout rule. Make is a little less painful to debug the tests by using
fail_unless_equals_{uint64,int64,float} where appropriate. Ideally the large
tests would be splitted to avoid guessing data dependencies.
Stefan Sauer [Fri, 20 Oct 2017 14:15:01 +0000 (16:15 +0200)]
segment: clarify the segment docs for the duration
Stefan Sauer [Fri, 20 Oct 2017 14:11:44 +0000 (16:11 +0200)]
Revert "segment: also intialize the duration"
This reverts commit
f1baaae17557fa75a9bcd940b994597714be2f74.
Stefan Sauer [Fri, 20 Oct 2017 12:30:42 +0000 (14:30 +0200)]
segment: also intialize the duration
If start and stop are set, calculate the duration and set it too.
Stefan Sauer [Fri, 20 Oct 2017 11:02:35 +0000 (13:02 +0200)]
gst-inspect: print more details for typefind and tracer features
Print full details for typefind features. Print some of the available features
for tracers and add some todos for the ones we'd like to see.
Stefan Sauer [Fri, 20 Oct 2017 09:16:46 +0000 (11:16 +0200)]
gst-inspect: reduce casting back and forth
Refactor the print_element_info() to take a GstPluginFeature. Reduces the need
to cast to and from GstElementFactory.
Stefan Sauer [Fri, 20 Oct 2017 09:08:14 +0000 (11:08 +0200)]
gst-inspect: simplify the code for printing feature info
Rename print_element_features() to print_feature_info() and move the code that
handles the ElementFactory there. This simplifies the calling code and improves
readability.
Also don't leak the features for other factories.
Robert Rosengren [Fri, 2 Jun 2017 14:27:29 +0000 (16:27 +0200)]
netclientclock: Add possibility to set QoS DSCP value
https://bugzilla.gnome.org/show_bug.cgi?id=784737
Robert Rosengren [Thu, 1 Jun 2017 13:48:16 +0000 (15:48 +0200)]
nettimeprovider: Add possibility to set QoS DSCP value
https://bugzilla.gnome.org/show_bug.cgi?id=784737
Jan Schmidt [Tue, 17 Oct 2017 15:31:12 +0000 (02:31 +1100)]
seqnum: Never return a seqnum of 0, reset GST_SEQNUM_INVALID
Various plugins use the value of '0' as an invalid seqnum value
(qtdemux for matching duplicated seek events, for example). Make
that behaviour explicit, create a GST_SEQNUM_INVALID value,
and ensure gst_util_seqnum_next never returns it.
Ashish Kumar [Mon, 16 Oct 2017 10:36:37 +0000 (16:06 +0530)]
queuearray: Fix for possible crashes due to null pointer dereferencing
https://bugzilla.gnome.org/show_bug.cgi?id=788838
Stefan Sauer [Sun, 15 Oct 2017 13:59:11 +0000 (15:59 +0200)]
collectpads: mention the query function in the docs as well
Mathieu Duponchelle [Fri, 6 Oct 2017 19:59:03 +0000 (21:59 +0200)]
gstbuffer: fix meta removal in gst_buffer_foreach_meta
When updating the linked list, prev->next = next is correct
if prev is actually updated after being set to the head
of the list at the start.
https://bugzilla.gnome.org/show_bug.cgi?id=788617
fengalin [Tue, 10 Oct 2017 13:53:38 +0000 (15:53 +0200)]
flowcombiner: Fix version for ref and unref functions
The functions were introduced in version 1.12.1, GstFlowCombiner was
introduced in 1.4.
https://bugzilla.gnome.org/show_bug.cgi?id=788778
Tim-Philipp Müller [Thu, 5 Oct 2017 12:35:14 +0000 (13:35 +0100)]
basesink: use new gst_buffer_list_calculate_size() utility function
Ashish Kumar [Thu, 5 Oct 2017 04:54:24 +0000 (10:24 +0530)]
device-provider: gst_device_provider_unhide_provider() always fails
https://bugzilla.gnome.org/show_bug.cgi?id=788520
Havard Graff [Wed, 4 Oct 2017 12:16:46 +0000 (14:16 +0200)]
meson: remove vs_module_defs
The GST_EXPORT should handle it.
Reynaldo H. Verdejo Pinochet [Tue, 3 Oct 2017 20:54:25 +0000 (13:54 -0700)]
Use proper GtkDoc notation for NULL/FALSE/TRUE
Edward Hervey [Mon, 2 Oct 2017 15:59:17 +0000 (17:59 +0200)]
bin: iterate_sorted: Ensure sources are always returned last
For linked elements, the resulting gst_bin_iterate_sorted() will
properly return elements from sink to sources.
If we have some elements that are not linked, we *still* want to
ensure that we return:
* In priority any sinks
* Last of all any sources
* And in between any element which is neither source nor sink
For this to work, when looking for the next candidate element,
not only check the degree order, but if there are two candidates
with the same degree order, prefer the non-source one.
Amongst other things, this fixes the case where we activating a
bin containing unlinked sources and other elements. Without this
we could end up activating sources (which might start adding pads
to be linked) before other (to which those new source element pads
might be linked) are not activated
https://bugzilla.gnome.org/show_bug.cgi?id=788434
Nicolas Dufresne [Mon, 2 Oct 2017 18:11:19 +0000 (14:11 -0400)]
tee-test: Test a real use case
The real use case is when downstream didn't set a pool or
allocation params, in which case we expect the tee to not
create a pool or param from thin air. Dowstream setting
an pool with size=0 was in fact testing a downstream element
bug. The fact we handle that is accidental.
Stefan Sauer [Mon, 2 Oct 2017 14:26:33 +0000 (16:26 +0200)]
tee: don't create a pool if none is needed
If the aggregated size is 0 and we create a pool, the pool would provide
buffers with no memory assigned. Handle that case and skip the pool.
This was the behaviour before
cf803ea9f4e3fde92c1da86ecc47444035f7c0a7.
Add a test for this scenario.
https://bugzilla.gnome.org/show_bug.cgi?id=730758
Nicolas Dufresne [Mon, 2 Oct 2017 17:35:52 +0000 (13:35 -0400)]
tee: Re-enabled alloc query + allow-not-linked test
In the unit test refactoring, the unlinked pad required to test
the different behaviour induced by "allow-not-linked" property
was removed.
Commit
e364d7944ecbab86dea73c0ee3e639e766938d36
Move all the code for this test in the proper function, and re-add
the missing unlinked pad. This makes the test useful again.
Stefan Sauer [Mon, 2 Oct 2017 14:25:00 +0000 (16:25 +0200)]
tee: split the allocation query test
Split the large allocation_query test into seperate tests. Add a setup helper
to reduce code duplication. Fix the original test that used fail_unless instead
of ck_assert_int_eq and had it accidentially working.
Stefan Sauer [Mon, 2 Oct 2017 14:22:00 +0000 (16:22 +0200)]
structure: add a todo comment
Printing NULL is confusing when the type is e.g. a GArray that is not empty.
Stefan Sauer [Mon, 2 Oct 2017 11:14:21 +0000 (13:14 +0200)]
query: doc consistency
Mention that it is the 'buffer size', like we do elsewhere.
Edward Hervey [Thu, 28 Sep 2017 08:17:53 +0000 (10:17 +0200)]
win32: update exports file
Mathieu Duponchelle [Wed, 27 Sep 2017 18:29:06 +0000 (20:29 +0200)]
gst: Modify behaviour of gst_get_main_executable_path
To actually return the path of the executable, not its
directory.
https://bugzilla.gnome.org/show_bug.cgi?id=788256
Mathieu Duponchelle [Tue, 26 Sep 2017 19:51:53 +0000 (21:51 +0200)]
gst: API: gst_get_main_executable_path()
This is useful for plugins that need to inspect the
folder of the main executable in order to determine the
set of features they will expose, for example:
https://github.com/centricular/gstreamer-vst3
https://bugzilla.gnome.org/show_bug.cgi?id=788214
Mathieu Duponchelle [Wed, 27 Sep 2017 11:07:25 +0000 (13:07 +0200)]
gst: Do not try to determine executable path on iOS.
The method used relies on "libproc.h", which is only available
on OSX.
https://bugzilla.gnome.org/show_bug.cgi?id=788234
Mathieu Duponchelle [Wed, 27 Sep 2017 11:01:13 +0000 (13:01 +0200)]
gst: Fix typo in windows function name.
GetModuleFilename -> GetModuleFileName
https://bugzilla.gnome.org/show_bug.cgi?id=788234
Edward Hervey [Wed, 27 Sep 2017 08:06:12 +0000 (10:06 +0200)]
win32: Update export file
Mathieu Duponchelle [Tue, 26 Sep 2017 13:15:27 +0000 (15:15 +0200)]
plugin dependencies: fix
6cddce7663cb4b6ee061950d20365f42cb755851
There were a few errors:
* The plugin scanner now accepts executable path as an argument.
In case it is NULL, argc == 2
* We find the executable path in init_pre instead of gst_init,
allowing this to work when gst is initialized through the
option group (eg gst-inspect)
* There was a semi-colon missing in the __APPLE__ #ifdef
Mathieu Duponchelle [Mon, 25 Sep 2017 18:35:59 +0000 (20:35 +0200)]
plugin: API: GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_RELATIVE_TO_EXE
When a plugin declares a dependency using this flag, all the
relative paths are considered to be relative to the path of
the main executable.
We try to determine the path of the executable portably,
with implementations provided for Linux, Windows and Mac.
If retrieval of the path fails, we will not detect changes.
In order for the main executable path to be the same when
scanning a plugin in a child process, a new variable is
exposed in gst_private.h, _gst_executable_path
https://bugzilla.gnome.org/show_bug.cgi?id=788152
Vivia Nikolaidou [Thu, 21 Sep 2017 11:13:47 +0000 (14:13 +0300)]
git-update: Also build $EXTRA_MODULES
Doing a git pull but not autogen.sh / make is not consistent behaviour.
https://bugzilla.gnome.org/show_bug.cgi?id=787981
Mathieu Duponchelle [Tue, 19 Sep 2017 21:58:26 +0000 (23:58 +0200)]
gst-inspect: Print GstValueArray properties nicely
https://bugzilla.gnome.org/show_bug.cgi?id=787924
Mathieu Duponchelle [Sat, 1 Apr 2017 05:15:22 +0000 (07:15 +0200)]
Multiqueue: don't allow dropping SEGMENT_DONE events
https://bugzilla.gnome.org/show_bug.cgi?id=780795
Sebastian Dröge [Sun, 17 Sep 2017 15:55:19 +0000 (18:55 +0300)]
info: GstStackTraceFlags were added in 1.12
Tim-Philipp Müller [Thu, 31 Aug 2017 12:05:57 +0000 (13:05 +0100)]
plugins: use new gst_buffer_list_calculate_size()
Tim-Philipp Müller [Thu, 31 Aug 2017 11:54:55 +0000 (12:54 +0100)]
bufferlist: add gst_buffer_list_calculate_size()
Returns size in bytes.
Tim-Philipp Müller [Wed, 30 Aug 2017 12:50:33 +0000 (13:50 +0100)]
bufferlist: add gst_buffer_list_get_writable()
Ensures buffer is writable. Useful if we want to change
metadata on it such as timestamps.
https://bugzilla.gnome.org/show_bug.cgi?id=750241
Michael Shigorin [Tue, 12 Sep 2017 15:30:00 +0000 (18:30 +0300)]
gstconfig.h.in: initial e2k arch support
This makes gstreamer buildable on Elbrus 2000.
https://bugzilla.gnome.org/show_bug.cgi?id=787587
Sebastian Dröge [Sat, 9 Sep 2017 13:14:05 +0000 (16:14 +0300)]
info: GstDebugColorFlags are flags, not an enum
Annotate as such.
Nicolas Dufresne [Wed, 6 Sep 2017 14:01:58 +0000 (10:01 -0400)]
identity: Add a drop-allocation property
When enabled, this property will make the allocation query fail. This is
the same as one could have done using a tee before the tee started
implementing the allocation query.
https://bugzilla.gnome.org/show_bug.cgi?id=730758
Nicolas Dufresne [Tue, 5 Sep 2017 19:57:51 +0000 (15:57 -0400)]
tee: Allocate one more buffer when multi-plexing
This extra buffer ensure that the downstream threads are not starved
when multiplexing a stream.
https://bugzilla.gnome.org/show_bug.cgi?id=730758
Nicolas Dufresne [Tue, 5 Sep 2017 19:45:33 +0000 (15:45 -0400)]
tee: Add test for the allocation query
https://bugzilla.gnome.org/show_bug.cgi?id=730758
Nicolas Dufresne [Tue, 8 Aug 2017 21:39:43 +0000 (17:39 -0400)]
tee: Implement allocation query aggregation
This will aggregate allocation params, pool and will keep all
meta that has no parameters.
https://bugzilla.gnome.org/show_bug.cgi?id=730758
Nicolas Dufresne [Tue, 8 Aug 2017 21:35:19 +0000 (17:35 -0400)]
tee: Deprecate alloc-pad property
It has no effect, not implemented, and would lead to bad rendering.
https://bugzilla.gnome.org/show_bug.cgi?id=730758
Miguel París [Mon, 4 Sep 2017 10:20:43 +0000 (12:20 +0200)]
pad: add test to check handled and drop probes
https://bugzilla.gnome.org/show_bug.cgi?id=787243
Edward Hervey [Mon, 4 Sep 2017 12:33:29 +0000 (14:33 +0200)]
pad: Don't call remaining probes after they return DROPPED|HANDLED
If multiple probes are set on a pad and one probe returns either
GST_PAD_PROBE_HANDLED or GST_PAD_PROBE_DROPPED we need to stop
calling the remaining probes.
https://bugzilla.gnome.org/show_bug.cgi?id=787243
Thibault Saunier [Sat, 26 Aug 2017 16:44:38 +0000 (13:44 -0300)]
value: Handle serializing NULL GValueArray
Concider them as an empty array and do not segfault...
https://bugzilla.gnome.org/show_bug.cgi?id=786670
Tim-Philipp Müller [Thu, 24 Aug 2017 15:00:42 +0000 (16:00 +0100)]
baseparse: fix taglist update spam
We would constantly re-post the taglist because
posted_avg_rate only gets set to avg_bitrate if
parse->priv->post_avg_bitrate is true, so if it's
false the posted rate will always differ from the
current average rate and we'd queue an update,
which leads to us spamming downstream and the
application with taglist updates.
Fix this by only queuing an update if the average
rate will actually be posted.
These taglists updates could cause expensive
operations on the application side, e.g. in Totem.
https://bugzilla.gnome.org/show_bug.cgi?id=786561
Tim-Philipp Müller [Thu, 17 Aug 2017 11:23:10 +0000 (12:23 +0100)]
Automatic update of common submodule
From 48a5d85 to 3f4aa96
Sebastian Dröge [Thu, 17 Aug 2017 11:13:39 +0000 (14:13 +0300)]
element/deviceprovider: Add instance getter functions for class properties
That is, the metadata and pad templates. Using instance getters is
easier to deal with for bindings, especially autogenerated ones.
Sebastian Dröge [Wed, 16 Aug 2017 19:47:31 +0000 (22:47 +0300)]
identity: Return FLUSHING instead of EOS and don't start waiting for anything if currently flushing
Otherwise we might try unscheduling a clock id (that does not exist
yet), then the streaming thread waits for id and the state change never
continues because the streaming thread is blocked.
Also shutting down and flushing and similar should return FLUSHING, not
EOS. The stream is not over, we're just not accepting any buffers
anymore.
Tim-Philipp Müller [Mon, 14 Aug 2017 10:01:19 +0000 (11:01 +0100)]
allocator: Hide private sysmem GType func
Was never exposed in any header file, only exported
by accident.
Carlos Rafael Giani [Fri, 11 Aug 2017 19:17:06 +0000 (21:17 +0200)]
configure: Add switches for enabling/disabling libdw and libunwind
https://bugzilla.gnome.org/show_bug.cgi?id=778193
Tim-Philipp Müller [Sun, 13 Aug 2017 09:50:05 +0000 (10:50 +0100)]
libcheck: fix build failure
Need to define CK_DLL_EXP to extern as well in libcompat.h
which gets included before the internal-check.h where the
other fallback definition for CK_DLL_EXP is.
duplicate symbol _check_minor_version in:
libcheckinternal.a(libcheckinternal_la-check.o)
libcheckinternal.a(libcheckinternal_la-check_log.o)
Sebastian Dröge [Fri, 11 Aug 2017 08:12:09 +0000 (11:12 +0300)]
queue: Allow re-usability after EOS
After EOS, it is possible for a pad to be resetted by sending
either a STREAM_START or SEGMENT event
Mimic the same behaviour when receiving STREAM_START/SEGMENT events
in queue if we are EOS'd
https://bugzilla.gnome.org/show_bug.cgi?id=786056
Tim-Philipp Müller [Thu, 10 Aug 2017 12:32:43 +0000 (13:32 +0100)]
meson: hide symbols by default unless explicitly exported
Tim-Philipp Müller [Thu, 10 Aug 2017 10:15:26 +0000 (11:15 +0100)]
libs: check: sprinkle some GST_EXPORT
Have to modify libcheck header a bit to avoid warnings
about duplicate 'extern extern'.
Also needs some additions to the libcheck meson.build file
to define CK_EXP_DLL when building the static libcheck.
Tim-Philipp Müller [Tue, 8 Aug 2017 11:56:24 +0000 (12:56 +0100)]
utils: fix g-ir-scanner warning about bogus transfer annotations
for vararg parameters. Vararg functions are not introspectable anyway,
so might just as well mark them as '(skip)' while we're at it.
gstutils.c:2611: Warning: Gst: invalid "transfer" annotation for <varargs>: only valid for object and GVariant types
Edward Hervey [Wed, 9 Aug 2017 14:15:23 +0000 (16:15 +0200)]
queue2: Allow re-usability after EOS
After EOS, it is possible for a pad to be resetted by sending
either a STREAM_START or SEGMENT event
Mimic the same behaviour when receiving STREAM_START/SEGMENT events
in queue2 if we are EOS'd
https://bugzilla.gnome.org/show_bug.cgi?id=786056
Edward Hervey [Wed, 9 Aug 2017 08:51:39 +0000 (10:51 +0200)]
plugins: *queue* elements: Handle STREAM_START in EOS situation
When queue-like elements are in "EOS" situation (received GST_FLOW_EOS
from downstream or EOS was pushed), they drain buffers/events that
wouldn't be processed anyway and let through events that might
modify the EOS situation.
Previously only GST_EVENT_EOS and GST_EVENT_SEGMENT events were let
through, but we also need to allow GST_EVENT_STREAM_START to go
through since it resets the EOS state of pads since 1.6
https://bugzilla.gnome.org/show_bug.cgi?id=786034
Sebastian Dröge [Tue, 8 Aug 2017 18:19:32 +0000 (21:19 +0300)]
utils: Skip gst_calculate_linear_regression() in bindings
Edward Hervey [Mon, 7 Aug 2017 10:24:37 +0000 (12:24 +0200)]
queue2: Handle buffering levels on NOT_LINKED
When downstream returns NOT_LINKED, we return the buffering level
as being 100%.
Since the queue is no longer being consumed/used downstream, we
want applications to essentially "ignore" this queue for buffering
purposes.
If other streams are still being used, those stream buffering levels
will be used. If none are used, upstream will post an error message
on the bus indicating no streams are used.
https://bugzilla.gnome.org/show_bug.cgi?id=785799
Tim-Philipp Müller [Mon, 7 Aug 2017 10:23:36 +0000 (11:23 +0100)]
meson: fix gtk-doc invocation
Argument is called "scanobjs_args", and we were missing a quote.
Tim-Philipp Müller [Mon, 7 Aug 2017 10:06:58 +0000 (11:06 +0100)]
meson: fix a few warnings
Tim-Philipp Müller [Mon, 7 Aug 2017 09:33:32 +0000 (10:33 +0100)]
meson: add -lm to gstreamer-check-1.0 pkgconfig file
Fixes warning with meson from git about LIBM not being
defined in the configuration_data.
Sebastian Dröge [Wed, 2 Aug 2017 18:02:32 +0000 (21:02 +0300)]
pad: Recheck sticky events after non-blocking buffer probes and blocking event probes
Without the former, event changes (e.g. setting a pad offset) does not
take effect for the current buffer but only for the next one. Without
the latter, non-blocking event probes would not see any updated events
yet.
Tim-Philipp Müller [Sat, 29 Jul 2017 09:28:03 +0000 (10:28 +0100)]
info: fix build with gst debugging disabled
Sebastian Dröge [Mon, 17 Jul 2017 18:03:11 +0000 (21:03 +0300)]
debug: Add a memory ringbuffer based debug logger
This stores debug logs in memory per thread and uses up to a
configurable amount of bytes per thread for the logs. Inactive threads
are timed out after a configurable amount of time.
https://bugzilla.gnome.org/show_bug.cgi?id=785035
Sebastian Dröge [Fri, 28 Jul 2017 16:27:18 +0000 (17:27 +0100)]
segment: Add missing out annotations for various parameters
Tim-Philipp Müller [Wed, 26 Jul 2017 13:17:46 +0000 (14:17 +0100)]
downloadbuffer: remove unused struct member
This was used in queue2 when handling in coming serialized
queries, but downloadbuffer just refuses serialized queries.
Luis de Bethencourt [Tue, 10 Mar 2015 16:42:44 +0000 (16:42 +0000)]
check: duplicate code branches
CID #1226446
George Kiagiadakis [Wed, 26 Jul 2017 08:15:58 +0000 (11:15 +0300)]
element: document that gst_element_continue_state needs to be called with the STATE_LOCK
It internally calls gst_element_change_state(), which requires the STATE_LOCK
https://bugzilla.gnome.org/show_bug.cgi?id=785431
Tim-Philipp Müller [Thu, 20 Jul 2017 16:31:41 +0000 (17:31 +0100)]
gst-launch: fix compiler warnings for SIGHUP handlers on windows
Fix unused variable/function compiler warnings on windows.
The SIGHUP handling is only available under unix.
https://bugzilla.gnome.org/show_bug.cgi?id=783661
Edward Hervey [Thu, 20 Jul 2017 12:17:48 +0000 (14:17 +0200)]
multiqueue: Fix access to NULL pointer
sq can be NULL.
Also fix commit message (it's the queue we are iterating over that we
are logging, not the one passed as argument).
CID #1415569
Seungha Yang [Mon, 3 Jul 2017 06:17:33 +0000 (15:17 +0900)]
multiqueue: Calculate interleave only within each streaming thread
... and use the biggest interleave value among streaming threads.
This is to optimize multiqueue size adaptation on adaptive streaming
use case with "use-interleave" property.
https://bugzilla.gnome.org/show_bug.cgi?id=784448
Tim-Philipp Müller [Sat, 15 Jul 2017 11:40:28 +0000 (12:40 +0100)]
meson: po: use glib preset and read language list from LINGUAS
Supported since meson 0.37, so we can use it now.
Tim-Philipp Müller [Sat, 15 Jul 2017 10:54:18 +0000 (11:54 +0100)]
miniobject: don't modify memory if it's clearly not a valid miniobject
Add back function guard that checks the refcount in a read-only
operation first, and bail out without modifying the passed-in
memory if it's clearly not a valid mini object. Otherwise we
probably cause more harm than good. We keep the second sanity
check based on the 'real refcount' at the time of the unref
around for now too.
https://bugzilla.gnome.org/show_bug.cgi?id=784383
Tim-Philipp Müller [Fri, 14 Jul 2017 15:56:54 +0000 (16:56 +0100)]
basesrc: deprecate non-functional "typefind" property
https://bugzilla.gnome.org/show_bug.cgi?id=736565