platform/upstream/gstreamer.git
6 years agonet: GST_EXPORT -> GST_NET_API
Tim-Philipp Müller [Mon, 12 Mar 2018 23:03:26 +0000 (23:03 +0000)]
net: GST_EXPORT -> GST_NET_API

We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.

6 years agocontroller: GST_EXPORT -> GST_CONTROLLER_API
Tim-Philipp Müller [Mon, 12 Mar 2018 23:03:26 +0000 (23:03 +0000)]
controller: GST_EXPORT -> GST_CONTROLLER_API

We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.

6 years agocheck: GST_EXPORT -> GST_CHECK_API
Tim-Philipp Müller [Mon, 12 Mar 2018 23:03:26 +0000 (23:03 +0000)]
check: GST_EXPORT -> GST_CHECK_API

We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.

6 years agobase: GST_EXPORT -> GST_BASE_API
Tim-Philipp Müller [Mon, 12 Mar 2018 23:03:26 +0000 (23:03 +0000)]
base: GST_EXPORT -> GST_BASE_API

We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.

6 years agogst: GST_EXPORT -> GST_API
Tim-Philipp Müller [Mon, 12 Mar 2018 23:03:26 +0000 (23:03 +0000)]
gst: GST_EXPORT -> GST_API

We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.

6 years agopromise: be more explicit in docs about who/when to use reply/interrupt/expire
Matthew Waters [Thu, 8 Mar 2018 02:30:30 +0000 (13:30 +1100)]
promise: be more explicit in docs about who/when to use reply/interrupt/expire

https://bugzilla.gnome.org/show_bug.cgi?id=794153

6 years agobasesrc: Balance unlock/unlock_stop in _src_stop()
Nicolas Dufresne [Wed, 7 Mar 2018 16:19:25 +0000 (11:19 -0500)]
basesrc: Balance unlock/unlock_stop in _src_stop()

Otherwise it's possible that we won't be able to start again
depending the implementation. We do start/stop in normal use cases
whenever GST_QUERY_SCHEDULING happens before we are started.

https://bugzilla.gnome.org/show_bug.cgi?id=794149

6 years agobasesrc: No need to stop flushing in start_complete
Nicolas Dufresne [Wed, 7 Mar 2018 16:16:00 +0000 (11:16 -0500)]
basesrc: No need to stop flushing in start_complete

The flushing state is handled a bit differently, there is no need
to stop flushing in start_complete. This would other result in
unlock_stop being called without unlock_start.

Unlike what the old comment says, there is no need to take the live
lock here, we are still single threaded at this point (app thread
or the state change thread). Also, we will wait for playing state
in create/getrange, no need to do that twice.

https://bugzilla.gnome.org/show_bug.cgi?id=794149

6 years agodebugutils: Change dot-file functions documentation to proper gtk-doc
Sebastian Dröge [Mon, 5 Mar 2018 09:52:24 +0000 (11:52 +0200)]
debugutils: Change dot-file functions documentation to proper gtk-doc

This way gobject-introspection also picks it up and handles our
annotations.

See https://gitlab.gnome.org/GNOME/gobject-introspection/issues/194

6 years agoqueuearray: Implement pop_tail_struct() for completeness
Sebastian Dröge [Sun, 4 Mar 2018 08:53:10 +0000 (10:53 +0200)]
queuearray: Implement pop_tail_struct() for completeness

All other variants of {peek,pop}_{head,tail}_{,struct} were already
implemented.

https://bugzilla.gnome.org/show_bug.cgi?id=794035

6 years agogst: Add some more (type filename) annotations
Sebastian Dröge [Sun, 4 Mar 2018 08:24:49 +0000 (10:24 +0200)]
gst: Add some more (type filename) annotations

6 years agoRelease 1.13.90
Tim-Philipp Müller [Sat, 3 Mar 2018 21:51:49 +0000 (21:51 +0000)]
Release 1.13.90

6 years agoUpdate docs
Tim-Philipp Müller [Sat, 3 Mar 2018 21:51:49 +0000 (21:51 +0000)]
Update docs

6 years agoplugins: Don't force 64-bit file/seek functions variants on android
Matthew Waters [Tue, 13 Feb 2018 11:20:18 +0000 (22:20 +1100)]
plugins: Don't force 64-bit file/seek functions variants on android

