platform/upstream/gstreamer.git
3 years agomultiqueue: skip buffering except audio and video 92/259092/1 accepted/tizen_6.5_unified tizen_6.5 accepted/tizen/6.5/unified/20211029.013458 accepted/tizen/unified/20210624.131907 submit/tizen/20210616.025147 submit/tizen/20210621.051655 submit/tizen_6.5/20211028.163401 tizen_6.5.m2_release
Eunhye Choi [Mon, 31 May 2021 11:41:40 +0000 (20:41 +0900)]
multiqueue: skip buffering except audio and video

- invalid buffering msg is posted by text track which data is too small.
  so consider the audio and video track only for buffering.

Change-Id: Ib4d579dbbba7c3c105ed67e8f287c972ba9386fa

3 years agoclocksync: Add new clocksync element 75/253675/3 accepted/tizen/unified/20210422.005314 submit/tizen/20210421.120517
Jan Schmidt [Mon, 24 Feb 2020 17:47:35 +0000 (04:47 +1100)]
clocksync: Add new clocksync element

The clocksync element is a generic element that can be
placed in a pipeline to synchronise passing buffers to the
clock at that point. This is similar to 'identity sync=true',
but because it isn't GstBaseTransform-based, it can process
GstBufferLists without breaking them into separate GstBuffers

Change-Id: Iacf0e49aa9e595c0270852f5ce1369bae18e25cd

3 years agogsturi: Add new API for storing unmodified userinfo / fragment 79/253379/3
Nirbheek Chauhan [Thu, 30 Jul 2020 14:01:55 +0000 (19:31 +0530)]
gsturi: Add new API for storing unmodified userinfo / fragment

New API: gst_uri_from_string_escaped()

Identical to gst_uri_from_string() except that the userinfo and
fragment components of the URI will not be unescaped while parsing.

This is needed for correctly parsing usernames or passwords with `:`
in them such as reported at:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/831

Change-Id: Ib46abff5f24e259a5e505092fcc99b3fdc82ca3e
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/583>

3 years agotests: Add more tests for gsturi 78/253378/3
Nirbheek Chauhan [Fri, 31 Jul 2020 20:27:06 +0000 (01:57 +0530)]
tests: Add more tests for gsturi

Add tests that exercise unescaping of userinfo and fragments.

Also convert to a modular macro-based definition so that we can reuse
the list of tests in the next commit.

Change-Id: I2229a7d106096ce4525059cff3d4c3c329bb98fc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/583>

3 years agoqueue2: resolve buffering issue 01/253101/5 accepted/tizen/unified/20210208.134758 submit/tizen/20210205.064935
Eunhye Choi [Thu, 4 Feb 2021 11:20:08 +0000 (20:20 +0900)]
queue2: resolve buffering issue

set seek threshold based on the in_rate value
to reduce the seek request which make slow the data receiving
by additional http server connection.

Change-Id: Id64200028761704c6019f5d42e6fe49547dad6a0

3 years agobaseparse: Don't return more data than asked for in pull_range() 32/244932/1 accepted/tizen/unified/20201102.124429 submit/tizen/20201028.052639
Jan Schmidt [Wed, 8 Apr 2020 07:53:17 +0000 (17:53 +1000)]
baseparse: Don't return more data than asked for in pull_range()

Even when pulling a new 64KB buffer from upstream, don't return
more data than was asked for in the pull_range() method and then
return less later, as that confused subclasses like h264parse.

Add a unit test that when a subclass asks for more data, it always
receives a larger buffer on the next iteration, never less.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/530

Change-Id: Id2e903a3a859b048baebb387b00cebf6658b477d

3 years agobaseparse: Fix upstream read caching 31/244931/3
Jan Schmidt [Tue, 31 Mar 2020 15:36:40 +0000 (02:36 +1100)]
baseparse: Fix upstream read caching

When running in pull mode (for e.g. mp3 reading),
baseparse currently reads 64KB from upstream, then mp3parse
consumes typically around 417/418 bytes of it. Then
on the next loop, it will read a full fresh 64KB again,
which is a big waste.

Fix the read loop to use the available cache buffer first
before going for more data, until the cache drops to < 1KB.

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

Change-Id: Ica6d6cf09e3797eff16e2450de405bfef0ac16a2

4 years agospec: Add typelib 72/233972/2 accepted/tizen/6.0/unified/20201030.110934 accepted/tizen/6.0/unified/hotfix/20201102.233539 accepted/tizen/6.0/unified/hotfix/20201103.051752 accepted/tizen/unified/20200610.015615 submit/tizen/20200602.084810 submit/tizen/20200609.025115 submit/tizen_6.0/20201029.205502 submit/tizen_6.0_hotfix/20201102.192902 submit/tizen_6.0_hotfix/20201103.115102 tizen_6.0.m2_release
Gilbok Lee [Thu, 21 May 2020 02:06:25 +0000 (11:06 +0900)]
spec: Add typelib

