platform/upstream/gstreamer.git
6 years agomeson: remove vs_module_defs
Havard Graff [Wed, 4 Oct 2017 12:16:46 +0000 (14:16 +0200)]
meson: remove vs_module_defs

The GST_EXPORT should handle it.

6 years agoUse proper GtkDoc notation for NULL/FALSE/TRUE
Reynaldo H. Verdejo Pinochet [Tue, 3 Oct 2017 20:54:25 +0000 (13:54 -0700)]
Use proper GtkDoc notation for NULL/FALSE/TRUE

6 years agobin: iterate_sorted: Ensure sources are always returned last
Edward Hervey [Mon, 2 Oct 2017 15:59:17 +0000 (17:59 +0200)]
bin: iterate_sorted: Ensure sources are always returned last

For linked elements, the resulting gst_bin_iterate_sorted() will
properly return elements from sink to sources.

If we have some elements that are not linked, we *still* want to
ensure that we return:
* In priority any sinks
* Last of all any sources
* And in between any element which is neither source nor sink

For this to work, when looking for the next candidate element,
not only check the degree order, but if there are two candidates
with the same degree order, prefer the non-source one.

Amongst other things, this fixes the case where we activating a
bin containing unlinked sources and other elements. Without this
we could end up activating sources (which might start adding pads
to be linked) before other (to which those new source element pads
might be linked) are not activated

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

6 years agotee-test: Test a real use case
Nicolas Dufresne [Mon, 2 Oct 2017 18:11:19 +0000 (14:11 -0400)]
tee-test: Test a real use case

The real use case is when downstream didn't set a pool or
allocation params, in which case we expect the tee to not
create a pool or param from thin air. Dowstream setting
an pool with size=0 was in fact testing a downstream element
bug. The fact we handle that is accidental.

6 years agotee: don't create a pool if none is needed
Stefan Sauer [Mon, 2 Oct 2017 14:26:33 +0000 (16:26 +0200)]
tee: don't create a pool if none is needed

If the aggregated size is 0 and we create a pool, the pool would provide
buffers with no memory assigned. Handle that case and skip the pool.
This was the behaviour before cf803ea9f4e3fde92c1da86ecc47444035f7c0a7.

Add a test for this scenario.

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

6 years agotee: Re-enabled alloc query + allow-not-linked test
Nicolas Dufresne [Mon, 2 Oct 2017 17:35:52 +0000 (13:35 -0400)]
tee: Re-enabled alloc query + allow-not-linked test

In the unit test refactoring, the unlinked pad required to test
the different behaviour induced by "allow-not-linked" property
was removed.

  Commit e364d7944ecbab86dea73c0ee3e639e766938d36

Move all the code for this test in the proper function, and re-add
the missing unlinked pad. This makes the test useful again.

6 years agotee: split the allocation query test
Stefan Sauer [Mon, 2 Oct 2017 14:25:00 +0000 (16:25 +0200)]
tee: split the allocation query test

Split the large allocation_query test into seperate tests. Add a setup helper
to reduce code duplication. Fix the original test that used fail_unless instead
of ck_assert_int_eq and had it accidentially working.

6 years agostructure: add a todo comment
Stefan Sauer [Mon, 2 Oct 2017 14:22:00 +0000 (16:22 +0200)]
structure: add a todo comment

Printing NULL is confusing when the type is e.g. a GArray that is not empty.

6 years agoquery: doc consistency
Stefan Sauer [Mon, 2 Oct 2017 11:14:21 +0000 (13:14 +0200)]
query: doc consistency

Mention that it is the 'buffer size', like we do elsewhere.

6 years agowin32: update exports file
Edward Hervey [Thu, 28 Sep 2017 08:17:53 +0000 (10:17 +0200)]
win32: update exports file

6 years agogst: Modify behaviour of gst_get_main_executable_path
Mathieu Duponchelle [Wed, 27 Sep 2017 18:29:06 +0000 (20:29 +0200)]
gst: Modify behaviour of gst_get_main_executable_path

To actually return the path of the executable, not its
directory.

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