Most functions are automatically chosen from the _FILE_OFFSET_BITS
define, the remaining one (fstat) is only available on API >= 21 so
check for that

6 years agoAdd new symbol to docs and .def file
Tim-Philipp Müller [Thu, 1 Mar 2018 22:21:17 +0000 (22:21 +0000)]
Add new symbol to docs and .def file

Fixes make check

6 years agoqueue: Ignore thresholds if a query is queued
Olivier Crête [Thu, 1 Mar 2018 21:19:09 +0000 (16:19 -0500)]
queue: Ignore thresholds if a query is queued

The queue gets filled by the tail, so a query will always be the tail
object, not the head object. Also add a _peek_tail_struct() method to the
GstQueueArray to enable looking at the tail.

With unit test to prevent future regression.

https://bugzilla.gnome.org/show_bug.cgi?id=762875

6 years agomeson: -Wformat-* require -Wformat
Mathieu Duponchelle [Thu, 1 Mar 2018 17:38:01 +0000 (18:38 +0100)]
meson: -Wformat-* require -Wformat

6 years agomeson: enable more warnings
Mathieu Duponchelle [Thu, 1 Mar 2018 16:20:06 +0000 (17:20 +0100)]
meson: enable more warnings

Modeled on the autotools build, -W flags are only
added if the compiler supports them.

https://bugzilla.gnome.org/show_bug.cgi?id=793958

6 years agogstaggregator: pads must inherit from #GstAggregatorPad
Mathieu Duponchelle [Wed, 28 Feb 2018 23:31:11 +0000 (00:31 +0100)]
gstaggregator: pads must inherit from #GstAggregatorPad

Document this, and take advantage of that fact to use
GstAggregator.srcpad.segment instead of GstAggregator.segment

https://bugzilla.gnome.org/show_bug.cgi?id=793942

6 years agoRevert "gstaggregator: pads must inherit from #GstAggregatorPad"
Mathieu Duponchelle [Thu, 1 Mar 2018 00:15:34 +0000 (01:15 +0100)]
Revert "gstaggregator: pads must inherit from #GstAggregatorPad"

This reverts commit 9774b3775d8483e5697f9196a26c1e5831113bd6.

Pushed by mistake

6 years agoghostpad: ensure we build a ghost pad ..
Mathieu Duponchelle [Thu, 1 Mar 2018 00:12:07 +0000 (01:12 +0100)]
ghostpad: ensure we build a ghost pad ..

When we construct from a custom GType

6 years agopad: fix mixed declarations
Mathieu Duponchelle [Thu, 1 Mar 2018 00:09:48 +0000 (01:09 +0100)]
pad: fix mixed declarations

6 years agogstaggregator: pads must inherit from #GstAggregatorPad
Mathieu Duponchelle [Wed, 28 Feb 2018 23:31:11 +0000 (00:31 +0100)]
gstaggregator: pads must inherit from #GstAggregatorPad

Document this, and take advantage of that fact to use
GstAggregator.srcpad.segment instead of GstAggregator.segment

https://bugzilla.gnome.org/show_bug.cgi?id=793942

6 years agoaggregator: allow src GstAggregatorPads
Mathieu Duponchelle [Wed, 28 Feb 2018 18:53:42 +0000 (19:53 +0100)]
aggregator: allow src GstAggregatorPads

See https://bugzilla.gnome.org/show_bug.cgi?id=793917

https://bugzilla.gnome.org/show_bug.cgi?id=793934

6 years agopad, ghostpad: use the template gtype if specified
Mathieu Duponchelle [Wed, 28 Feb 2018 18:51:44 +0000 (19:51 +0100)]
pad, ghostpad: use the template gtype if specified

Also make sure the GType passed to the with_gtype versions
of the template constructors is_a GstPad

https://bugzilla.gnome.org/show_bug.cgi?id=793933

6 years agobaseparse: Fix integer overflow in bitrate calculation
Nicolas Dufresne [Thu, 22 Feb 2018 03:25:25 +0000 (22:25 -0500)]
baseparse: Fix integer overflow in bitrate calculation

https://bugzilla.gnome.org/show_bug.cgi?id=793284

