platform/upstream/gstreamer.git
4 years agogst: Don't pass miniobjects to GST_DEBUG_OBJECT() and similar macros
Sebastian Dröge [Mon, 30 Sep 2019 08:49:35 +0000 (11:49 +0300)]
gst: Don't pass miniobjects to GST_DEBUG_OBJECT() and similar macros

The argument must be at least a GObject according to the GstLogFunction
definition, and while the default C log function handles miniobjects
just fine this is crashing bindings and user-supplied log functions that
(rightfully) don't expect anything but GObjects.

4 years agogst-launch: Use gst_print* instead of g_print* to fix broken stdout on Windows
Seungha Yang [Mon, 19 Aug 2019 16:02:48 +0000 (01:02 +0900)]
gst-launch: Use gst_print* instead of g_print* to fix broken stdout on Windows

Concurrent Windows' colored debug message and g_print will print
string hard to read. Instead, use gst_print* which serialize
debug output and the APIs call.

4 years agoinfo: Take lock around all prinf on Windows
Seungha Yang [Mon, 19 Aug 2019 15:59:15 +0000 (00:59 +0900)]
info: Take lock around all prinf on Windows

On Windows, concurrent colored gstreamr debug output and usual
stdout/stderr string will cause broken output on terminal.
Since it's OS specific behavior, that's hard to completely avoid it
but we can protect it at least among our printing interfaces side.

4 years agoRelease 1.16.1
Tim-Philipp Müller [Mon, 23 Sep 2019 10:01:50 +0000 (11:01 +0100)]
Release 1.16.1

4 years agoUpdate docs
Tim-Philipp Müller [Mon, 23 Sep 2019 10:01:50 +0000 (11:01 +0100)]
Update docs

4 years agoUpdate translations
Tim-Philipp Müller [Mon, 23 Sep 2019 10:01:47 +0000 (11:01 +0100)]
Update translations

4 years agoelement: Enforce that elements created by gst_element_factory_create/make() are floating
Sebastian Dröge [Thu, 12 Sep 2019 07:09:18 +0000 (10:09 +0300)]
element: Enforce that elements created by gst_element_factory_create/make() are floating

Bindings might have a hard time making sure that the reference is indeed
still floating after returning here.

See https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/444

4 years agodevice: Enforce that elements created by gst_device_create_element() are floating
Sebastian Dröge [Thu, 12 Sep 2019 07:08:39 +0000 (10:08 +0300)]
device: Enforce that elements created by gst_device_create_element() are floating

Bindings might have a hard time making sure that the reference is indeed
still floating after returning here.

See https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/444

4 years agodevice: gst_device_create_element() is `transfer floating`, not `transfer full`
Sebastian Dröge [Thu, 12 Sep 2019 07:03:08 +0000 (10:03 +0300)]
device: gst_device_create_element() is `transfer floating`, not `transfer full`

Fixing the annotation fixes leaking of the created element in all
bindings using GObject-Introspection.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/444

4 years agoconsolidated IOV_MAX/UIO_MAXIOV handling per GLib + legacy behaviour for osx/ios
Jim Mason [Sat, 7 Sep 2019 11:32:40 +0000 (12:32 +0100)]
consolidated IOV_MAX/UIO_MAXIOV handling per GLib + legacy behaviour for osx/ios

4 years agogst_writev: respect IOV_MAX for the writev iovec array #439
Jim Mason [Fri, 6 Sep 2019 18:23:01 +0000 (19:23 +0100)]
gst_writev: respect IOV_MAX for the writev iovec array #439

4 years agominiobject: free qdata array when the last qdata is removed
David Svensson Fors [Tue, 3 Sep 2019 08:38:13 +0000 (10:38 +0200)]
miniobject: free qdata array when the last qdata is removed

In cases with many long-lived buffers that have qdata only very
briefly, the memory overhead of keeping an array of 16 GstQData
structs for each buffer can be significant. We free the array when
the last qdata is removed, like it was done in 1.14.

Fixes #436

4 years agobin: Fix minor race when adding to a bin
Nicolas Dufresne [Tue, 3 Sep 2019 17:44:24 +0000 (13:44 -0400)]
bin: Fix minor race when adding to a bin