6 years agogst: API: gst_get_main_executable_path()
Mathieu Duponchelle [Tue, 26 Sep 2017 19:51:53 +0000 (21:51 +0200)]
gst: API: gst_get_main_executable_path()

This is useful for plugins that need to inspect the
folder of the main executable in order to determine the
set of features they will expose, for example:

https://github.com/centricular/gstreamer-vst3

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

6 years agogst: Do not try to determine executable path on iOS.
Mathieu Duponchelle [Wed, 27 Sep 2017 11:07:25 +0000 (13:07 +0200)]
gst: Do not try to determine executable path on iOS.

The method used relies on "libproc.h", which is only available
on OSX.

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

6 years agogst: Fix typo in windows function name.
Mathieu Duponchelle [Wed, 27 Sep 2017 11:01:13 +0000 (13:01 +0200)]
gst: Fix typo in windows function name.

GetModuleFilename -> GetModuleFileName

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

6 years agowin32: Update export file
Edward Hervey [Wed, 27 Sep 2017 08:06:12 +0000 (10:06 +0200)]
win32: Update export file

6 years agoplugin dependencies: fix 6cddce7663cb4b6ee061950d20365f42cb755851
Mathieu Duponchelle [Tue, 26 Sep 2017 13:15:27 +0000 (15:15 +0200)]
plugin dependencies: fix 6cddce7663cb4b6ee061950d20365f42cb755851

There were a few errors:

* The plugin scanner now accepts executable path as an argument.
  In case it is NULL, argc == 2

* We find the executable path in init_pre instead of gst_init,
  allowing this to work when gst is initialized through the
  option group (eg gst-inspect)

* There was a semi-colon missing in the __APPLE__ #ifdef

6 years agoplugin: API: GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_RELATIVE_TO_EXE
Mathieu Duponchelle [Mon, 25 Sep 2017 18:35:59 +0000 (20:35 +0200)]
plugin: API: GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_RELATIVE_TO_EXE

When a plugin declares a dependency using this flag, all the
relative paths are considered to be relative to the path of
the main executable.

We try to determine the path of the executable portably,
with implementations provided for Linux, Windows and Mac.

If retrieval of the path fails, we will not detect changes.

In order for the main executable path to be the same when
scanning a plugin in a child process, a new variable is
exposed in gst_private.h, _gst_executable_path

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

6 years agogit-update: Also build $EXTRA_MODULES
Vivia Nikolaidou [Thu, 21 Sep 2017 11:13:47 +0000 (14:13 +0300)]
git-update: Also build $EXTRA_MODULES

Doing a git pull but not autogen.sh / make is not consistent behaviour.

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

6 years agogst-inspect: Print GstValueArray properties nicely
Mathieu Duponchelle [Tue, 19 Sep 2017 21:58:26 +0000 (23:58 +0200)]
gst-inspect: Print GstValueArray properties nicely

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

6 years agoMultiqueue: don't allow dropping SEGMENT_DONE events
Mathieu Duponchelle [Sat, 1 Apr 2017 05:15:22 +0000 (07:15 +0200)]
Multiqueue: don't allow dropping SEGMENT_DONE events

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

6 years agoinfo: GstStackTraceFlags were added in 1.12
Sebastian Dröge [Sun, 17 Sep 2017 15:55:19 +0000 (18:55 +0300)]
info: GstStackTraceFlags were added in 1.12

6 years agoplugins: use new gst_buffer_list_calculate_size()
Tim-Philipp Müller [Thu, 31 Aug 2017 12:05:57 +0000 (13:05 +0100)]
plugins: use new gst_buffer_list_calculate_size()

6 years agobufferlist: add gst_buffer_list_calculate_size()
Tim-Philipp Müller [Thu, 31 Aug 2017 11:54:55 +0000 (12:54 +0100)]
bufferlist: add gst_buffer_list_calculate_size()

Returns size in bytes.

6 years agobufferlist: add gst_buffer_list_get_writable()
Tim-Philipp Müller [Wed, 30 Aug 2017 12:50:33 +0000 (13:50 +0100)]
bufferlist: add gst_buffer_list_get_writable()

Ensures buffer is writable. Useful if we want to change
metadata on it such as timestamps.

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