6 years agobaseparse: Avoid overflow in update_interval calculation
Nicolas Dufresne [Thu, 22 Feb 2018 03:01:36 +0000 (22:01 -0500)]
baseparse: Avoid overflow in update_interval calculation

https://bugzilla.gnome.org/show_bug.cgi?id=793284

6 years agobaseparse: Fix check for update_interval
Nicolas Dufresne [Thu, 22 Feb 2018 02:43:59 +0000 (21:43 -0500)]
baseparse: Fix check for update_interval

update_interval may be -1

https://bugzilla.gnome.org/show_bug.cgi?id=793284

6 years agomeson: Use .dylib suffix if darwin
Justin Kim [Mon, 19 Feb 2018 06:39:46 +0000 (15:39 +0900)]
meson: Use .dylib suffix if darwin

For Mac OS, GST_EXTRA_MODULE_SUFFIX should be set as '.dylib'.
Otherwise, GStreamer fails to load its plugins.

https://bugzilla.gnome.org/show_bug.cgi?id=793584

6 years agoqueuearray: add _peek_tail() and _pop_tail()
Tim-Philipp Müller [Thu, 1 Feb 2018 18:29:27 +0000 (18:29 +0000)]
queuearray: add _peek_tail() and _pop_tail()

API: gst_queue_array_pop_tail()
API: gst_queue_array_peek_tail()

These will be needed later for appsrc.

6 years agogst: fix some GIR annotations
Mark Nauwelaerts [Tue, 13 Feb 2018 11:38:33 +0000 (12:38 +0100)]
gst: fix some GIR annotations

Mostly related to out parameters and their transfer

6 years agogstbasesink: Include segment.offset in the computation of position
Alicia Boya García [Wed, 10 Jan 2018 03:08:57 +0000 (04:08 +0100)]
gstbasesink: Include segment.offset in the computation of position

Position queries with GST_FORMAT_TIME are supposed to return stream
time.

gst_base_sink_get_position() estimates the current stream time on its
own instead of using gst_segment_to_stream_time(), but the algorithm
used was not taking segment.offset into account, resulting in invalid
values when this field was set to a non-zero value.

https://bugzilla.gnome.org/show_bug.cgi?id=792434

6 years agotracers: latency: allow for non parented pads to send latency probes
Matthew Waters [Thu, 15 Feb 2018 01:58:43 +0000 (12:58 +1100)]
tracers: latency: allow for non parented pads to send latency probes

Such a setup is used in rtspsrc for its TCP connection

https://bugzilla.gnome.org/show_bug.cgi?id=793478

6 years agoBack to development
Tim-Philipp Müller [Thu, 15 Feb 2018 19:44:14 +0000 (19:44 +0000)]
Back to development

6 years agoRelease 1.13.1
Tim-Philipp Müller [Thu, 15 Feb 2018 16:31:16 +0000 (16:31 +0000)]
Release 1.13.1

6 years agotests: pipeline: try to make test_pipeline_reset_start_time more reliable
Tim-Philipp Müller [Thu, 15 Feb 2018 13:36:26 +0000 (13:36 +0000)]
tests: pipeline: try to make test_pipeline_reset_start_time more reliable

Occasionally this test would fail, especially if the system is under load,
because the position query would pick up the last position from the
last buffer timestamp which has a lower timestamp than what we're
looking for. The sleep is long enough, however. It's unclear to me why
exactly this happens but there seems to be some kind of scheduling
issue going on as the streaming thread floods the sink with buffers.

Let's throttle the fakesrc to 100 buffers per second and make the sink
sync to the clock to restore some sanity. It should be totally sufficient
to test what we want to test, and seems to make things reliable here.

6 years agotests: uri: fix build without -DGST_DISABLE_DEPRECATED
Tim-Philipp Müller [Thu, 15 Feb 2018 12:03:20 +0000 (12:03 +0000)]
tests: uri: fix build without -DGST_DISABLE_DEPRECATED

Must undefine it before including gst headers, since the test
tests deprecated API.

6 years agogstconfig.h: want deprecation warnings if GST_DISABLE_DEPRECATED is *set*
Tim-Philipp Müller [Thu, 15 Feb 2018 12:09:31 +0000 (12:09 +0000)]
gstconfig.h: want deprecation warnings if GST_DISABLE_DEPRECATED is *set*