This patch simply add a null check around a case where a child may have
been unparented concurrently to the deep_add_remove operation. This was
found by accident in the form of an "IS_GST_OBJECT" assertion, but had
no other known side effect in that test.

4 years agomeson: fix warning about configure_file() install kwarg
Tim-Philipp Müller [Thu, 15 Aug 2019 11:56:06 +0000 (12:56 +0100)]
meson: fix warning about configure_file() install kwarg

The install kwarg on configure_file() was only added in
Meson 0.50 but we're targetting older versions as well,
which caused a warning. The install kwarg is not needed
here as we specify install_dir, so we can just drop it.

Fixes #379

4 years agoaggregator: Actually handle NEED_DATA return from update_src_caps()
Sebastian Dröge [Wed, 14 Aug 2019 06:51:55 +0000 (09:51 +0300)]
aggregator: Actually handle NEED_DATA return from update_src_caps()

The documentation says that this allows the subclass to signal that it
needs more data before it can decide on caps, so let's actually
implement it that way.

4 years agoaggregator: Assert if the sink/src pad type that is to be used is not a GstAggregator...
Sebastian Dröge [Tue, 13 Aug 2019 16:57:08 +0000 (19:57 +0300)]
aggregator: Assert if the sink/src pad type that is to be used is not a GstAggregatorPad or subclass thereof

4 years agoaggregator: Ensure that the source pad is created as a GstAggregatorPad if no type...
Sebastian Dröge [Tue, 13 Aug 2019 16:55:59 +0000 (19:55 +0300)]
aggregator: Ensure that the source pad is created as a GstAggregatorPad if no type is given in the pad template

Otherwise we would create a GstPad and that causes invalid memory
accesses later.

4 years agolatency: fix custom event leaks
Guillaume Desmottes [Tue, 6 Aug 2019 04:39:22 +0000 (10:09 +0530)]
latency: fix custom event leaks

If the element before the sink needs $n buffers to produce one output
buffer, we were reffing $n events and unreffing only one.
Prevent this by using g_object_set_qdata_full() to handle the event
unreffing so we're sure no ref will be lost.

4 years agotracers: set MAY_BE_LEAKED on tracer records
Guillaume Desmottes [Fri, 2 Aug 2019 07:37:58 +0000 (13:07 +0530)]
tracers: set MAY_BE_LEAKED on tracer records

The records are static and so appear as false positives when using those
tracers with the leaks tracer as well.
The leaks tracer was already setting this flag on its record so let's
set it on the other ones as well.

4 years agolatency: display event pointer in logs
Guillaume Desmottes [Thu, 20 Jun 2019 11:12:01 +0000 (16:42 +0530)]
latency: display event pointer in logs

This is quite useful for debugging when tracer is reporting the wrong
latency because of an element breaking the events/buffers ordering.

4 years agodownloadbuffer: Check for flush after seek
Alicia Boya García [Mon, 22 Jul 2019 15:06:20 +0000 (15:06 +0000)]
downloadbuffer: Check for flush after seek

In gst_download_buffer_wait_for_data(), when a seek is made with
perform_seek_to_offset() the `qlock` is released temporarily. Therefore,
the flushing condition can be set during this period and should be
checked.

This was not being checked before, causing occasional deadlocks when
GST_DOWNLOAD_BUFFER_WAIT_ADD_CHECK() was called.

GST_DOWNLOAD_BUFFER_WAIT_ADD_CHECK() assumes that the caller has already
checked that we're not flushing before, since this is done when
acquiring the lock; so if we release it temporarily somewhere, we need
to check for flush again.

Without that check, the function would keep waiting for the condition
variable to be notified before checking for flushing condition again,
and that may very well never happen. This was reproduced when during pad
deactivation when running WebKit in gdb.

4 years agoregistry: Use plugin directory from the build system for relocateable Windows builds
Sebastian Dröge [Thu, 8 Aug 2019 10:49:07 +0000 (13:49 +0300)]
registry: Use plugin directory from the build system for relocateable Windows builds

Instead of guessing something based on preprocessor defines and magic.

4 years agomessage: fix up enum value for GST_MESSAGE_DEVICE_CHANGED
Tim-Philipp Müller [Mon, 5 Aug 2019 23:05:22 +0000 (00:05 +0100)]
message: fix up enum value for GST_MESSAGE_DEVICE_CHANGED