6 years agogstconfig.h.in: initial e2k arch support
Michael Shigorin [Tue, 12 Sep 2017 15:30:00 +0000 (18:30 +0300)]
gstconfig.h.in: initial e2k arch support

This makes gstreamer buildable on Elbrus 2000.

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

6 years agoinfo: GstDebugColorFlags are flags, not an enum
Sebastian Dröge [Sat, 9 Sep 2017 13:14:05 +0000 (16:14 +0300)]
info: GstDebugColorFlags are flags, not an enum

Annotate as such.

6 years agoidentity: Add a drop-allocation property
Nicolas Dufresne [Wed, 6 Sep 2017 14:01:58 +0000 (10:01 -0400)]
identity: Add a drop-allocation property

When enabled, this property will make the allocation query fail. This is
the same as one could have done using a tee before the tee started
implementing the allocation query.

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

6 years agotee: Allocate one more buffer when multi-plexing
Nicolas Dufresne [Tue, 5 Sep 2017 19:57:51 +0000 (15:57 -0400)]
tee: Allocate one more buffer when multi-plexing

This extra buffer ensure that the downstream threads are not starved
when multiplexing a stream.

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

6 years agotee: Add test for the allocation query
Nicolas Dufresne [Tue, 5 Sep 2017 19:45:33 +0000 (15:45 -0400)]
tee: Add test for the allocation query

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

6 years agotee: Implement allocation query aggregation
Nicolas Dufresne [Tue, 8 Aug 2017 21:39:43 +0000 (17:39 -0400)]
tee: Implement allocation query aggregation

This will aggregate allocation params, pool and will keep all
meta that has no parameters.

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

6 years agotee: Deprecate alloc-pad property
Nicolas Dufresne [Tue, 8 Aug 2017 21:35:19 +0000 (17:35 -0400)]
tee: Deprecate alloc-pad property

It has no effect, not implemented, and would lead to bad rendering.

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

6 years agopad: add test to check handled and drop probes
Miguel París [Mon, 4 Sep 2017 10:20:43 +0000 (12:20 +0200)]
pad: add test to check handled and drop probes

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

6 years agopad: Don't call remaining probes after they return DROPPED|HANDLED
Edward Hervey [Mon, 4 Sep 2017 12:33:29 +0000 (14:33 +0200)]
pad: Don't call remaining probes after they return DROPPED|HANDLED

If multiple probes are set on a pad and one probe returns either
GST_PAD_PROBE_HANDLED or GST_PAD_PROBE_DROPPED we need to stop
calling the remaining probes.

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

6 years agovalue: Handle serializing NULL GValueArray
Thibault Saunier [Sat, 26 Aug 2017 16:44:38 +0000 (13:44 -0300)]
value: Handle serializing NULL GValueArray

Concider them as an empty array and do not segfault...

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

6 years agobaseparse: fix taglist update spam
Tim-Philipp Müller [Thu, 24 Aug 2017 15:00:42 +0000 (16:00 +0100)]
baseparse: fix taglist update spam

We would constantly re-post the taglist because
posted_avg_rate only gets set to avg_bitrate if
parse->priv->post_avg_bitrate is true, so if it's
false the posted rate will always differ from the
current average rate and we'd queue an update,
which leads to us spamming downstream and the
application with taglist updates.

Fix this by only queuing an update if the average
rate will actually be posted.

These taglists updates could cause expensive
operations on the application side, e.g. in Totem.

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

6 years agoAutomatic update of common submodule
Tim-Philipp Müller [Thu, 17 Aug 2017 11:23:10 +0000 (12:23 +0100)]
Automatic update of common submodule

From 48a5d85 to 3f4aa96

6 years agoelement/deviceprovider: Add instance getter functions for class properties
Sebastian Dröge [Thu, 17 Aug 2017 11:13:39 +0000 (14:13 +0300)]
element/deviceprovider: Add instance getter functions for class properties

That is, the metadata and pad templates. Using instance getters is
easier to deal with for bindings, especially autogenerated ones.