- for python, C# bindings

Change-Id: I669b12b2bd376d60694c7b84c58e1d3695f42d54

4 years agogdb: Import print_function for using python3 30/230430/1 accepted/tizen/unified/20200415.121423 submit/tizen/20200413.123659
Gilbok Lee [Fri, 10 Apr 2020 03:20:58 +0000 (12:20 +0900)]
gdb: Import print_function for using python3

Change-Id: I46449697102d388580c0f4da4b861463f359a17e

4 years agoelementfactory: add GST_ELEMENT_FACTORY_TYPE_HARDWARE 40/230340/2
Víctor Manuel Jáquez Leal [Sat, 2 Nov 2019 14:06:28 +0000 (15:06 +0100)]
elementfactory: add GST_ELEMENT_FACTORY_TYPE_HARDWARE

This new symbol matches with the elements within "Hardware" class.

cherry-pick from upstream
commit id: 9707db909d1438d9a1bc85554be8a2a741be4771

Change-Id: I1d28757bd68fe3247321bad188daf24107769399

4 years agoinput-selector: resolve deadlock issue 78/227578/2 accepted/tizen/unified/20200325.055656 submit/tizen/20200317.044702 submit/tizen/20200323.055218 submit/tizen/20200324.013709
Eunhye Choi [Fri, 13 Mar 2020 02:51:14 +0000 (11:51 +0900)]
input-selector: resolve deadlock issue

- deadlock can be occurred by bitrate query during
  pipeline reconfiguration.
- the query is required by queue2 and almost demux reply
  the request but not all.
- deadlock can be resolved by forwarding the query to srcpad directly.
- queue2: revert bea8fc39a4798aafa5daeec6bc785937f916311d
  which is temporary patch to avoid deadlock

Change-Id: I499d1fe27cfd9db3ef66197b5b3b752c71d3446d

4 years agogstutil: Add GST_API to the missing function 60/226560/1
Gilbok Lee [Wed, 4 Mar 2020 01:25:16 +0000 (10:25 +0900)]
gstutil: Add GST_API to the missing function

- For external uses, macro is applied.

Change-Id: I28470f85c8f5677a039ca790cacfd1866bd20bff

4 years agoqueue2: Didn't qeury bitrate when receive reconfigure event 56/226456/1 accepted/tizen/unified/20200304.124013 submit/tizen/20200302.032418
Gilbok Lee [Tue, 3 Mar 2020 03:44:53 +0000 (12:44 +0900)]
queue2: Didn't qeury bitrate when receive reconfigure event

- some streaming case(rtsp, mp3/ogv http streaming)  occurs deadlock

Change-Id: I5cfefe81e46efa786ae3852582370275f2be4b90

4 years agoMerge branch 'tizen_gst_1.16.2' into tizen 90/225590/1 submit/tizen/20200221.064623
Gilbok Lee [Fri, 21 Feb 2020 06:21:02 +0000 (15:21 +0900)]
Merge branch 'tizen_gst_1.16.2' into tizen

Change-Id: I34a9393f94c541fe1858823bc8a8b05bd2a8520e

4 years agoqueue2: remove file buffering patch 92/225492/2
Eunhye Choi [Thu, 20 Feb 2020 07:41:05 +0000 (16:41 +0900)]
queue2: remove file buffering patch

- tizen do not use file buffering.
  remove the file buffering related patches.

Change-Id: I0563fe6d9dcb777f7ad7baa237416a6ff563cf6c

4 years agoMerge branch 'upstream/1.16' into tizen_gst_1.16.2 76/222676/2
Gilbok Lee [Fri, 17 Jan 2020 06:23:33 +0000 (15:23 +0900)]
Merge branch 'upstream/1.16' into tizen_gst_1.16.2

Change-Id: Id3610264e91d151112ccf14d486e27e251f3ca78

4 years agoqueue2: handle overwriting the current range correctly 21/221921/2 accepted/tizen/unified/20200116.120457 submit/tizen/20200108.110116 submit/tizen/20200109.095851
Eunhye Choi [Wed, 8 Jan 2020 08:20:59 +0000 (17:20 +0900)]
queue2: handle overwriting the current range correctly

- resolve the range handle issue

side issue of below upstream patch.
https://gitlab.freedesktop.org/gstreamer/gstreamer/commit/b3802f7a9e7988901367196dd3dc45cf4053d850
and the new patch is under reviewing.
https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/208

Change-Id: Id368b546cb6fd40b29681c4111037c2913d9cd80