Fix inverted logic. If GST_DISABLE_DEPRECATED is undefined,
we don't want warnings about deprecated API, and if it's
defined we do want warnings.

6 years agopo: update translations
Tim-Philipp Müller [Thu, 15 Feb 2018 11:28:23 +0000 (11:28 +0000)]
po: update translations

6 years agodocs: add flow combiner ref/unref to docs
Tim-Philipp Müller [Wed, 14 Feb 2018 19:37:35 +0000 (19:37 +0000)]
docs: add flow combiner ref/unref to docs

So new-in-1.12 index actually has some entries.

6 years agodocs: add index for new symbols in 1.14
Tim-Philipp Müller [Wed, 14 Feb 2018 19:13:28 +0000 (19:13 +0000)]
docs: add index for new symbols in 1.14

6 years agodocs: add index for new symbols in 1.12
Tim-Philipp Müller [Wed, 14 Feb 2018 19:12:06 +0000 (19:12 +0000)]
docs: add index for new symbols in 1.12

6 years agomeson: make version numbers ints and fix int/string comparison
Tim-Philipp Müller [Thu, 8 Feb 2018 17:22:14 +0000 (17:22 +0000)]
meson: make version numbers ints and fix int/string comparison

WARNING: Trying to compare values of different types (str, int).
The result of this is undefined and will become a hard error
in a future Meson release.

6 years agoautotools: use -fno-strict-aliasing where supported
Tim-Philipp Müller [Sat, 3 Feb 2018 16:56:04 +0000 (17:56 +0100)]
autotools: use -fno-strict-aliasing where supported

https://bugzilla.gnome.org/show_bug.cgi?id=769183

6 years agobuffer: fix gtk-doc warning regarding _get_n_meta() declaration
Tim-Philipp Müller [Sat, 3 Feb 2018 16:55:29 +0000 (17:55 +0100)]
buffer: fix gtk-doc warning regarding _get_n_meta() declaration

6 years agogstpromise: add since 1.14 markers
Matthew Waters [Thu, 1 Feb 2018 13:24:20 +0000 (00:24 +1100)]
gstpromise: add since 1.14 markers

6 years agogst-uninstalled: add webrtc to libraries
Matthew Waters [Wed, 18 Oct 2017 10:24:19 +0000 (21:24 +1100)]
gst-uninstalled: add webrtc to libraries

6 years agogstbuffer.h: move FLAG_LAST documentation back to the bottom
Mathieu Duponchelle [Wed, 31 Jan 2018 13:01:36 +0000 (14:01 +0100)]
gstbuffer.h: move FLAG_LAST documentation back to the bottom

6 years agobasetransform: annotate virtual methods
Mathieu Duponchelle [Wed, 31 Jan 2018 12:36:15 +0000 (13:36 +0100)]
basetransform: annotate virtual methods

6 years agogstbuffer: add GST_BUFFER_FLAG_NON_DROPPABLE
Mathieu Duponchelle [Tue, 30 Jan 2018 15:41:39 +0000 (16:41 +0100)]
gstbuffer: add GST_BUFFER_FLAG_NON_DROPPABLE

This can be used to identify buffers for which a higher percentage
of redundancy should be allocated when performing forward error
correction, or to prevent still video frames from being dropped by
elements due to QoS.

https://bugzilla.gnome.org/show_bug.cgi?id=793008

6 years agomeson: use -fno-strict-aliasing if supported
Tim-Philipp Müller [Tue, 30 Jan 2018 20:30:47 +0000 (20:30 +0000)]
meson: use -fno-strict-aliasing if supported

https://bugzilla.gnome.org/show_bug.cgi?id=769183

6 years agobuffer: add gst_buffer_get_n_meta() convenience function
Tim-Philipp Müller [Sat, 23 Dec 2017 15:45:18 +0000 (16:45 +0100)]
buffer: add gst_buffer_get_n_meta() convenience function

Counts how many metas there are for a certain api type.

https://bugzilla.gnome.org/show_bug.cgi?id=791918

6 years agogst: Fix up a bunch of GIR annotations
Arun Raghavan [Sun, 22 Oct 2017 12:35:30 +0000 (18:05 +0530)]
gst: Fix up a bunch of GIR annotations

This is mostly on nullable return values, and some other minor ones that
I ran across.

https://bugzilla.gnome.org/show_bug.cgi?id=789319