6 years agoidentity: Return FLUSHING instead of EOS and don't start waiting for anything if...
Sebastian Dröge [Wed, 16 Aug 2017 19:47:31 +0000 (22:47 +0300)]
identity: Return FLUSHING instead of EOS and don't start waiting for anything if currently flushing

Otherwise we might try unscheduling a clock id (that does not exist
yet), then the streaming thread waits for id and the state change never
continues because the streaming thread is blocked.

Also shutting down and flushing and similar should return FLUSHING, not
EOS. The stream is not over, we're just not accepting any buffers
anymore.

6 years agoallocator: Hide private sysmem GType func
Tim-Philipp Müller [Mon, 14 Aug 2017 10:01:19 +0000 (11:01 +0100)]
allocator: Hide private sysmem GType func

Was never exposed in any header file, only exported
by accident.

6 years agoconfigure: Add switches for enabling/disabling libdw and libunwind
Carlos Rafael Giani [Fri, 11 Aug 2017 19:17:06 +0000 (21:17 +0200)]
configure: Add switches for enabling/disabling libdw and libunwind

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

6 years agolibcheck: fix build failure
Tim-Philipp Müller [Sun, 13 Aug 2017 09:50:05 +0000 (10:50 +0100)]
libcheck: fix build failure

Need to define CK_DLL_EXP to extern as well in libcompat.h
which gets included before the internal-check.h where the
other fallback definition for CK_DLL_EXP is.

duplicate symbol _check_minor_version in:
libcheckinternal.a(libcheckinternal_la-check.o)
libcheckinternal.a(libcheckinternal_la-check_log.o)

6 years agoqueue: Allow re-usability after EOS
Sebastian Dröge [Fri, 11 Aug 2017 08:12:09 +0000 (11:12 +0300)]
queue: Allow re-usability after EOS

After EOS, it is possible for a pad to be resetted by sending
either a STREAM_START or SEGMENT event

Mimic the same behaviour when receiving STREAM_START/SEGMENT events
in queue if we are EOS'd

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

6 years agomeson: hide symbols by default unless explicitly exported
Tim-Philipp Müller [Thu, 10 Aug 2017 12:32:43 +0000 (13:32 +0100)]
meson: hide symbols by default unless explicitly exported

6 years agolibs: check: sprinkle some GST_EXPORT
Tim-Philipp Müller [Thu, 10 Aug 2017 10:15:26 +0000 (11:15 +0100)]
libs: check: sprinkle some GST_EXPORT

Have to modify libcheck header a bit to avoid warnings
about duplicate 'extern extern'.

Also needs some additions to the libcheck meson.build file
to define CK_EXP_DLL when building the static libcheck.

6 years agoutils: fix g-ir-scanner warning about bogus transfer annotations
Tim-Philipp Müller [Tue, 8 Aug 2017 11:56:24 +0000 (12:56 +0100)]
utils: fix g-ir-scanner warning about bogus transfer annotations

for vararg parameters. Vararg functions are not introspectable anyway,
so might just as well mark them as '(skip)' while we're at it.

gstutils.c:2611: Warning: Gst: invalid "transfer" annotation for <varargs>: only valid for object and GVariant types

6 years agoqueue2: Allow re-usability after EOS
Edward Hervey [Wed, 9 Aug 2017 14:15:23 +0000 (16:15 +0200)]
queue2: Allow re-usability after EOS

After EOS, it is possible for a pad to be resetted by sending
either a STREAM_START or SEGMENT event

Mimic the same behaviour when receiving STREAM_START/SEGMENT events
in queue2 if we are EOS'd

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

6 years agoplugins: *queue* elements: Handle STREAM_START in EOS situation
Edward Hervey [Wed, 9 Aug 2017 08:51:39 +0000 (10:51 +0200)]
plugins: *queue* elements: Handle STREAM_START in EOS situation

When queue-like elements are in "EOS" situation (received GST_FLOW_EOS
from downstream or EOS was pushed), they drain buffers/events that
wouldn't be processed anyway and let through events that might
modify the EOS situation.

Previously only GST_EVENT_EOS and GST_EVENT_SEGMENT events were let
through, but we also need to allow GST_EVENT_STREAM_START to go
through since it resets the EOS state of pads since 1.6

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