This was added in 1.16 and accidentally duplicated the value of
the existing GST_MESSAGE_REDIRECT.

As the only known user of this message is GStreamer core itself,
and it is quite an obscure message, it seems best to just fix up
the enum value even if that technically breaks API.

Fixes #418

4 years agoinfo: Fix deadlock in gst_ring_buffer_logger_log
Doug Nazar [Wed, 31 Jul 2019 01:40:47 +0000 (21:40 -0400)]
info: Fix deadlock in gst_ring_buffer_logger_log

gst_ring_buffer_logger_log calls several functions while formatting
the message which may in turn log a message while we already hold
the mutex. Do all formatting first before acquiring the mutex to
avoid this and reduce the time we hold the mutex.

4 years agoidentity: Non-live upstream have no max latency
Nicolas Dufresne [Sat, 20 Jul 2019 01:57:09 +0000 (21:57 -0400)]
identity: Non-live upstream have no max latency

sync=TRUE implementation changes the latency query of a non-live
upstream into live, though it wrongly set the upstream max latency to 0.
As non-live sources won't loose data if we wait longer, this should have
been reported as have no max latency limite (-1).

4 years agoidentity: Fix the ts-offset property getter
Philippe Normand [Thu, 11 Jul 2019 16:53:53 +0000 (17:53 +0100)]
identity: Fix the ts-offset property getter

Previous code was a copy/paste from the property setter function.

4 years agoaggregator: Make parsing of explicit sink pad names more robust
Sebastian Dröge [Mon, 8 Jul 2019 16:09:03 +0000 (19:09 +0300)]
aggregator: Make parsing of explicit sink pad names more robust

When passing "sink_%d" twice to aggregator before it would create two
pads called "sink_0", because it failed to parse "%d" as integer and
used 0 instead then.

Instead validate that parsing was actually successful and also don't
even try to parse if the requested pad name contains a '%'.

4 years agobufferpool: Fix the buffer size reset code
Nicolas Dufresne [Sat, 29 Jun 2019 13:22:05 +0000 (09:22 -0400)]
bufferpool: Fix the buffer size reset code

The offset in gst_buffer_resize() is additive. So to move back the
offset to zero, we need to pass the opposite of the current offset. This
was raised through the related unit test failingon 32bit as on 64bit
the alignment padding was enough to hide the issue. The test was
modified to also fail on 64bit. This patch will remove spurious
assertions like:

  assertion 'bufmax >= bufoffs + offset + size' failed

Fixes #316

4 years agogstelements_private: sync gst_buffer_get_flags_string() with new flags
Guillaume Desmottes [Thu, 20 Jun 2019 08:19:14 +0000 (13:49 +0530)]
gstelements_private: sync gst_buffer_get_flags_string() with new flags

4 years agomultiqueue: never unref queries we do not own
Thibault Saunier [Thu, 20 Jun 2019 03:29:24 +0000 (23:29 -0400)]
multiqueue: never unref queries we do not own

The `query` argument of gst_pad_query is "transfer none".

Query objects are "borrowed" by the pad query handlers and those
should never unref them.

This was leading to double freed queries in a very racy way with nested
GESTimelines.

4 years agoconcat: Reset last_stop on FLUSH_STOP too
Sebastian Dröge [Tue, 4 Jun 2019 14:55:30 +0000 (17:55 +0300)]
concat: Reset last_stop on FLUSH_STOP too

Otherwise when seeking backwards we would keep the last_stop at the last
position we saw until playback passed the seek position again, and if
switching to the next pad happens in the meantime we would set the wrong
offset in the outgoing segment.

4 years agoconcat: Improve debug output a bit
Sebastian Dröge [Tue, 4 Jun 2019 14:56:30 +0000 (17:56 +0300)]
concat: Improve debug output a bit

4 years agoaggregator: fix flow-return boolean return type mismatch
Tim-Philipp Müller [Wed, 29 Jul 2015 10:48:33 +0000 (11:48 +0100)]
aggregator: fix flow-return boolean return type mismatch

Not that it matters, since we don't check the return value
anyway. Unclear why the aggregator pad flush function should
have a return value at all really, and perhaps it should be
called reset anyway. Spotted by dv on irc.