6 years agodevicemonitor: Return NULL instead of FALSE
Arun Raghavan [Fri, 26 May 2017 23:49:20 +0000 (05:19 +0530)]
devicemonitor: Return NULL instead of FALSE

Same effect, meaning is clearer.

https://bugzilla.gnome.org/show_bug.cgi?id=789319

6 years agomessage: Add gst_message_writable_structure()
François Laignel [Fri, 26 Jan 2018 11:42:28 +0000 (12:42 +0100)]
message: Add gst_message_writable_structure()

Add gst_message_writable_structure() to be able to add extra fields to
messages (and be on par with GstEvent).

https://bugzilla.gnome.org/show_bug.cgi?id=792928

6 years agoaggregator: delegate buffer skipping to the aggregate thread
Mathieu Duponchelle [Tue, 23 Jan 2018 21:49:52 +0000 (22:49 +0100)]
aggregator: delegate buffer skipping to the aggregate thread

As we do that for serialized events as well, and the subclass will
most likely need to access pad->segment to make its decisions,
doing that from the sinkpad's streaming threads was racy.

6 years agoAPI: GstAggregatorPad.skip_buffer virtual method
Mathieu Duponchelle [Thu, 28 Dec 2017 11:12:45 +0000 (12:12 +0100)]
API: GstAggregatorPad.skip_buffer virtual method

Allows subclasses to prevent buffers from being queued.

https://bugzilla.gnome.org/show_bug.cgi?id=781928

6 years agobasesrc: Annotate some of the virtual methods
Mathieu Duponchelle [Tue, 23 Jan 2018 19:04:02 +0000 (20:04 +0100)]
basesrc: Annotate some of the virtual methods

6 years agoaggregator: rename _get_buffer() -> _peek_buffer() and _steal -> _pop
Tim-Philipp Müller [Tue, 23 Jan 2018 08:56:34 +0000 (08:56 +0000)]
aggregator: rename _get_buffer() -> _peek_buffer() and _steal -> _pop

https://bugzilla.gnome.org/show_bug.cgi?id=791204

6 years agochildproxy: gracefully handle methods being NULL
Tim-Philipp Müller [Sat, 20 Jan 2018 15:30:53 +0000 (15:30 +0000)]
childproxy: gracefully handle methods being NULL

Do this for all method invoke functions for consistency.

https://bugzilla.gnome.org/show_bug.cgi?id=750154

6 years agowin32: fix .def file for new API
Tim-Philipp Müller [Thu, 18 Jan 2018 18:11:59 +0000 (18:11 +0000)]
win32: fix .def file for new API

Fixes check + distcheck

6 years agoptp: fix build failure with #undef USE_MEASUREMENT_FILTERING
Michele Dionisio [Tue, 1 Aug 2017 08:43:32 +0000 (10:43 +0200)]
ptp: fix build failure with #undef USE_MEASUREMENT_FILTERING

"Label ‘out’ used but not defined", since it's also used by
the USE_MEDIAN_PRE_FILTERING branch.

https://bugzilla.gnome.org/show_bug.cgi?id=785631

6 years agopadtemplate: And add missing GST_EXPORT to gst_pad_template_new_with_gtype()
Sebastian Dröge [Thu, 18 Jan 2018 17:16:12 +0000 (19:16 +0200)]
padtemplate: And add missing GST_EXPORT to gst_pad_template_new_with_gtype()

6 years agopadtemplate: Add missing Since: 1.14 marker to gst_pad_template_new_with_gtype()
Sebastian Dröge [Thu, 18 Jan 2018 17:15:09 +0000 (19:15 +0200)]
padtemplate: Add missing Since: 1.14 marker to gst_pad_template_new_with_gtype()

6 years agopadtemplate: Add gst_pad_template_new_with_gtype()
Sebastian Dröge [Thu, 18 Jan 2018 17:08:10 +0000 (19:08 +0200)]
padtemplate: Add gst_pad_template_new_with_gtype()

For being able to create a pad template with GType without having a
static pad template.

6 years agopadtemplate: Add Since: 1.14 marker to gst_pad_template_new_from_static_pad_template_...
Sebastian Dröge [Thu, 18 Jan 2018 17:07:49 +0000 (19:07 +0200)]
padtemplate: Add Since: 1.14 marker to gst_pad_template_new_from_static_pad_template_with_gtype()

