platform/upstream/gstreamer.git
5 years agogdb: print more data for segment events
Michael Olbrich [Sat, 11 May 2019 19:08:50 +0000 (21:08 +0200)]
gdb: print more data for segment events

This add the different timestamps for segment events:

(gdb) gst-print pad
SrcPad(src, push) {
  events:
[...]
    segment: time
      rate: 1.1
      start:    0:03:08.449753330
      time:     0:03:08.449753330
      position: 0:03:08.449753330
      duration: 0:12:14.166687500
[...]
}

5 years agogdb: add 'gst-pipeline-tree' command
Michael Olbrich [Sat, 11 May 2019 19:02:37 +0000 (21:02 +0200)]
gdb: add 'gst-pipeline-tree' command

It shows a simple tree of all elements in pipeline.
As with gst-dot, the toplevel bin is found from any element of the
pipeline:

(gdb) gst-pipeline-tree bsink
playbin
  inputselector1
  inputselector0
  uridecodebin0
    queue2-0
    decodebin0
      avdec_aac0
      aacparse0
      vaapidecodebin0
        vaapipostproc0
        capsfilter1
        vaapi-queue
        vaapidecode0
      capsfilter0
      h264parse0
      multiqueue0
      matroskademux0
      typefind
    typefindelement0
    source
  playsink
    abin
      aconv
        resample
        conv
        identity
      aqueue
      pulsesink0
    vbin
      vconv
        scale
        conv
        identity
      vqueue
      vaapisink0
    vdbin
      deinterlace
      vdconv
    audiotee
    streamsynchronizer0

5 years agogdb: add gst_pipeline() and gst_bin_get() functions
Michael Olbrich [Sat, 11 May 2019 18:59:04 +0000 (20:59 +0200)]
gdb: add gst_pipeline() and gst_bin_get() functions

This simplifies navigating in a GStreamer pipeline, e.g.

(gdb) print $gst_bin_get($gst_pipeline(pad), "matroskademux0")
$1 = 0x7fffe81b4050 [GstMatroskaDemux|matroskademux0]

5 years agogdb: handle ghost and proxy pads while looking for the top-level element
Michael Olbrich [Sat, 11 May 2019 18:55:36 +0000 (20:55 +0200)]
gdb: handle ghost and proxy pads while looking for the top-level element

The parent object for pads is not always a GstElement. Handle GstProxyPad
parents as well.

5 years agogdb: refactor finding top-level pipeline
Michael Olbrich [Sat, 11 May 2019 18:53:54 +0000 (20:53 +0200)]
gdb: refactor finding top-level pipeline

No functional changes. Just refactoring to make it possible to reuse this
later.

5 years agogdb: gst-print add more pad and element information
Michael Olbrich [Sat, 11 May 2019 18:53:05 +0000 (20:53 +0200)]
gdb: gst-print add more pad and element information

For elements, this adds all child elements, the state and base/start time:

(gdb) gst-print pipeline
0x5555556ebd20 "pipeline0"
GstPipeline(pipeline0) {
    children:
      fakesink0
      queue0
      videotestsrc0
    state: PLAYING
    base_time: +2:54:36.892581150
    start_time: 0:00:00.000000000
}

For pads, this adds the peer pads and the current task state and the
offset (if not zero):

(gdb) gst-print pad
SrcGhostPad(src, push) {
  events:
    [...]
  peer: vaapisink0:sink
  inner peer: scale:src
}

(gdb) gst-print pad
SrcPad(src, push) {
  events:
    [...]
  peer: queue0:sink
  task: STARTED
  offset: 30000000 [+0:00:00.030000000]
}

5 years agogdb: refactor time formating
Michael Olbrich [Sat, 11 May 2019 18:39:00 +0000 (20:39 +0200)]
gdb: refactor time formating

Make it reuseable independent of the GstClockTimePrinter.

5 years agodataurisrc: Add test that checks various URIs against their expected output
Sebastian Dröge [Wed, 22 May 2019 07:44:50 +0000 (10:44 +0300)]
dataurisrc: Add test that checks various URIs against their expected output

5 years agodataurisrc: Fix crash when semicolon is aprt of data
Benjamin Otte [Tue, 21 May 2019 15:22:04 +0000 (17:22 +0200)]
dataurisrc: Fix crash when semicolon is aprt of data

This URI is valid:
  data:,;base64
(It encodes the literal string ";base64")

But would lead to a crash because the code assumed the semicolon would
be placed before the colon.

5 years agodataurisrc: Allow case-insensitive scheme
Benjamin Otte [Tue, 21 May 2019 15:15:52 +0000 (17:15 +0200)]
dataurisrc: Allow case-insensitive scheme

Quoting RFC 2396:

  For resiliency, programs interpreting URI should treat upper case
  letters as equivalent to lower case in scheme names (e.g., allow
  "HTTP" as well as "http").

5 years agodocs: add coretracers to the list of plugins
Matthew Waters [Thu, 16 May 2019 06:17:35 +0000 (16:17 +1000)]
docs: add coretracers to the list of plugins