4 years agogstpad: Probes that return HANDLED can reset the data info field
Edward Hervey [Mon, 13 May 2019 14:42:04 +0000 (16:42 +0200)]
gstpad: Probes that return HANDLED can reset the data info field

Before GST_PAD_PROBE_HANDLED was introduced, we had to handle the case
where some probes would reset the probe info data field to NULL. This would
be considered an invalid use-case.

But with GST_PAD_PROBE_HANDLED it is totally fine to reset that, since
the probe has "handled" it.

4 years agomeson: Link to objects instea of static helper library
Nirbheek Chauhan [Mon, 13 May 2019 07:54:42 +0000 (13:24 +0530)]
meson: Link to objects instea of static helper library

Otherwise the objects from that static helper library are not included
in the gstreamer-1.0 static library. This was supposed to be fixed in
Meson, but the pull request hasn't been merged yet:
https://github.com/mesonbuild/meson/pull/3939

Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/398

4 years agomeson: Pass -DGST_STATIC_COMPILATION for static builds
Nirbheek Chauhan [Mon, 13 May 2019 09:12:28 +0000 (14:42 +0530)]
meson: Pass -DGST_STATIC_COMPILATION for static builds

This is only needed on Windows when building with MSVC, but it is safe
to pass it everywhere.

Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/398

4 years agomeson: set correct install path for gdb helper
Michael Olbrich [Sat, 11 May 2019 16:21:19 +0000 (18:21 +0200)]
meson: set correct install path for gdb helper

The original version of the patch used glib-2.0 but that was later changed
to gstreamer-1.0 for autotools. The meson file was forgotten.

Fix the path to match the one used in libgstreamer-gdb.py.in.

4 years agogst: Add support for g_autoptr(GstPromise)
Niels De Graef [Wed, 8 May 2019 10:11:50 +0000 (12:11 +0200)]
gst: Add support for g_autoptr(GstPromise)

4 years agoMake get_flex_version.py script executable
Niklas Hambüchen [Wed, 1 May 2019 13:46:56 +0000 (15:46 +0200)]
Make get_flex_version.py script executable

Like all other scripts in the same dir.

It has a hashbang, so it should be executable.

4 years agogst-inspect: fix unused-const-variable error in windows
Andoni Morales Alastruey [Wed, 24 Apr 2019 16:22:06 +0000 (18:22 +0200)]
gst-inspect: fix unused-const-variable error in windows

../tools/gst-inspect.c:44:20: error: 'DEFAULT_PAGER' defined but not used [-Werror=unused-const-variable=]

4 years agobase: Include gstbitwriter.h in the single-include header
Sebastian Dröge [Tue, 23 Apr 2019 14:33:34 +0000 (17:33 +0300)]
base: Include gstbitwriter.h in the single-include header

4 years agobitwriter: Fix inclusion of header in C++ code
Sebastian Dröge [Tue, 23 Apr 2019 15:00:59 +0000 (18:00 +0300)]
bitwriter: Fix inclusion of header in C++ code

../subprojects/gstreamer/libs/gst/base/gstbitwriter.h: In function 'gboolean _gst_bit_writer_check_remaining(GstBitWriter*, guint32)':
../subprojects/gstreamer/libs/gst/base/gstbitwriter.h:161:31: error: invalid conversion from 'gpointer' {aka 'void*'} to 'guint8*' {aka 'unsigned char*'} [-fpermissive]
   bitwriter->data = g_realloc (bitwriter->data, (new_bit_size >> 3));
                     ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

4 years agobitwriter: Mark the whole type as Since: 1.16
Sebastian Dröge [Tue, 23 Apr 2019 09:31:07 +0000 (12:31 +0300)]
bitwriter: Mark the whole type as Since: 1.16

4 years agocaps: Add Since: 1.16 marker to gst_caps_copy()
Sebastian Dröge [Tue, 23 Apr 2019 11:39:48 +0000 (14:39 +0300)]
caps: Add Since: 1.16 marker to gst_caps_copy()

4 years agoaggregator: Mark all public structs as Since: 1.14
Sebastian Dröge [Tue, 23 Apr 2019 11:54:03 +0000 (14:54 +0300)]
aggregator: Mark all public structs as Since: 1.14

4 years agolibs: Fix various Since markers
Sebastian Dröge [Tue, 23 Apr 2019 12:07:08 +0000 (15:07 +0300)]
libs: Fix various Since markers