6 years agogstpad: Avoid stream-dead-lock on deactivation
Edward Hervey [Tue, 16 Jan 2018 09:17:58 +0000 (10:17 +0100)]
gstpad: Avoid stream-dead-lock on deactivation

The following case can happen when two thread try to activate and
deactivate a pad at the same time:
T1: starts to deactivate, calls pre_activate(), sets in_activation
    to TRUE and carries on
T2: starts to activate, calls pre_activate(), in_activation is TRUE
    so it waits on the GCond
T1: calls post_activate(), tries to acquire the streaming lock ..
    but can't because T2 is currently holding it

With this patch, the deadlock will no longer happen but does not
solve the problem that:
T2: will resume activation of the pad, set the pad mode to the target
   one (PUSH or PULL) and eventually the streaming lock gets released.
T1: is able to finish calling post_activate() ... but ... the pad
   wasn't deactivated (T2 was the last one to "activate" the pad.

https://bugzilla.gnome.org/show_bug.cgi?id=792341

6 years agogstpad: Release pending g_cond_wait() when stopping/pausing task
Edward Hervey [Mon, 15 Jan 2018 17:13:45 +0000 (18:13 +0100)]
gstpad: Release pending g_cond_wait() when stopping/pausing task

Otherwise we would deadlock waiting forever for the streaming lock
to be released

https://bugzilla.gnome.org/show_bug.cgi?id=792341

6 years agotypefindhelper: fix confusing debug log message
Jun Xie [Sat, 13 Jan 2018 03:08:00 +0000 (11:08 +0800)]
typefindhelper: fix confusing debug log message

In case of a short buffer, the debug log is quite confusing.
Distinguish the two types of failure cases to make it clearer.

https://bugzilla.gnome.org/show_bug.cgi?id=792486

6 years agodocs: explicit refer to GObject docs for floating refs
Tim-Philipp Müller [Fri, 12 Jan 2018 18:47:17 +0000 (18:47 +0000)]
docs: explicit refer to GObject docs for floating refs

https://bugzilla.gnome.org/show_bug.cgi?id=788477

6 years agotests: fakesink: make notify stress test work better on Windows
Tim-Philipp Müller [Thu, 11 Jan 2018 19:52:41 +0000 (19:52 +0000)]
tests: fakesink: make notify stress test work better on Windows

Set up all ten pipelines and preroll them first, and only set
them to playing to run wild after they're all set up. If we set
them to PLAYING directly and let those threads run wild, then
it might take ages (many seconds) for the other pipelines to
even get up and running, especially on machines with only one
or two cores, and operating systems that suck at scheduling.

Now the fakesink test takes 19 secs instead of 71 secs on a
single-cpu windows machine.

6 years agotests: filesrc: more Windows fixes
Tim-Philipp Müller [Thu, 11 Jan 2018 19:32:08 +0000 (19:32 +0000)]
tests: filesrc: more Windows fixes

Fix typo in newly-added windows uri test.

6 years agoutils: use g_get_monotonic_time() as fallback in gst_utils_get_timestamp()
Tim-Philipp Müller [Thu, 11 Jan 2018 18:44:50 +0000 (18:44 +0000)]
utils: use g_get_monotonic_time() as fallback in gst_utils_get_timestamp()

This is a better fit given that the function docs say this
should (only) be used for interval measurements, but also
this seems to give much better granularity on Windows
systems, where before this change there would often be
10-20 lines of debug log with the same timestamp up front.

6 years agotests: systemclock: scale stress test threads according to number of cpus
Tim-Philipp Müller [Thu, 11 Jan 2018 18:39:50 +0000 (18:39 +0000)]
tests: systemclock: scale stress test threads according to number of cpus

Scale the number of threads used in the stress tests according to
the number of cores/cpus. We want some contention, but we also
don't want too much contention, as some operating systems are
better at handling 100 threads running wild on a single core
than others.

6 years agoplugin: plugin_load() must return a ref even if it was loaded already
Tim-Philipp Müller [Thu, 11 Jan 2018 17:10:45 +0000 (17:10 +0000)]
plugin: plugin_load() must return a ref even if it was loaded already

Fix refcounting issue when plugin was loaded already.
gst_plugin_load() is supposed to return a ref, so it
must always return a ref.