6 years agoutils: Skip gst_calculate_linear_regression() in bindings
Sebastian Dröge [Tue, 8 Aug 2017 18:19:32 +0000 (21:19 +0300)]
utils: Skip gst_calculate_linear_regression() in bindings

6 years agoqueue2: Handle buffering levels on NOT_LINKED
Edward Hervey [Mon, 7 Aug 2017 10:24:37 +0000 (12:24 +0200)]
queue2: Handle buffering levels on NOT_LINKED

When downstream returns NOT_LINKED, we return the buffering level
as being 100%.

Since the queue is no longer being consumed/used downstream, we
want applications to essentially "ignore" this queue for buffering
purposes.

If other streams are still being used, those stream buffering levels
will be used. If none are used, upstream will post an error message
on the bus indicating no streams are used.

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

6 years agomeson: fix gtk-doc invocation
Tim-Philipp Müller [Mon, 7 Aug 2017 10:23:36 +0000 (11:23 +0100)]
meson: fix gtk-doc invocation

Argument is called "scanobjs_args", and we were missing a quote.

6 years agomeson: fix a few warnings
Tim-Philipp Müller [Mon, 7 Aug 2017 10:06:58 +0000 (11:06 +0100)]
meson: fix a few warnings

6 years agomeson: add -lm to gstreamer-check-1.0 pkgconfig file
Tim-Philipp Müller [Mon, 7 Aug 2017 09:33:32 +0000 (10:33 +0100)]
meson: add -lm to gstreamer-check-1.0 pkgconfig file

Fixes warning with meson from git about LIBM not being
defined in the configuration_data.

6 years agopad: Recheck sticky events after non-blocking buffer probes and blocking event probes
Sebastian Dröge [Wed, 2 Aug 2017 18:02:32 +0000 (21:02 +0300)]
pad: Recheck sticky events after non-blocking buffer probes and blocking event probes

Without the former, event changes (e.g. setting a pad offset) does not
take effect for the current buffer but only for the next one. Without
the latter, non-blocking event probes would not see any updated events
yet.

6 years agoinfo: fix build with gst debugging disabled
Tim-Philipp Müller [Sat, 29 Jul 2017 09:28:03 +0000 (10:28 +0100)]
info: fix build with gst debugging disabled

6 years agodebug: Add a memory ringbuffer based debug logger
Sebastian Dröge [Mon, 17 Jul 2017 18:03:11 +0000 (21:03 +0300)]
debug: Add a memory ringbuffer based debug logger

This stores debug logs in memory per thread and uses up to a
configurable amount of bytes per thread for the logs. Inactive threads
are timed out after a configurable amount of time.

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

6 years agosegment: Add missing out annotations for various parameters
Sebastian Dröge [Fri, 28 Jul 2017 16:27:18 +0000 (17:27 +0100)]
segment: Add missing out annotations for various parameters

6 years agodownloadbuffer: remove unused struct member
Tim-Philipp Müller [Wed, 26 Jul 2017 13:17:46 +0000 (14:17 +0100)]
downloadbuffer: remove unused struct member

This was used in queue2 when handling in coming serialized
queries, but downloadbuffer just refuses serialized queries.

6 years agocheck: duplicate code branches
Luis de Bethencourt [Tue, 10 Mar 2015 16:42:44 +0000 (16:42 +0000)]
check: duplicate code branches

CID #1226446

6 years agoelement: document that gst_element_continue_state needs to be called with the STATE_LOCK
George Kiagiadakis [Wed, 26 Jul 2017 08:15:58 +0000 (11:15 +0300)]
element: document that gst_element_continue_state needs to be called with the STATE_LOCK

It internally calls gst_element_change_state(), which requires the STATE_LOCK

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

6 years agogst-launch: fix compiler warnings for SIGHUP handlers on windows
Tim-Philipp Müller [Thu, 20 Jul 2017 16:31:41 +0000 (17:31 +0100)]
gst-launch: fix compiler warnings for SIGHUP handlers on windows

Fix unused variable/function compiler warnings on windows.
The SIGHUP handling is only available under unix.

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