4 years agogst: Fix various Since markers
Sebastian Dröge [Tue, 23 Apr 2019 12:08:18 +0000 (15:08 +0300)]
gst: Fix various Since markers

4 years agoci: use template from 1.16 branch
Tim-Philipp Müller [Thu, 2 May 2019 11:35:17 +0000 (12:35 +0100)]
ci: use template from 1.16 branch

5 years agoRelease 1.16.0
Tim-Philipp Müller [Thu, 18 Apr 2019 23:15:21 +0000 (00:15 +0100)]
Release 1.16.0

5 years agoUpdate docs
Tim-Philipp Müller [Thu, 18 Apr 2019 23:15:21 +0000 (00:15 +0100)]
Update docs

5 years agoUpdate translations
Tim-Philipp Müller [Thu, 18 Apr 2019 23:15:19 +0000 (00:15 +0100)]
Update translations

5 years agobasesrc: Downgrade EOS warning
Olivier Crête [Thu, 18 Apr 2019 08:13:51 +0000 (10:13 +0200)]
basesrc: Downgrade EOS warning

In the case of pushfilesrc, this is the expected behaviour, so let's
downgrade the warning to a debug message to avoid confusing users.

5 years agotests: basesrc: unref gst_bus_timed_pop_filtered return
Mathieu Duponchelle [Wed, 17 Apr 2019 18:46:58 +0000 (20:46 +0200)]
tests: basesrc: unref gst_bus_timed_pop_filtered return

5 years agogstinfo: clean up function pointer names hashtable
Mathieu Duponchelle [Tue, 16 Apr 2019 11:29:00 +0000 (13:29 +0200)]
gstinfo: clean up function pointer names hashtable

And add strduped function pointer names to the global quark
table, so that they don't get reported as lost by valgrind.

This allows us to use GST_DEBUG when running tests under
valgrind.

5 years agoaggregator: fix doc chunk for new buffer-consumed signal
Tim-Philipp Müller [Tue, 16 Apr 2019 22:50:15 +0000 (23:50 +0100)]
aggregator: fix doc chunk for new buffer-consumed signal

Fixes 'Warning: GstBase: incorrect number of parameters in
comment block, parameter annotations will be ignored.' from
g-ir-scanner.

5 years agotracer: latency: Don't compare element name as element Id is already unique
Julian Bouzas [Fri, 12 Apr 2019 13:23:52 +0000 (09:23 -0400)]
tracer: latency: Don't compare element name as element Id is already unique

5 years agotracer: latency: Remove redundant if conditions
Julian Bouzas [Fri, 12 Apr 2019 12:38:03 +0000 (08:38 -0400)]
tracer: latency: Remove redundant if conditions

5 years agotracer: latency: Make GST_DEBUG logs consistent
Julian Bouzas [Fri, 12 Apr 2019 12:34:49 +0000 (08:34 -0400)]
tracer: latency: Make GST_DEBUG logs consistent

5 years agotracer: latency: Fix bug when dropping sub-latency probe event
Julian Bouzas [Fri, 12 Apr 2019 12:28:22 +0000 (08:28 -0400)]
tracer: latency: Fix bug when dropping sub-latency probe event

Fixes #373

5 years agoevent: fix seek event creation
Philipp Zabel [Fri, 12 Apr 2019 14:37:18 +0000 (16:37 +0200)]
event: fix seek event creation

Creating seek events segfaults on 32-bit ARM since commit 2fa15d53717c
('event: add new seek parameter, "trickmode-interval"'), which missed
casting the trickmode-interval initializer in the variable argument list
to guint64.

5 years agogst-inspect: Do not print warning if 'less' is missing
Xavier Claessens [Thu, 11 Apr 2019 19:32:51 +0000 (15:32 -0400)]
gst-inspect: Do not print warning if 'less' is missing

5 years agoRelease 1.15.90
Tim-Philipp Müller [Wed, 10 Apr 2019 23:19:11 +0000 (00:19 +0100)]
Release 1.15.90

5 years agoUpdate docs
Tim-Philipp Müller [Wed, 10 Apr 2019 23:19:11 +0000 (00:19 +0100)]
Update docs