5 years agodocs: Stop building the doc cache by default
Thibault Saunier [Thu, 16 May 2019 13:11:00 +0000 (09:11 -0400)]
docs: Stop building the doc cache by default

Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36

5 years agodocs: Update diplayed plugins filename something stable
Thibault Saunier [Thu, 16 May 2019 02:46:45 +0000 (22:46 -0400)]
docs: Update diplayed plugins filename something stable

5 years agohotdoc: Let the the registry inspect in forks
Thibault Saunier [Thu, 16 May 2019 01:15:35 +0000 (21:15 -0400)]
hotdoc: Let the the registry inspect in forks

So that the whole process doesn't segfault if something bad happens while inspecting

5 years agodocs: Use the MESON_BUILD_ROOT env variable in the plugins cache generator
Thibault Saunier [Wed, 15 May 2019 13:23:06 +0000 (09:23 -0400)]
docs: Use the MESON_BUILD_ROOT env variable in the plugins cache generator

5 years agodocs: Do not pass the json through stdout
Thibault Saunier [Tue, 14 May 2019 19:27:05 +0000 (15:27 -0400)]
docs: Do not pass the json through stdout

Unicode encoding breaks on windows when doing so

5 years agoregistry: Avoid discovering plugins in hotdoc private directories
Thibault Saunier [Tue, 14 May 2019 17:44:43 +0000 (13:44 -0400)]
registry: Avoid discovering plugins in hotdoc private directories

5 years agodocs: Do not inspect internal files
Thibault Saunier [Tue, 14 May 2019 17:44:24 +0000 (13:44 -0400)]
docs: Do not inspect internal files

5 years agodocs: Always follow Unix style newline
Seungha Yang [Tue, 14 May 2019 11:27:47 +0000 (20:27 +0900)]
docs: Always follow Unix style newline

The 'open()' follows default behavior of OS (CRLF in case of Windows).
So it results in a bunch of git diff on Windows.

5 years agobasesink: Remove leading space from Since maker of gst_base_sink_get_stats()
Sebastian Dröge [Thu, 16 May 2019 12:15:27 +0000 (15:15 +0300)]
basesink: Remove leading space from Since maker of gst_base_sink_get_stats()

gobject-introspection does not like this.

5 years agobasesink: Fix syntax for gtk-doc comment of the new stats property
Sebastian Dröge [Thu, 16 May 2019 12:13:23 +0000 (15:13 +0300)]
basesink: Fix syntax for gtk-doc comment of the new stats property

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

5 years agofilesink: Implement workaround for some (network) filesystems that spuriously return...
Sebastian Dröge [Mon, 6 May 2019 19:17:50 +0000 (22:17 +0300)]
filesink: Implement workaround for some (network) filesystems that spuriously return EACCES on write

This seems to happen when another client is accessing the file at the
same time, and retrying after a short amount of time solves it.