6 years agomultiqueue: Fix access to NULL pointer
Edward Hervey [Thu, 20 Jul 2017 12:17:48 +0000 (14:17 +0200)]
multiqueue: Fix access to NULL pointer

sq can be NULL.

Also fix commit message (it's the queue we are iterating over that we
are logging, not the one passed as argument).

CID #1415569

6 years agomultiqueue: Calculate interleave only within each streaming thread
Seungha Yang [Mon, 3 Jul 2017 06:17:33 +0000 (15:17 +0900)]
multiqueue: Calculate interleave only within each streaming thread

... and use the biggest interleave value among streaming threads.
This is to optimize multiqueue size adaptation on adaptive streaming
use case with "use-interleave" property.

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

6 years agomeson: po: use glib preset and read language list from LINGUAS
Tim-Philipp Müller [Sat, 15 Jul 2017 11:40:28 +0000 (12:40 +0100)]
meson: po: use glib preset and read language list from LINGUAS

Supported since meson 0.37, so we can use it now.

6 years agominiobject: don't modify memory if it's clearly not a valid miniobject
Tim-Philipp Müller [Sat, 15 Jul 2017 10:54:18 +0000 (11:54 +0100)]
miniobject: don't modify memory if it's clearly not a valid miniobject

Add back function guard that checks the refcount in a read-only
operation first, and bail out without modifying the passed-in
memory if it's clearly not a valid mini object. Otherwise we
probably cause more harm than good. We keep the second sanity
check based on the 'real refcount' at the time of the unref
around for now too.

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

6 years agobasesrc: deprecate non-functional "typefind" property
Tim-Philipp Müller [Fri, 14 Jul 2017 15:56:54 +0000 (16:56 +0100)]
basesrc: deprecate non-functional "typefind" property

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

6 years agobenchmark: fix complexity benchmark
Francisco Velazquez [Mon, 10 Jul 2017 14:52:38 +0000 (16:52 +0200)]
benchmark: fix complexity benchmark

Make complexity benchmark code work for complexity > 1

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

6 years agowin32: find plugin scanner in libexecdir subdir as configured
Tim-Philipp Müller [Fri, 14 Jul 2017 15:12:25 +0000 (16:12 +0100)]
win32: find plugin scanner in libexecdir subdir as configured

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

6 years agobasesink: fix buffer leaks if preroll failed
Jason Lin [Thu, 13 Jul 2017 13:52:34 +0000 (21:52 +0800)]
basesink: fix buffer leaks if preroll failed

buffer is not unreferened if preroll failed

:Detailed Notes:
- Problem : video freeze when switching from pause to 1/2-FF repeatedly
- RootCause : buffer leaks in basesink
- Solution : unref the buffer if prerolled failed

:Testing Preformed:
How to Test :
pause -> 1/2 FF -> resume -> pause -> 1/2 FF ...

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

6 years agoGenerate a gstreamer pipeline diagram on SIGHUP.
Graham Leggett [Sun, 11 Jun 2017 15:15:13 +0000 (15:15 +0000)]
Generate a gstreamer pipeline diagram on SIGHUP.

Useful for debugging a pipeline that refuses to enter a given state.

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

6 years agobasesrc: forward SINK_MESSAGE events downstream
George Kiagiadakis [Mon, 26 Jun 2017 08:46:39 +0000 (11:46 +0300)]
basesrc: forward SINK_MESSAGE events downstream

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

6 years agomeson: Fix bashcomp installation
Nicolas Dufresne [Tue, 11 Jul 2017 18:56:03 +0000 (14:56 -0400)]
meson: Fix bashcomp installation

For some reason the double quotes ended up in the path, hence
the helper where installed at "."/share/...

6 years agomeson: Use join_paths and .set_quoted where possible
Nicolas Dufresne [Tue, 11 Jul 2017 18:55:42 +0000 (14:55 -0400)]
meson: Use join_paths and .set_quoted where possible

6 years agomeson: pkgconfig: add libunwind/libdw to gstreamer-1.0 Requires.private
Tim-Philipp Müller [Tue, 11 Jul 2017 15:15:16 +0000 (16:15 +0100)]
meson: pkgconfig: add libunwind/libdw to gstreamer-1.0 Requires.private

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