5 years agotracer: latency: Fix typo bug
Julian Bouzas [Wed, 10 Apr 2019 13:17:01 +0000 (09:17 -0400)]
tracer: latency: Fix typo bug

5 years agotracer: latency: Fix bug when storing latency probe event
Julian Bouzas [Wed, 10 Apr 2019 13:13:53 +0000 (09:13 -0400)]
tracer: latency: Fix bug when storing latency probe event

The pad name sotred in the latency event has no longer the name of the element,
so we have to get the element Id, element name and pad name values from the data
structure and compare all 3 values.

5 years agocontrolbinding: Check if the weak pointer was cleared before explicitly removing it
Sebastian Dröge [Wed, 10 Apr 2019 07:18:54 +0000 (10:18 +0300)]
controlbinding: Check if the weak pointer was cleared before explicitly removing it

Otherwise we'll get an assertion if the object behind the weak pointer
was already destroyed in the meantime as we would pass NULL as first
argument to g_object_remove_weak_pointer().

5 years agotracer: latency: Show element id, element name and pad name
Julian Bouzas [Tue, 9 Apr 2019 12:05:09 +0000 (08:05 -0400)]
tracer: latency: Show element id, element name and pad name

5 years agogst-stats: Add element latency support
Julian Bouzas [Mon, 25 Mar 2019 14:36:08 +0000 (15:36 +0100)]
gst-stats: Add element latency support

This will output latency information when parsing a log file with gst-stats that
has latency trace information. It will show the min, max and mean latency for
the pipeline and all its elements. It will also show the reported latency for
each element of the pipeline. Output example:

Latency Statistics:
pulsesrc0_src|fakesink0_sink: mean=190000043 min=190000043 max=190000043

Element Latency Statistics:
flacparse0_src: mean=45561281 min=654988 max=90467575
flacenc0_src: mean=89938883 min=81913512 max=97964254
flacdec0_src: mean=45804881 min=228962 max=91380801

Element Reported Latency:
pulsesrc0: min=10000000 max=200000000 ts=0:00:00.262846528
flacenc0: min=104489795 max=104489795 ts=0:00:00.262898616
flacparse0: min=0 max=0 ts=0:00:00.262927962

5 years agotracer: latency: Show per-element reported latency
Julian Bouzas [Thu, 21 Mar 2019 09:37:34 +0000 (10:37 +0100)]
tracer: latency: Show per-element reported latency

5 years agotracer: latency: Show element's source pad name instead of element's name
Julian Bouzas [Wed, 20 Mar 2019 11:20:48 +0000 (12:20 +0100)]
tracer: latency: Show element's source pad name instead of element's name

The full pad name gives more information than the element's name, which is very
useful when elements have multiple source pads.

5 years agolatency: Dot not override already stored events
Nicolas Dufresne [Tue, 19 Mar 2019 01:55:50 +0000 (21:55 -0400)]
latency: Dot not override already stored events

First, the event would be leaved, but also when an element takes
several buffers before producing one, we want the reported latency to be
the aggregation, so the distance from the oldest buffer.

5 years agotracer: latency: Add parameter to select latency type
Nicolas Dufresne [Wed, 31 Oct 2018 20:50:48 +0000 (16:50 -0400)]
tracer: latency: Add parameter to select latency type

This sets back the default to trace only pipeline latency, and add flags
to enabled element tracing. It is now possible to only trace element
latency, only trace pipeline latency, trace both or none.

5 years agotracer: latency: Add per element latency tracer
Nicolas Dufresne [Fri, 6 Jul 2018 21:08:24 +0000 (17:08 -0400)]
tracer: latency: Add per element latency tracer

This adds per element latency tracing.

5 years agotracer: Don't pass pads inside GstEvent
Nicolas Dufresne [Wed, 4 Jul 2018 18:18:42 +0000 (14:18 -0400)]
tracer: Don't pass pads inside GstEvent

This removes the passing of pad inside of a GstEvent. While this is not
a bug, it may affect the live time of the pad, hense change the pipeline
behaviour.

5 years agobasesrc: do not send EOS when automatic_eos is FALSE
Mathieu Duponchelle [Tue, 13 Nov 2018 20:19:22 +0000 (21:19 +0100)]
basesrc: do not send EOS when automatic_eos is FALSE