Sometimes partial data is written at that point already but we have no
idea how much it is, or if what was written is correct (it sometimes
isn't) so we always first seek back to the current position and repeat
the whole failed write.

It happens at least on Linux and macOS on SMB/CIFS and NFS file systems.

Between write attempts that failed with EACCES we wait 10ms, and after
enough consecutive tries that failed with EACCES we simply time out.

In theory a valid EACCES for files to which we simply have no access
should've happened already during the call to open(), except for NFS
(see open(2)).

This can be enabled with the new max-transient-error-timeout property, and
a new o-sync boolean property was added to open the file in O_SYNC mode
as without that it's not guaranteed that we get EACCES for the actual
writev() call that failed but might only get it at a later time.

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

5 years agogstreamer.pc.in: exec_prefix must be defined before libexecdir
Aaron Boxer [Tue, 14 May 2019 19:44:07 +0000 (15:44 -0400)]
gstreamer.pc.in: exec_prefix must be defined before libexecdir

5 years agodocs: Update plugins cache
Thibault Saunier [Tue, 14 May 2019 02:47:38 +0000 (22:47 -0400)]
docs: Update plugins cache

5 years agodocs: Fix cache invalidation status
Thibault Saunier [Tue, 14 May 2019 02:47:05 +0000 (22:47 -0400)]
docs: Fix cache invalidation status

The dictionnary is updated in place so we were checking the same twice

5 years agodocs: Use the new GstPluginsPath.json to have the right plugin path
Thibault Saunier [Sun, 11 Nov 2018 23:11:47 +0000 (20:11 -0300)]
docs: Use the new GstPluginsPath.json to have the right plugin path

When inspecting plugins to generate the json cache file. Otherwise
when we are not in the uninstalled env and using `gst-build` plugins
with dependency might fail/throw warning, etc..

5 years agopkgconfig: Add information about libexecdir
Thibault Saunier [Sun, 28 Oct 2018 12:05:41 +0000 (12:05 +0000)]
pkgconfig: Add information about libexecdir

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

5 years agodoc: Update the README
Thibault Saunier [Thu, 13 Sep 2018 19:14:22 +0000 (16:14 -0300)]
doc: Update the README

5 years agodoc: Fix hotdoc warnings
Thibault Saunier [Sun, 19 Aug 2018 22:41:41 +0000 (19:41 -0300)]
doc: Fix hotdoc warnings

* Making sure that `static inline` function are in the GIR (by first
  defining them, and make sure to mark as skiped)
* Do not try to link to unexisting symbols
* Also generate GIR information about gst_tracers

5 years agoPort to hotdoc
Thibault Saunier [Mon, 22 Oct 2018 06:14:11 +0000 (03:14 -0300)]
Port to hotdoc

5 years agodoc: Remove gtk-doc support
Thibault Saunier [Fri, 14 Sep 2018 12:24:26 +0000 (09:24 -0300)]
doc: Remove gtk-doc support

5 years agogst: Add a GParamSpecFlag to force gst-inspect to use pspec default value
Thibault Saunier [Sat, 11 Aug 2018 14:12:27 +0000 (10:12 -0400)]
gst: Add a GParamSpecFlag to force gst-inspect to use pspec default value

Instead of the object value, this should be used every time a random
value will be returned by g_object_get This is also useful to make the
values returned by inspecting element stable accross runs.

5 years agodoc: Add some missing docstrings
Thibault Saunier [Mon, 22 Oct 2018 09:44:04 +0000 (11:44 +0200)]
doc: Add some missing docstrings

5 years agodoc: Fix and add some missing docstrings
Thibault Saunier [Mon, 22 Oct 2018 09:32:45 +0000 (11:32 +0200)]
doc: Fix and add some missing docstrings

5 years agostructure: Mark _from_string as constructor
Thibault Saunier [Mon, 22 Oct 2018 09:32:40 +0000 (11:32 +0200)]
structure: Mark _from_string as constructor

5 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

5 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

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

5 years agouri: Add gst_clear_uri()
Niels De Graef [Fri, 10 May 2019 12:51:15 +0000 (14:51 +0200)]
uri: Add gst_clear_uri()

Basically, you can use this instead of using `gst_uri_unref()` (which
needs to be preceded by a NULL-check).

See https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/275
and https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/3

5 years agogstbasesink: Fix gir annotation
Víctor Manuel Jáquez Leal [Thu, 9 May 2019 06:59:59 +0000 (08:59 +0200)]
gstbasesink: Fix gir annotation

5 years agogstbasesink: add stats getter method
Aaron Boxer [Sat, 26 Jan 2019 15:40:19 +0000 (10:40 -0500)]
gstbasesink: add stats getter method

fixes #355

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

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

5 years agogst-stats: format latency as GST_TIME
Guillaume Desmottes [Thu, 25 Apr 2019 05:11:54 +0000 (10:41 +0530)]
gst-stats: format latency as GST_TIME

Latency is easier to read when formatted as time rather than displayed
as a flat number in ns.
Especially when displaying GST_CLOCK_TIME_NONE which is now formated as
99:99:99.999999999 instead of 18446744073709551615.

5 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=]

5 years agogstsegment: Add GST_SEEK_FLAG_TRICKMODE_FORWARD_PREDICTED
Mathieu Duponchelle [Mon, 12 Nov 2018 18:59:41 +0000 (19:59 +0100)]
gstsegment: Add GST_SEEK_FLAG_TRICKMODE_FORWARD_PREDICTED

This is generally useful, and mandated by the ONVIF streaming
spec, section 6.5.3

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

5 years agomeson: check for libcap via pkg-config
Rasmus Thomsen [Sat, 20 Apr 2019 20:26:52 +0000 (22:26 +0200)]
meson: check for libcap via pkg-config

It's possible that setcap is installed, but the libcap headers/libs aren't (e.g.
during cross compilation, when you have the program installed for the host,
but need the headers of the target). Also removes the need to manually check
for the libcap headers.

5 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));
                     ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5 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

5 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 agolibs: Fix various Since markers
Sebastian Dröge [Tue, 23 Apr 2019 12:07:08 +0000 (15:07 +0300)]
libs: Fix various Since markers

5 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

5 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()

5 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

5 years agonetutils: make gst_net_utils_set_socket_dscp external
Robert Rosengren [Tue, 13 Nov 2018 12:41:53 +0000 (13:41 +0100)]
netutils: make gst_net_utils_set_socket_dscp external

Internal gst_net_utils_set_socket_dscp renamed and turned into external
function. Similar functionality exists in e.g. multidupsink, which could
instead use this one.

5 years agonetutils: Add IPv6 support to QoS DSCP
Robert Rosengren [Tue, 13 Nov 2018 12:39:43 +0000 (13:39 +0100)]
netutils: Add IPv6 support to QoS DSCP

Added IPv6 support as already implemented in multiudpsink
(gst-plugins-good).

5 years agodocs: add index for new symbols in 1.16
Tim-Philipp Müller [Fri, 19 Apr 2019 11:31:22 +0000 (12:31 +0100)]
docs: add index for new symbols in 1.16

5 years agoBack to development
Tim-Philipp Müller [Fri, 19 Apr 2019 09:20:02 +0000 (10:20 +0100)]
Back to development

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