6 years agopkgconfig: Add private requirements
Edward Hervey [Tue, 11 Jul 2017 13:29:44 +0000 (15:29 +0200)]
pkgconfig: Add private requirements

Add libunwind and dw to the .pc Requires.private. Fixes static library
compilation if gstreamer was compiled with one of those dependencies

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

6 years agobasesink: use GST_CLOCK_TIME macros for readability
Stefan Sauer [Sun, 9 Jul 2017 19:20:03 +0000 (21:20 +0200)]
basesink: use GST_CLOCK_TIME macros for readability

Replace some -1 comparison with GST_CLOCK_TIME macros.

6 years agocollectpads: correct some comments and add more logging
Stefan Sauer [Sun, 9 Jul 2017 19:16:44 +0000 (21:16 +0200)]
collectpads: correct some comments and add more logging

Add more logging to analyze event handling (especially failure cases).

6 years agotools: gst-stats: Use standard character escapes
Scott D Phillips [Mon, 1 May 2017 20:35:09 +0000 (13:35 -0700)]
tools: gst-stats: Use standard character escapes

Having '\e' expand to '\x1b' is a gnu extension. I didn't see any
document describing the behavior, but gcc also seems to expand
'\[' to '['.

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

6 years agomeson: find python3 via python3 module
Tim-Philipp Müller [Fri, 7 Jul 2017 11:06:44 +0000 (12:06 +0100)]
meson: find python3 via python3 module

And rename python3 variable in meson build files for clarity.

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

6 years agomeson: add option to disable tracer hooks
Tim-Philipp Müller [Wed, 5 Jul 2017 12:20:19 +0000 (13:20 +0100)]
meson: add option to disable tracer hooks

6 years agotests: memory: skip test that depends on debug system if it's disabled
Tim-Philipp Müller [Wed, 5 Jul 2017 12:19:00 +0000 (13:19 +0100)]
tests: memory: skip test that depends on debug system if it's disabled

6 years agotracing: fix build with tracer hooks disabled
Tim-Philipp Müller [Wed, 5 Jul 2017 12:17:49 +0000 (13:17 +0100)]
tracing: fix build with tracer hooks disabled

6 years agominiobject: make refcount tracing and debug logging reliable
Tim-Philipp Müller [Mon, 3 Jul 2017 08:03:24 +0000 (09:03 +0100)]
miniobject: make refcount tracing and debug logging reliable

Tracing of the refcounts wasn't thread-safe, and log output of
the refcount values before/after wasn't reliable.

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

6 years agoplugin: clarify code that deduces plugin name from file name
Tim-Philipp Müller [Mon, 3 Jul 2017 20:06:24 +0000 (21:06 +0100)]
plugin: clarify code that deduces plugin name from file name

Make the final else branch explicit for clarity.

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

6 years agodocs: add a missing const in bytereader docs
Stefan Sauer [Tue, 27 Jun 2017 05:44:17 +0000 (07:44 +0200)]
docs: add a missing const in bytereader docs

This syncs the prototype with gstbytereader.h

6 years agobasesrc: Removed unused private member qos_enabled
Nicolas Dufresne [Thu, 29 Jun 2017 14:50:50 +0000 (10:50 -0400)]
basesrc: Removed unused private member qos_enabled

6 years agobasesrc: Don't reallocate buffers when flushing
Nicolas Dufresne [Mon, 26 Jun 2017 18:09:20 +0000 (14:09 -0400)]
basesrc: Don't reallocate buffers when flushing

Instead of using gst_buffer_pool_set_active() when flushing, use
gst_buffer_pool_set_flushing(), this avoids uneeded reallocation of the
buffers.

6 years agobasesrc: Don't hold LIVE_LOCK in create/alloc/fill
Nicolas Dufresne [Thu, 1 Jun 2017 14:36:26 +0000 (10:36 -0400)]
basesrc: Don't hold LIVE_LOCK in create/alloc/fill