5 years agoaggregator: add buffer-consumed pad signal
Mathieu Duponchelle [Mon, 1 Apr 2019 10:22:49 +0000 (12:22 +0200)]
aggregator: add buffer-consumed pad signal

The signal will be emitted when a buffer was consumed on
a pad, if the newly-added "emit-signals" property has been
set to TRUE.

Handlers connected to the signal will receive a valid reference on
the consumed buffer, allowing for example the retrieval of metas in
order to forward them once an output buffer is pushed out.

5 years agogst-inspect: fix printing the first field of a GstStructure
Antonio Ospite [Fri, 5 Apr 2019 09:43:53 +0000 (11:43 +0200)]
gst-inspect: fix printing the first field of a GstStructure

When printing a GstStructure property (e.g. the "stats" property in
rtpsession) the first field is printed on the same line of the type
description, and this is both inconsistent compared to  how Enum values
are printed and confusing as the reader might miss the first field.

To fix this, add a newline before printing GstStructure fields in
properties.

NOTE: this does not change the existing inconsistent behavior of an
extra newline *after* a GstStructure property, but the latter is not as
annoying and it would take more effort to fix because GstStructure
fields are printed in CAPS descriptions too.

5 years agoevent: add new seek parameter, "trickmode-interval"
Mathieu Duponchelle [Mon, 1 Apr 2019 16:34:07 +0000 (18:34 +0200)]
event: add new seek parameter, "trickmode-interval"

When performing a key unit trickmode seek, it may be useful to
specify a minimum interval between the output frames, either
in very high rate cases, or as a protection against streams
that may contain an overly large amount of key frames.

One use case is ONVIF Section 6.5.3:

<https://www.onvif.org/specs/stream/ONVIF-Streaming-Spec.pdf>

5 years agotests: add the valgrind suppression file from the "common" module
Antonio Ospite [Fri, 22 Mar 2019 16:46:03 +0000 (17:46 +0100)]
tests: add the valgrind suppression file from the "common" module

Other gstreamer repositories have their own valgrind suppression file
directly in the repository.

Add a suppression file to the core gstreamer repository too, this makes
it easier to use it with gst-build which does not check out the common
module.

This is also a little step towards the removal of the common submodule.

NOTE: the added file is the latest version from the "common" repository
but it has been renamed from gst.supp to gstreamer.supp for symmetry
with the suppression files in the other repositories.

5 years agog-i: pass --quiet to g-ir-scanner
Tim-Philipp Müller [Sat, 23 Mar 2019 18:31:42 +0000 (18:31 +0000)]
g-i: pass --quiet to g-ir-scanner

This suppresses the annoying 'g-ir-scanner: link: cc ..' output
that we get even if everything works just fine.

We still get g-ir-scanner warnings and compiler warnings if
we pass this option.

5 years agocheck: suppress some g-i warnings
Tim-Philipp Müller [Sat, 23 Mar 2019 18:17:43 +0000 (18:17 +0000)]
check: suppress some g-i warnings

gstcheck.c:142: Warning: GstCheck: gst_check_add_log_filter: return value: Invalid non-constant return of bare structure or union; register as boxed type or (skip)
gstcheck.h:178: Warning: GstCheck: gst_check_run_suite: argument suite: Unresolved type: 'Suite*'

5 years agog-i: silence 'nested extern' compiler warnings when building scanner binary
Tim-Philipp Müller [Sat, 23 Mar 2019 17:53:54 +0000 (17:53 +0000)]
g-i: silence 'nested extern' compiler warnings when building scanner binary

We need a nested extern in our init section for the scanner binary
so we can call gst_init to make sure GStreamer types are initialised
(they are not all lazy init via get_type functions, but some are in
exported variables). There doesn't seem to be any other mechanism to
achieve this, so just remove that warning, it's not important at all.

5 years agobitwriter: mark as 'skip' for gobject-introspection
Tim-Philipp Müller [Sat, 23 Mar 2019 17:53:07 +0000 (17:53 +0000)]
bitwriter: mark as 'skip' for gobject-introspection

Silences g-ir-scanner warnings. We do the same for ByteWriter.

5 years agoaggregator: don't leak gap buffer when out of segment
Matthew Waters [Thu, 21 Mar 2019 07:55:16 +0000 (18:55 +1100)]
aggregator: don't leak gap buffer when out of segment