This also fixes the gstplugin unit test on windows where
fork is not available and where test_load_coreelements()
would unref a plugin ref it didn't get and then mess up
the internal registry plugin list state for the next test,
in case where the test registry does not exist yet.

6 years agotests: filesrc: fix for windows
Tim-Philipp Müller [Thu, 11 Jan 2018 14:56:42 +0000 (14:56 +0000)]
tests: filesrc: fix for windows

Location paths have backslashes on windows when converted from URI.

6 years agolibs: check: print stacktrace on unexpected criticals
Tim-Philipp Müller [Thu, 11 Jan 2018 12:27:18 +0000 (12:27 +0000)]
libs: check: print stacktrace on unexpected criticals

6 years agotests: abi: fix abi test on 64-bit Windows
Tim-Philipp Müller [Thu, 11 Jan 2018 12:02:47 +0000 (12:02 +0000)]
tests: abi: fix abi test on 64-bit Windows

Add header with structure sizes for 64-bit windows as well.
They're almost the same as on Linux, but it looks like things
like padding unions get aligned slightly differently so there
are a handful of differences:

 sizeof(GstGhostPad) is 528, expected 536
 sizeof(GstPad) is 512, expected 520
 sizeof(GstPadProbeInfo) is 64, expected 72
 sizeof(GstProxyPad) is 520, expected 528

6 years agotests: info: fix post init cat reg test on windows and with CK_FORK=no
Tim-Philipp Müller [Thu, 11 Jan 2018 11:38:53 +0000 (11:38 +0000)]
tests: info: fix post init cat reg test on windows and with CK_FORK=no

The test checks that categories not covered by the pattern in the
GST_DEBUG string have debug level GST_LEVEL_DEFAULT set, but previous
tests mess with the default threshold, which made this test fail on
Windows or when run with CK_FORK=no. Fix this by resetting everything
at the beginning, and then also do a sanity check afterwards.

6 years agoinfo: reset default threshold to LEVEL_DEFAULT not 0
Tim-Philipp Müller [Thu, 11 Jan 2018 11:36:53 +0000 (11:36 +0000)]
info: reset default threshold to LEVEL_DEFAULT not 0

in set_threshold_from_string().

6 years agomeson: make check and tests build on Windows with msvc
Håvard Graff [Wed, 8 Nov 2017 19:05:03 +0000 (20:05 +0100)]
meson: make check and tests build on Windows with msvc

6 years agogstharness: Remove double free
Edward Hervey [Tue, 2 Jan 2018 09:02:45 +0000 (10:02 +0100)]
gstharness: Remove double free

6 years agostreams: GstStreamType/GstStream are available since 1.10
Sebastian Dröge [Tue, 26 Dec 2017 17:08:31 +0000 (18:08 +0100)]
streams: GstStreamType/GstStream are available since 1.10

Annotate them as such.

6 years agomeson: skip translations if gettext is not available
Tim-Philipp Müller [Tue, 26 Dec 2017 12:46:20 +0000 (13:46 +0100)]
meson: skip translations if gettext is not available

6 years agoaggregator: remove DEBUG_FUNCPTR
Stefan Sauer [Tue, 26 Dec 2017 11:51:22 +0000 (12:51 +0100)]
aggregator: remove DEBUG_FUNCPTR

The new gst_element_do_foreach_pad() does not print the functions anymore.

6 years agoinspect: add comment for how to improve tracer support
Stefan Sauer [Tue, 26 Dec 2017 11:17:53 +0000 (12:17 +0100)]
inspect: add comment for how to improve tracer support

6 years agosegment: add a FIXME-2.0 for the format parameters
Stefan Sauer [Tue, 26 Dec 2017 10:29:39 +0000 (11:29 +0100)]
segment: add a FIXME-2.0 for the format parameters

Capture the somewhat not ordinary use of the extra format parameter in a
comment.
See https://bugzilla.gnome.org/show_bug.cgi?id=788979

6 years agoSkip gst_deinit() if gstreamer was not initialized properly
Tim-Philipp Müller [Sun, 24 Dec 2017 15:21:38 +0000 (16:21 +0100)]
Skip gst_deinit() if gstreamer was not initialized properly

Can happen if an error occurs during option parsing, for example.