Holding this lock on live source prevents the source from changing
the caps in ::create() without risking a deadlock. This has consequences
as the LIVE_LOCK was replacing the STREAM_LOCK in many situation. As a
side effect:

- We no longer need to unlock when doing play/pause as the LIVE_LOCK
  isn't held. We then let the create() call finish, but will block if
  the state have changed meanwhile. This has the benefit that
  wait_preroll() calls in subclass is no longer needed.
- We no longer need to change the state to unlock, simplifying the
  set_flushing() interface
- We need different handling for EOS depending if we are in push or pull
  mode.

This patch also document the locking of each private class member and
the locking order.

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

6 years agobasesrc: Protect access to pool and allocator
Nicolas Dufresne [Thu, 1 Jun 2017 14:01:13 +0000 (10:01 -0400)]
basesrc: Protect access to pool and allocator

This was only partly protected by the object lock. Always take the
object lock to access the currently configured pool and allocator.

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

6 years agogst-inspect: Fix memory leak in print_pad_templates_info
Jimmy Ohn [Wed, 28 Jun 2017 23:30:50 +0000 (08:30 +0900)]
gst-inspect: Fix memory leak in print_pad_templates_info

gst_static_caps_get function returned allocated memory.
So, It should be free using gst_caps_unref.

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

6 years agomeson: check for ppoll() as well
Tim-Philipp Müller [Thu, 29 Jun 2017 08:10:04 +0000 (09:10 +0100)]
meson: check for ppoll() as well

6 years agomeson: Add configinc as include_directory in tools/
Thibault Saunier [Tue, 27 Jun 2017 13:59:52 +0000 (09:59 -0400)]
meson: Add configinc as include_directory in tools/

Otherwise when the glib is used as a subproject config.h is the glib
one, not ours.

6 years agomeson: Allow using glib as a subproject
Thibault Saunier [Fri, 23 Jun 2017 19:13:16 +0000 (15:13 -0400)]
meson: Allow using glib as a subproject

6 years agoprotection: add function to filter system ids
Xabier Rodriguez Calvar [Wed, 28 Jun 2017 07:54:56 +0000 (09:54 +0200)]
protection: add function to filter system ids

gst_protection_filter_systems_by_available_decryptors() takes an array
of strings and returns a new array of strings filtered by the available
decryptors for them so the ones you get are the ones that you should be
able to decrypt.

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

6 years agomeson: fix with-package-name option
Tim-Philipp Müller [Fri, 23 Jun 2017 10:11:44 +0000 (11:11 +0100)]
meson: fix with-package-name option

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

6 years agogstplugin: remove gst prefix when loading plugin on MSVC
Matej Knopp [Thu, 1 Jun 2017 22:52:37 +0000 (00:52 +0200)]
gstplugin: remove gst prefix when loading plugin on MSVC

When building with Meson and MSVC, our plugins don't have a 'libgst'
suffix and are just 'gstfoo.dll', so look for that too.

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

6 years agobaseparse: sinkcaps can be NULL in default caps negotiation
Nicolas Dufresne [Wed, 21 Jun 2017 14:48:52 +0000 (10:48 -0400)]
baseparse: sinkcaps can be NULL in default caps negotiation

This was causing harmless assertion about the unreffed caps not being of
type caps.

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

6 years agowin32: Update .def file
Thibault Saunier [Tue, 20 Jun 2017 15:05:41 +0000 (11:05 -0400)]
win32: Update .def file

6 years agoutils: Add a function to get a string representation of GstStateChange
Thibault Saunier [Wed, 14 Jun 2017 21:12:32 +0000 (17:12 -0400)]
utils: Add a function to get a string representation of GstStateChange

API:
    gst_state_change_get_name

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

6 years agoelement: Add missing values for "to same" state changes
Thibault Saunier [Thu, 15 Jun 2017 14:38:29 +0000 (10:38 -0400)]
element: Add missing values for "to same" state changes

And handle newly added GstStateChange values in GstPipeline

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

6 years agoutils: Fix leak in failed case of regression overflow checking
Heekyoung Seo [Tue, 20 Jun 2017 06:57:47 +0000 (15:57 +0900)]
utils: Fix leak in failed case of regression overflow checking

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