5 years agoaggregator: take the pad lock around queue gap event removal
Matthew Waters [Thu, 21 Mar 2019 07:47:04 +0000 (18:47 +1100)]
aggregator: take the pad lock around queue gap event removal

As is done for every other queue interaction

5 years agobaseparse: don't reset the disable-passthrough property value
Matthew Waters [Wed, 20 Mar 2019 06:43:02 +0000 (17:43 +1100)]
baseparse: don't reset the disable-passthrough property value

Resetting as a result of _reset() on PAUSED->READY is unexpected.

5 years agogst_element_get_factory: update documentation
Stephane Cerveau [Thu, 14 Mar 2019 10:59:43 +0000 (11:59 +0100)]
gst_element_get_factory: update documentation

Inform about a potential NULL result.

5 years agogst_element_factory_get_metadata: protect from null factory
Stephane Cerveau [Wed, 13 Mar 2019 17:46:14 +0000 (18:46 +0100)]
gst_element_factory_get_metadata: protect from null factory

5 years agoUpdate README
Damian Vicino [Tue, 12 Mar 2019 21:19:23 +0000 (21:19 +0000)]
Update README

5 years agoUpdate README to have correct name of the license file documented (COPYING).
Damian Vicino [Tue, 12 Mar 2019 20:12:37 +0000 (20:12 +0000)]
Update README to have correct name of the license file documented (COPYING).
There is no LICENSE file in the root directory, and COPYING file content is a license file.

5 years agotests: fdsrc: Exclude unit test on Windows
Seungha Yang [Sun, 10 Mar 2019 06:35:39 +0000 (15:35 +0900)]
tests: fdsrc: Exclude unit test on Windows

Since elements_fdsrc.test_num_buffers uses blocking pipe on Windows,
the test will never be finished. But emulating non-blocking fd without
win32 APIs on Windows is a little tricky.

5 years agogsttaskpool: Do not block tasks while cleaning up the taskpool
Santiago Carot-Nemesio [Fri, 8 Mar 2019 15:19:29 +0000 (16:19 +0100)]
gsttaskpool: Do not block tasks while cleaning up the taskpool

There is a deadlock if any thread from the pool tries to push
a new task while other thread is waiting for the pool of threads
to finish. With this patch the thread will get an error when it
tries to add a new task while the taskpool is being cleaned up.

5 years agogsturi: Fix annotation on get_path to return a nullable
Marco Trevisan (Treviño) [Wed, 6 Mar 2019 18:46:46 +0000 (19:46 +0100)]
gsturi: Fix annotation on get_path to return a nullable

Use proper syntax or the (nullable): part will be part of the description

5 years agogstmessage: Fix annotations on details
Marco Trevisan (Treviño) [Wed, 6 Mar 2019 18:34:12 +0000 (19:34 +0100)]
gstmessage: Fix annotations on details

Details argument should be nullable, but the docstring uses a wrong syntax.

5 years agotests: fix leak in buffer test_wrapped_bytes test
Tim-Philipp Müller [Wed, 6 Mar 2019 09:04:54 +0000 (09:04 +0000)]
tests: fix leak in buffer test_wrapped_bytes test

5 years agogstbuffer: store meta in add order
Mathieu Duponchelle [Fri, 1 Mar 2019 10:59:14 +0000 (11:59 +0100)]
gstbuffer: store meta in add order

The previous implementation of add was implemented as a prepend,
switch to append as that seems like the expected order.

5 years agoBack to development
Tim-Philipp Müller [Mon, 4 Mar 2019 09:01:07 +0000 (09:01 +0000)]
Back to development

5 years agotaskpool: Set error in case something goes wrong in the default handlers
Santiago Carot-Nemesio [Thu, 28 Feb 2019 15:48:57 +0000 (16:48 +0100)]
taskpool: Set error in case something goes wrong in the default handlers

5 years agoRelease 1.15.2
Tim-Philipp Müller [Tue, 26 Feb 2019 11:38:00 +0000 (11:38 +0000)]
Release 1.15.2

5 years agomeson: dist get_flex_version.py
Tim-Philipp Müller [Tue, 26 Feb 2019 13:23:47 +0000 (13:23 +0000)]
meson: dist get_flex_version.py