https://bugzilla.gnome.org/show_bug.cgi?id=781914

6 years agotests: multiqueue: Replace large test macro with function
Jan Alexander Steffens (heftig) [Sat, 23 Dec 2017 22:43:33 +0000 (23:43 +0100)]
tests: multiqueue: Replace large test macro with function

Just a bit of cleanup.

https://bugzilla.gnome.org/show_bug.cgi?id=756867

6 years agotests: multiqueue: Check we get CREATE+ENTER stream-statuses when adding pads
Jan Alexander Steffens (heftig) [Fri, 15 Dec 2017 08:43:40 +0000 (09:43 +0100)]
tests: multiqueue: Check we get CREATE+ENTER stream-statuses when adding pads

https://bugzilla.gnome.org/show_bug.cgi?id=756867

6 years agomultiqueue: Don't start new pads until parented
Jan Alexander Steffens (heftig) [Fri, 15 Dec 2017 08:14:57 +0000 (09:14 +0100)]
multiqueue: Don't start new pads until parented

Start task on new source pads added at runtime after they
have been added to the element, not during activation.

This ensures the pads can post their CREATE stream-status
messages and the application can set thread priorities.

https://bugzilla.gnome.org/show_bug.cgi?id=756867

6 years agomultiqueue: Split task handling from gst_single_queue_flush
Jan Alexander Steffens (heftig) [Fri, 15 Dec 2017 08:14:07 +0000 (09:14 +0100)]
multiqueue: Split task handling from gst_single_queue_flush

https://bugzilla.gnome.org/show_bug.cgi?id=756867

6 years agoaggregator: Avoid a maybe-uninitialized warning
Jan Alexander Steffens (heftig) [Sat, 23 Dec 2017 22:25:58 +0000 (23:25 +0100)]
aggregator: Avoid a maybe-uninitialized warning

Arch Linux x86_64, gcc 7.2.1-2, -Og -g3

6 years agodownloadbuffer: Don't hold the mutex while posint the download-complete message
Sebastian Dröge [Thu, 21 Dec 2017 11:47:52 +0000 (13:47 +0200)]
downloadbuffer: Don't hold the mutex while posint the download-complete message

Something might handle it from a sync message handler and call back into
downloadbuffer, causing a deadlock.

6 years agosystemclock: set_default() clock parameter can be NULL
Sebastian Dröge [Wed, 20 Dec 2017 16:56:23 +0000 (18:56 +0200)]
systemclock: set_default() clock parameter can be NULL

6 years agoelement: Annotate set_clock() clock parameter with allow-none
Sebastian Dröge [Wed, 20 Dec 2017 16:11:48 +0000 (18:11 +0200)]
element: Annotate set_clock() clock parameter with allow-none

6 years agoelement: Annotate set_bus() bus parameter as allow-none
Sebastian Dröge [Wed, 20 Dec 2017 16:09:28 +0000 (18:09 +0200)]
element: Annotate set_bus() bus parameter as allow-none

It's possible to replace the bus with NULL/None

6 years agogst-uninstalled: update for gl lib move from bad to base
Tim-Philipp Müller [Sun, 10 Dec 2017 22:50:05 +0000 (22:50 +0000)]
gst-uninstalled: update for gl lib move from bad to base

6 years agobasetransform: Allow going passthrough inside decide_allocation
Nicolas Dufresne [Tue, 12 Dec 2017 01:58:16 +0000 (20:58 -0500)]
basetransform: Allow going passthrough inside decide_allocation

Sub-class may want to decide to go passthrough/in-place by inspecting
the support meta APIs. This patch duplicates the check for this mode,
so we still don't do uneeded allocation query while we allow sub-classes
to switch the behaviour during it's own decide_allocation call.

Notice that such sub-class need to reset the class to non-passthrough in
set_caps() in order for decide_allocation to be called again. This is
needed otherwise we'd be doing an allocation query in element in which
it make no sense (notably capsfilter).

https://bugzilla.gnome.org/show_bug.cgi?id=791453

6 years agoplugin: Annotate add_dependency() arguments as NULL-terminated arrays
Sebastian Dröge [Sun, 17 Dec 2017 12:18:38 +0000 (14:18 +0200)]
plugin: Annotate add_dependency() arguments as NULL-terminated arrays