4 years agomultiqueue: include time criteria to check buffer level 63/221063/1 accepted/tizen/unified/20191230.050133 submit/tizen/20191227.015629
Eunhye Choi [Fri, 27 Dec 2019 01:36:24 +0000 (10:36 +0900)]
multiqueue: include time criteria to check buffer level

if the bytes is disabled,
time should be used to check buffer level.

Change-Id: I55983123cf20c8a5c81ce037ccdd02cf53041ac9

4 years agoRelease 1.16.2 1.16.2
Tim-Philipp Müller [Tue, 3 Dec 2019 10:57:30 +0000 (10:57 +0000)]
Release 1.16.2

4 years agoUpdate docs
Tim-Philipp Müller [Tue, 3 Dec 2019 10:57:30 +0000 (10:57 +0000)]
Update docs

4 years agoUpdate translations
Tim-Philipp Müller [Tue, 3 Dec 2019 10:57:29 +0000 (10:57 +0000)]
Update translations

4 years agoRevert "gst/parse: define pure-parser depending on bison version"
Tim-Philipp Müller [Tue, 3 Dec 2019 10:40:37 +0000 (10:40 +0000)]
Revert "gst/parse: define pure-parser depending on bison version"

This reverts commit 77141834bb5d124fb5781ed3be6230cc66cb42de.

This breaks the autotools build and it seems too much effort to
fix that up just to fix a bison warning.

4 years agotracers: Don't leak temporary GstStructure
Edward Hervey [Wed, 27 Nov 2019 14:47:32 +0000 (15:47 +0100)]
tracers: Don't leak temporary GstStructure

CID: 1455462

4 years agogst/parse: define pure-parser depending on bison version
Víctor Manuel Jáquez Leal [Mon, 26 Aug 2019 10:48:28 +0000 (12:48 +0200)]
gst/parse: define pure-parser depending on bison version

After release bison 2.5 the declaration %pure-parser was deprecated
in favor of %define api.pure

Nonetheless, until bison 3.4, the declaration was treated as backward
compatibility, but now bison shows a warning:

  warning: deprecated directive, use ‘%define api.pure’

The patch's approach is to handle both directives according with the
used bison's version, by string replacement at source configuration
stage.

4 years agotee: First deactivate the pad and then remove it when releasing pads
Sebastian Dröge [Thu, 24 Oct 2019 22:41:27 +0000 (01:41 +0300)]
tee: First deactivate the pad and then remove it when releasing pads

This reverts a96002bb28c21b30fb9338a4620ad20504c70aa5, which is not
necessary anymore. If we release the pad after removing it then none of
the deactivation code will actually be called because the pad has no
parent anymore, and we require a parent on the pad for deactivation to
happen.

This can then, among other things, cause a streaming thread to be still
stuck in a pad probe because the pad was never flushed, and waiting
there forever because now the pad will actually never be flushed anymore.

4 years agotee: Check for the removed pad flag also in the slow pushing path
Sebastian Dröge [Thu, 24 Oct 2019 22:39:50 +0000 (01:39 +0300)]
tee: Check for the removed pad flag also in the slow pushing path

If a pad is currently being released we don't want to forward the
FLUSHING flow return but instead consider it as NOT_LINKED. FLUSHING
would also cause upstream to be FLUSHING.

This part was missed in a3c4a3201a705eb1934ceeea34d1ca42d4571c07 and
resulted in a different (and wrong) workaround in
a96002bb28c21b30fb9338a4620ad20504c70aa5.

4 years agotee: Lock mutex before reading the removed flag of the pads
Sebastian Dröge [Thu, 24 Oct 2019 22:39:05 +0000 (01:39 +0300)]
tee: Lock mutex before reading the removed flag of the pads

Otherwise we're not guaranteed to read the very latest value that
another thread might've written in there when the pad was released, and
could instead work with an old value.

4 years agobin: Drop need-context messages without source instead of crashing
Sebastian Dröge [Mon, 30 Sep 2019 08:34:51 +0000 (11:34 +0300)]
bin: Drop need-context messages without source instead of crashing

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 ago[ptp-helper] set none as permission opt 62/213662/1 accepted/tizen_5.5_unified_mobile_hotfix tizen_5.5_mobile_hotfix accepted/tizen/5.5/unified/20191031.010500 accepted/tizen/5.5/unified/mobile/hotfix/20201027.063720 accepted/tizen/unified/20190916.043529 submit/tizen/20190911.030136 submit/tizen_5.5/20191031.000006 submit/tizen_5.5_mobile_hotfix/20201026.185106 tizen_5.5.m2_release
Eunhye Choi [Tue, 10 Sep 2019 03:41:20 +0000 (12:41 +0900)]
[ptp-helper] set none as permission opt

- setuid bit is enabled by the default permission opt.
- set none for permission option to resolve security issue

Change-Id: Ic809b971a9a2f235a6905a8772b37a76a26cda1b

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

5 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.