platform/upstream/gstreamer.git
7 years agoRemove plugin specific static build option
Nicolas Dufresne [Tue, 16 May 2017 17:29:38 +0000 (13:29 -0400)]
Remove plugin specific static build option

Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.

7 years agomeson: fix gstprintf test linking
Tim-Philipp Müller [Mon, 15 May 2017 23:02:11 +0000 (00:02 +0100)]
meson: fix gstprintf test linking

Must link against gstprint helper lib to use private symbol.

7 years agogstconfig.h: use default visibility for GST_EXPORT for gcc/clang too
Tim-Philipp Müller [Wed, 10 May 2017 12:03:31 +0000 (13:03 +0100)]
gstconfig.h: use default visibility for GST_EXPORT for gcc/clang too

This will be needed later when we switch to using -fvisibility=hidden.

7 years agogst: add GST_DEPRECATED_FOR() and also export deprecated symbols
Tim-Philipp Müller [Wed, 10 May 2017 12:07:31 +0000 (13:07 +0100)]
gst: add GST_DEPRECATED_FOR() and also export deprecated symbols

Can't use a #ifndef GST_DISABLE_DEPRECATED guard around deprecated
functions any more, as they won't get exported then. Besides, we
get a nicer error message from the compiler telling us what function
to use instead this way.

7 years agogst: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Wed, 10 May 2017 09:56:16 +0000 (10:56 +0100)]
gst: mark symbols explicitly for export with GST_EXPORT

One omission: gst_allocator_sysmem_get_type() was
exported but never in any public header file.

7 years agolibs: controller: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 9 May 2017 23:11:10 +0000 (00:11 +0100)]
libs: controller: mark symbols explicitly for export with GST_EXPORT

7 years agolibs: base: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 9 May 2017 15:19:31 +0000 (16:19 +0100)]
libs: base: mark symbols explicitly for export with GST_EXPORT

7 years agolibs: net: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 9 May 2017 15:01:46 +0000 (16:01 +0100)]
libs: net: mark symbols explicitly for export with GST_EXPORT

7 years agomeson: add options to set package name and origin
Tim-Philipp Müller [Sat, 13 May 2017 17:30:27 +0000 (18:30 +0100)]
meson: add options to set package name and origin

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

7 years agodocs: use the full path to ignore dirs
Stefan Sauer [Sat, 13 May 2017 16:19:05 +0000 (18:19 +0200)]
docs: use the full path to ignore dirs

7 years agodocs: remove stray ',\' from doc comment
Stefan Sauer [Fri, 12 May 2017 15:49:25 +0000 (17:49 +0200)]
docs: remove stray ',\' from doc comment

7 years agobuffer: Add GstReferenceTimestampMeta
Sebastian Dröge [Sat, 25 Feb 2017 10:18:14 +0000 (12:18 +0200)]
buffer: Add GstReferenceTimestampMeta

This is a meta that generically allows to attach additional reference
timestamps to a buffer, that don't have to relate to the pipeline clock
in any way.

Examples of this could be an NTP timestamp when the media was captured,
a frame counter on the capture side or the (local) UNIX timestamp when
the media was captured.

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

7 years agomeson: bump meson version requirement to 0.40.1
Tim-Philipp Müller [Tue, 9 May 2017 15:29:21 +0000 (16:29 +0100)]
meson: bump meson version requirement to 0.40.1

7 years agobus: Add function to get the file descriptor of the bus
Sebastian Dröge [Thu, 15 Dec 2016 10:48:55 +0000 (12:48 +0200)]
bus: Add function to get the file descriptor of the bus

This is useful for integration with other event loops that work by
polling file descriptors. G_IO_IN will always be set whenever a message
is available currently.

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

7 years agoplugin: Unify static and dynamic plugin interface
Nicolas Dufresne [Tue, 28 Feb 2017 02:38:11 +0000 (21:38 -0500)]
plugin: Unify static and dynamic plugin interface

This patch changes the entry point of each plugin in order to unify the
interface for static and dynamic plugin. What we do is replace the
current static plugin interface and extend the dymamic one. The plugin
entry was a C structure, name "gst_plugin_desc". With this patch, the
interface is now:

  GstPpluginDesc *gst_plugin_<name>_get_desc(void);

The reason we change the C structure into function, is that it is
potentially more common to have function pointers, avoiding possible
binding language limitation. Additionally to that. This change prevents
the symbols from clashing between plugins, allowing to build once the
plugin (assuming you have -fPIC).

On the plugin loader side, we symply derive the shared object basename
to extract the plugin name. If this symbol is not found, we fallback to
gst_plugin_desc for backward compatibility.

This has one side effect, which is that the shared objects now need to
be named after their plugin name. This is generally the case with few
exceptions. The benifit of this limitation is that you can control the
gst_plugin_<name>_desc clash at file level.

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

7 years agomeson: fix search path for setcap
Tim-Philipp Müller [Tue, 9 May 2017 08:24:43 +0000 (09:24 +0100)]
meson: fix search path for setcap

7 years agodebugutils: make local variable static
Tim-Philipp Müller [Sun, 7 May 2017 10:17:22 +0000 (11:17 +0100)]
debugutils: make local variable static

7 years agomeson: fail silently in ptp helper post install script
Tim-Philipp Müller [Fri, 5 May 2017 11:23:43 +0000 (12:23 +0100)]
meson: fail silently in ptp helper post install script

.. in case permissions/capabilities could not be set.

7 years agomeson: use cc.find_library()
Tim-Philipp Müller [Fri, 5 May 2017 11:02:33 +0000 (12:02 +0100)]
meson: use cc.find_library()

find_library() was deprecated and removed in later versions.

7 years agomeson: add gst-ptp-helper
Tim-Philipp Müller [Fri, 5 May 2017 10:49:08 +0000 (11:49 +0100)]
meson: add gst-ptp-helper

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

7 years agomeson: fix indentation
Tim-Philipp Müller [Fri, 5 May 2017 08:10:56 +0000 (09:10 +0100)]
meson: fix indentation

No tabs please.

7 years agohelpers: remove old cruft from CLEANFILES
Tim-Philipp Müller [Thu, 4 May 2017 23:45:06 +0000 (00:45 +0100)]
helpers: remove old cruft from CLEANFILES

These files are no longer built, so no need to clean them.

7 years agog-i: no need to load registry in g-i scanner
Tim-Philipp Müller [Sat, 29 Apr 2017 10:30:54 +0000 (11:30 +0100)]
g-i: no need to load registry in g-i scanner

7 years agoDon't generate gst-element-check-1.0.m4 on the fly and fix meson build
Tim-Philipp Müller [Thu, 4 May 2017 20:37:28 +0000 (21:37 +0100)]
Don't generate gst-element-check-1.0.m4 on the fly and fix meson build

This will interfere with 'git pull'. You will have to remove the
old generated gst-element-check-1.0.m4 manually if you're pulling
on a dirty build directory, sorry.

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

7 years agomeson: install gst-element-check-1.0.m4
Tim-Philipp Müller [Thu, 4 May 2017 20:06:21 +0000 (21:06 +0100)]
meson: install gst-element-check-1.0.m4

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

7 years agoharness: Abort when failed to construct the specified pipeline
Yasushi SHOJI [Sun, 30 Apr 2017 03:10:49 +0000 (12:10 +0900)]
harness: Abort when failed to construct the specified pipeline

gst_harness_new_parse() returns without any error even if it doesn't
find the specified element.  Then a succeeding call to
gst_harness_set_sink_caps_str() causes an error like this:

Unexpected critical/warning: gst_pad_push_event: assertion 'GST_IS_PAD (pad)' failed

This is a bit cryptic and doesn't give users any clue what was going
on.

gst_harness_new_parse() calls gst_harness_add_parse() with a newly
created empty harness and the given pipeline description string, but
gst_harness_add_parse() does not have a way to propagate the error
back to the caller.  Since the function, gst_harness_add_parse(), is a
public API, it's not a good idea to change its signature.  This patch,
instead, makes the function to g_error() when it discovers any error.
With this change the same error prints:

** (myelement-test:25345): ERROR **: Unable to create pipeline 'bin.( myelement )': no element "myelement"

The current implementation of gst_parse_launch_full() doesn't return
partially constructed pipeline when GST_PARSE_FLAG_FATAL_ERRORS is
specified, however, this patch also adds a check for it.

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

7 years agoBack to development
Sebastian Dröge [Thu, 4 May 2017 15:59:14 +0000 (18:59 +0300)]
Back to development

7 years agoRelease 1.12.0 1.12.0
Sebastian Dröge [Thu, 4 May 2017 12:36:55 +0000 (15:36 +0300)]
Release 1.12.0

7 years agoUpdate .po files
Sebastian Dröge [Thu, 4 May 2017 12:00:16 +0000 (15:00 +0300)]
Update .po files

7 years agomessage: Don't pass a NULL debug string to g_utf8_validate()
Sebastian Dröge [Tue, 2 May 2017 11:35:50 +0000 (14:35 +0300)]
message: Don't pass a NULL debug string to g_utf8_validate()

g_utf8_validate() crashes on NULL, but NULL is valid for the debug
string nonetheless.

7 years agoadapter: Check if meta transform_func is NULL before using it
Sebastian Dröge [Tue, 2 May 2017 11:27:14 +0000 (14:27 +0300)]
adapter: Check if meta transform_func is NULL before using it

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

7 years agobasetransform: Check if meta transform_func is NULL before using it
Frédéric Dalleau [Tue, 2 May 2017 08:32:54 +0000 (10:32 +0200)]
basetransform: Check if meta transform_func is NULL before using it

An untested pointer segfaulted in webkit while playing video
on imx6 sabrelite. It turned out that the imx plugin didn't
implement the meta transform function.

The following GST_DEBUG trace was visible:
gstbasetransform.c:1779:foreach_metadata:<conv2> copy metadata
                                                GstImxVpuBufferMetaAPI

Thread 26 vqueue:src received signal SIGSEGV, Segmentation fault.

(gdb) bt
 0x00000000 in ?? ()
 0x73f8d7d8 in foreach_metadata (inbuf=0xc9b020, meta=0x474b2490,
                  user_data=<optimized out>) at gstbasetransform.c:1781
 0x73eb3ea8 in gst_buffer_foreach_meta (buffer=buffer@entry=0xc9b020,
                  func=0x73f8d705 <foreach_metadata>,
                  user_data=user_data@entry=0x474b24d4)
                  at gstbuffer.c:2234

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

7 years agogst: check non-null before dereference
Víctor Manuel Jáquez Leal [Fri, 28 Apr 2017 17:43:49 +0000 (19:43 +0200)]
gst: check non-null before dereference

It is possible to use gst_deinit() without registering the base
classes. For example, when using gst_init_get_option_group() and
call the program with an invalid parameter. In that case,
gst_deinit() will lead to a segmentation fault, since there is a
dereference to a pointer that is null.

This patch validates if the type is non-null before dereferencing
it.

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

7 years agogst-uninstalled: add opencv to bad libs
Nicola Murino [Fri, 28 Apr 2017 09:57:41 +0000 (11:57 +0200)]
gst-uninstalled: add opencv to bad libs

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

7 years agoRelease 1.11.91
Sebastian Dröge [Thu, 27 Apr 2017 14:24:05 +0000 (17:24 +0300)]
Release 1.11.91

7 years agoUpdate .po files
Sebastian Dröge [Thu, 27 Apr 2017 12:48:33 +0000 (15:48 +0300)]
Update .po files

7 years agopo: Update translations
Sebastian Dröge [Thu, 27 Apr 2017 12:21:26 +0000 (15:21 +0300)]
po: Update translations

7 years agoAutomatic update of common submodule
Tim-Philipp Müller [Mon, 24 Apr 2017 19:27:33 +0000 (20:27 +0100)]
Automatic update of common submodule

From 60aeef6 to 48a5d85

7 years agoMeson: also build and install gst-stats-1.0 and it's man page.
Koop Mast [Fri, 21 Apr 2017 13:04:32 +0000 (15:04 +0200)]
Meson: also build and install gst-stats-1.0 and it's man page.

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

7 years agoAdd very simple man page for gst-stats.
Koop Mast [Fri, 21 Apr 2017 13:03:18 +0000 (15:03 +0200)]
Add very simple man page for gst-stats.

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

7 years agodoc: Fix some doctsing making GI happy
Thibault Saunier [Fri, 21 Apr 2017 13:51:59 +0000 (10:51 -0300)]
doc: Fix some doctsing making GI happy

7 years agodoc: Fix GstChangeState docstring
Thibault Saunier [Thu, 6 Apr 2017 20:51:29 +0000 (17:51 -0300)]
doc: Fix GstChangeState docstring

7 years agoinfo: Move debug output in for_each_threshold_by_entry() to TRACE level
Sebastian Dröge [Wed, 19 Apr 2017 16:31:38 +0000 (17:31 +0100)]
info: Move debug output in for_each_threshold_by_entry() to TRACE level

It's otherwise appearing many, many times in logs and usually is nothing
you're interested in.

7 years agotests: fix message leak in seek test
Vincent Penquerc'h [Fri, 31 Mar 2017 11:22:00 +0000 (12:22 +0100)]
tests: fix message leak in seek test

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

7 years agobasetransform: fix typo in debug log output
Yasushi SHOJI [Wed, 29 Mar 2017 10:26:53 +0000 (19:26 +0900)]
basetransform: fix typo in debug log output

This unbalanced closing parenthesis is leftover from the commit
8b739d91e7. It used to wrap the caps but we don't seem to do that in
the current code.

So, just remove it. No functionality has been changed.

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

7 years agomeson: A couple for GIR-generation fixes
Rico Tzschichholz [Mon, 10 Apr 2017 14:28:57 +0000 (16:28 +0200)]
meson: A couple for GIR-generation fixes

7 years agomeson: Add controller enum file as generated sources
Thibault Saunier [Wed, 12 Apr 2017 12:48:53 +0000 (09:48 -0300)]
meson: Add controller enum file as generated sources

Avoiding build failure like
https://ci.appveyor.com/project/thiblahute/gst-build-ge9m5/build/1.0.2857

7 years agomeson: dist new meson build script
Tim-Philipp Müller [Tue, 11 Apr 2017 19:19:03 +0000 (20:19 +0100)]
meson: dist new meson build script

7 years agocontroller: include new proxycontrolbinding header
Tim-Philipp Müller [Tue, 11 Apr 2017 19:16:53 +0000 (20:16 +0100)]
controller: include new proxycontrolbinding header

And fix includes in docs to just include the main header (the
include for the proxycontrolbinding was wrong in the docs).

7 years ago.gitignore: ignore more
Tim-Philipp Müller [Tue, 11 Apr 2017 19:16:41 +0000 (20:16 +0100)]
.gitignore: ignore more

7 years agomeson: Only check the first parameter
Olivier Crete [Tue, 11 Apr 2017 15:52:20 +0000 (11:52 -0400)]
meson: Only check the first parameter

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

7 years agomeson: Check bison and flex are recent enough
Thibault Saunier [Tue, 11 Apr 2017 13:17:40 +0000 (10:17 -0300)]
meson: Check bison and flex are recent enough

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

7 years agoAutomatic update of common submodule
Tim-Philipp Müller [Mon, 10 Apr 2017 22:48:53 +0000 (23:48 +0100)]
Automatic update of common submodule

From 39ac2f5 to 60aeef6

7 years agovalue: Accept NULL as a structure
Olivier Crête [Mon, 10 Apr 2017 16:24:06 +0000 (12:24 -0400)]
value: Accept NULL as a structure

Some GstStructure properties default to NULL, so it should
be a supported value.

With unit test.

7 years agocontroller: Fix build with srcdir!=builddir
Sebastian Dröge [Mon, 10 Apr 2017 11:26:42 +0000 (14:26 +0300)]
controller: Fix build with srcdir!=builddir

7 years agocontroller: Add missing sources/headers to the GIR build
Rico Tzschichholz [Mon, 10 Apr 2017 10:52:17 +0000 (13:52 +0300)]
controller: Add missing sources/headers to the GIR build

7 years agomeson: And actually make the controller mkenums rules work
Sebastian Dröge [Sun, 9 Apr 2017 09:16:39 +0000 (12:16 +0300)]
meson: And actually make the controller mkenums rules work

7 years agomeson: Add check for glib-mkenums
Sebastian Dröge [Sun, 9 Apr 2017 09:09:33 +0000 (12:09 +0300)]
meson: Add check for glib-mkenums

7 years agocontroller: Generate GLib enums automatically
Sebastian Dröge [Sun, 9 Apr 2017 09:02:43 +0000 (12:02 +0300)]
controller: Generate GLib enums automatically

7 years agoDon't use deprecated g_object_newv()
Tim-Philipp Müller [Tue, 4 Apr 2017 16:53:39 +0000 (17:53 +0100)]
Don't use deprecated g_object_newv()

Use g_object_new() instead which nowadays has a shortcut for the
no-properties check. It still does an extra GType check in the
function guard, but there's a pending patch to remove that
and it's hardly going to be a performance issue in practice,
even less so on a system that's compiled without run-time checks.

Alternative would be to move to the new g_object_new_properties()
with a fallback define for older glib versions, but it makes the
code look more unwieldy and doesn't seem worth it.

Fixes deprecation warnings when building against newer GLib versions.

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

7 years agotest: Add test for serializing/deserializing NULL strings
Olivier Crête [Fri, 7 Apr 2017 17:49:29 +0000 (13:49 -0400)]
test: Add test for serializing/deserializing NULL strings

7 years agoRelease 1.11.90
Sebastian Dröge [Fri, 7 Apr 2017 13:30:35 +0000 (16:30 +0300)]
Release 1.11.90

7 years agoUpdate .po files
Sebastian Dröge [Fri, 7 Apr 2017 12:04:11 +0000 (15:04 +0300)]
Update .po files

7 years agostructure: Don't print warning on NULL strings or pointers
Olivier Crête [Wed, 8 Mar 2017 17:09:45 +0000 (12:09 -0500)]
structure: Don't print warning on NULL strings or pointers

Putting NULL for those is a valid serialization for the NULL value.

7 years agogst: Use GstClockTimeDiff instead of GstClockTime as type for GST_SECOND and friends
Sebastian Dröge [Wed, 5 Apr 2017 13:32:38 +0000 (16:32 +0300)]
gst: Use GstClockTimeDiff instead of GstClockTime as type for GST_SECOND and friends

They were (signed!) gint64 before because of G_GINT64_CONSTANT() already
and they are actually used in signed calculations.

With this change we at least ensure that an integer type of the correct
size is used for GI (it was using gint before).

7 years agogst: Update some more types and values of combined-flags constants
Sebastian Dröge [Wed, 5 Apr 2017 12:46:26 +0000 (15:46 +0300)]
gst: Update some more types and values of combined-flags constants

7 years agogst: Cast combined-flags constants to their respective target types
Sebastian Dröge [Wed, 5 Apr 2017 11:45:00 +0000 (14:45 +0300)]
gst: Cast combined-flags constants to their respective target types

This makes C++ compilers a bit more happy without having the user of the
constants cast. It also provides the correct type information to GI.

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

7 years agogst: Set values and types for combined-flags constants in GI annotations
Sebastian Dröge [Wed, 5 Apr 2017 11:42:16 +0000 (14:42 +0300)]
gst: Set values and types for combined-flags constants in GI annotations

7 years agovalue: Properly set value and type for GST_FLAG_SET_MASK_EXACT in GI annotations
Sebastian Dröge [Wed, 5 Apr 2017 11:26:33 +0000 (14:26 +0300)]
value: Properly set value and type for GST_FLAG_SET_MASK_EXACT in GI annotations

Storing a -1 inside an unsigned integer confuses GIR based bindings
generators.

7 years agocompletion: Try to avoid parsing summary
Nicolas Dufresne [Tue, 4 Apr 2017 20:28:45 +0000 (16:28 -0400)]
completion: Try to avoid parsing summary

In GES, the summary refers to options that are only available when built
against gst-valdiate. Those where picked by our regex. This patch add a
initial grep to try and filter-out as best as possible the content to
which we will extract the command list.

7 years agomeson: Add bash completion support
Nicolas Dufresne [Tue, 4 Apr 2017 18:25:52 +0000 (14:25 -0400)]
meson: Add bash completion support

7 years agocompletion: Place the completion helper in libexec
Nicolas Dufresne [Tue, 4 Apr 2017 17:42:50 +0000 (13:42 -0400)]
completion: Place the completion helper in libexec

This patch reorganize the bash completion scripts in order to install
the binary helper (gst-completion-helper) in libexec path rather then
share folder. Most Linux hierarchy compliance requires that no binary
executable are placed in share. We also cleanup the unused .pc entries
and remove copy pasted parts of the script. Note that other project
including the common helper, should now use $_GST_HELPER to read
the binary executable gst-completion-helper. This helper is not longer
version, as it is placed in a versionned subfolder
(libexec/gstreamer.10) just like the other helpers (scanner and ptp).

7 years agogstvalue: fix GstValue leak in structure_field_union_into
Vincent Penquerc'h [Fri, 31 Mar 2017 10:22:49 +0000 (11:22 +0100)]
gstvalue: fix GstValue leak in structure_field_union_into

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

7 years agostreamcollection: fix racy user-after-free
Vincent Penquerc'h [Fri, 31 Mar 2017 09:38:15 +0000 (10:38 +0100)]
streamcollection: fix racy user-after-free

The issue happens when the structure is printed by the logging
subsystem: the object is included in the log, and this will cause the
full object printout to be done there. However, after dispose, the queue
was already cleared, so the access to it (to print the object) would
assert, as the queue was already freed. The patch changes it so that the
queue is merely empty, and only freed in _finalize.

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

7 years agodebugutils: add pad EOS flag in pipeline dot file dumps
Tim-Philipp Müller [Mon, 27 Mar 2017 17:30:35 +0000 (18:30 +0100)]
debugutils: add pad EOS flag in pipeline dot file dumps

But only if set. Helps debug issues with EOS propagation.

7 years agotools: gst-launch: print structure property notifies nicer
Tim-Philipp Müller [Mon, 27 Mar 2017 17:27:59 +0000 (18:27 +0100)]
tools: gst-launch: print structure property notifies nicer

One less layer of escaping, but still lots of ugly \.

7 years agoFix win32 libgstreamer.def ordering
Nicolas Dufresne [Fri, 24 Mar 2017 18:33:19 +0000 (14:33 -0400)]
Fix win32 libgstreamer.def ordering

This should fix make distcheck

7 years agoparamspec: Fix array validation logic
Nicolas Dufresne [Wed, 15 Mar 2017 21:31:39 +0000 (17:31 -0400)]
paramspec: Fix array validation logic

A paramspec validation should modify the content to match what the spec
requires and return TURE if a modification happened. This previous
implementation would only fix the first element of the array and return.
It was also return TRUE for empty array, while no modification was
needed.

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

7 years agoarray/fraction: In param types, use get_type() function directly
Nicolas Dufresne [Wed, 22 Mar 2017 17:35:32 +0000 (13:35 -0400)]
array/fraction: In param types, use get_type() function directly

The GST_TYPE macro points to global variables initialized by the
first call to get_type. This is not an issue if you call gst_init()
but unfortunatly pygi will need to acces the param type before
init can be called. This removes an assertion.

7 years agofraction/array: Make get_type() thread safe
Nicolas Dufresne [Wed, 22 Mar 2017 17:33:47 +0000 (13:33 -0400)]
fraction/array: Make get_type() thread safe

Those aren't suppose to be called from multiple thread, but all
fundamental get_type() function are thread safe. Fix it to
be consistent and it may help if we change the typing mechanism
in GStreamer come day.

7 years agogstutils: Add helpers to get/set array properties
Nicolas Dufresne [Mon, 20 Mar 2017 20:46:33 +0000 (16:46 -0400)]
gstutils: Add helpers to get/set array properties

This is to help bindings access properties of type GST_TYPE_ARRAY.
This function will get/set the property and convert form/to
GValueArray.

New API:
  gst_util_set_object_array
  gst_util_get_object_array

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

7 years agostructure: Add get/set_array/list using GValueArray
Nicolas Dufresne [Mon, 20 Mar 2017 19:50:49 +0000 (15:50 -0400)]
structure: Add get/set_array/list using GValueArray

This adds a binding friendly interface to get and set arrays
and list into GstStructure.

New API:
 - gst_structure_set_array
 - gst_structure_set_list
 - gst_structure_get_array
 - gst_structure_get_list

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

7 years agogstvalue: Add transformation to/from GValueArray
Nicolas Dufresne [Mon, 20 Mar 2017 19:40:25 +0000 (15:40 -0400)]
gstvalue: Add transformation to/from GValueArray

This allow transforming a GValue of type G_TYPE_VALUE_ARRAY to
and from GST_TYPE_ARRAY/LIST.

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

7 years agoqueuearray: Add G_BEGIN_DECLS and G_END_DECLS to make it usable from C++ code
Sebastian Dröge [Fri, 24 Mar 2017 12:21:30 +0000 (14:21 +0200)]
queuearray: Add G_BEGIN_DECLS and G_END_DECLS to make it usable from C++ code

7 years agoparamspecs: Use gst_value_array_get_type() for GstParamSpecArray type
Jan Schmidt [Fri, 24 Mar 2017 06:53:31 +0000 (17:53 +1100)]
paramspecs: Use gst_value_array_get_type() for GstParamSpecArray type

When registering GstParamSpecArray, use the gst_value_array_get_type()
function to get the type, rather than the GST_TYPE_ARRAY macro, which
gets it from the _gst_value_array_type, which is in turn only
initialised during gst_init()

Fixes criticals with (python) bindings that look up all the
types from the gobject-introspection info as soon as they
are imported.

/usr/lib64/python3.5/site-packages/gi/module.py:178: Warning: g_param_type_register_static: assertion 'g_type_name (pspec_info->value_type) != NULL' failed
  g_type = info.get_g_type()
/usr/lib64/python3.5/site-packages/gi/module.py:212: Warning: g_type_get_qdata: assertion 'node != NULL' failed
  type_ = g_type.pytype
/usr/lib64/python3.5/site-packages/gi/module.py:226: Warning: g_type_get_qdata: assertion 'node != NULL' failed
  g_type.pytype = wrapper
/usr/lib64/python3.5/site-packages/gi/module.py:226: Warning: g_type_set_qdata: assertion 'node != NULL' failed
  g_type.pytype = wrapper

7 years agobaseparse: Don't forget error returns when processing more
Jan Schmidt [Fri, 17 Mar 2017 11:32:19 +0000 (22:32 +1100)]
baseparse: Don't forget error returns when processing more

If parsing returns a non-OK flow return in the middle
of processing an input buffer, don't overwrite that
if a later return is OK again - the subclass might
return not-linked in the middle, and then discard
subsequent data without pushing while returning OK.

A later success doesn't invalidate the earlier failure,
but we should continue processing after not-linked, so
as to keep parse state consistent.

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

7 years agotools: replace mentions of 'mad' on the gst-launch-1.0 man page
Tim-Philipp Müller [Mon, 20 Mar 2017 16:54:22 +0000 (16:54 +0000)]
tools: replace mentions of 'mad' on the gst-launch-1.0 man page

The 'mad' plugin has been removed. Mention mpg123audiodec instead.

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

7 years agovalue: fix union of int range and int when extending on a side
Vincent Penquerc'h [Mon, 13 Mar 2017 11:08:01 +0000 (11:08 +0000)]
value: fix union of int range and int when extending on a side

The internal representation uses bounds scaled by the step

Add tests to catch those cases

7 years agoqueue: avoid return flushing if we have a not-linked
Thiago Santos [Wed, 15 Mar 2017 05:18:36 +0000 (22:18 -0700)]
queue: avoid return flushing if we have a not-linked

Return the correct flow return instead of returning always flushing.
This would cause queue to convert not-linked to flushing and making
upstream elements stop.

Based on the previous patch for queue2.

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

7 years agoqueue2: avoid return flushing if we have a not-linked
Thiago Santos [Sun, 22 Jan 2017 14:26:56 +0000 (11:26 -0300)]
queue2: avoid return flushing if we have a not-linked

Return the correct flow return instead of returning always flushing.
This would cause queue2 to convert not-linked to flushing and making
upstream elements stop.

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

7 years agotests: bin: add more tests for suppressed flags
Thiago Santos [Sun, 18 Sep 2016 15:02:54 +0000 (12:02 -0300)]
tests: bin: add more tests for suppressed flags

Add tests to confirm flags are persisted even after removing
elements that have those suppressed flags

7 years agobuffer: handle gst_buffer_map failures
Wim Taymans [Fri, 10 Mar 2017 09:13:05 +0000 (10:13 +0100)]
buffer: handle gst_buffer_map failures

7 years agodownloadbuffer: unlock mutex in error case
Wim Taymans [Fri, 10 Mar 2017 09:12:49 +0000 (10:12 +0100)]
downloadbuffer: unlock mutex in error case

7 years agogstvalue: Do more checks when guessing at flagset strings
Jan Schmidt [Thu, 9 Mar 2017 01:09:57 +0000 (12:09 +1100)]
gstvalue: Do more checks when guessing at flagset strings

If guessing that a string matches a flagset, be more thorough
at checking that the string following a string of hex:hex:
actually looks like a flag set string. Add some unit tests
to catch more cases.

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

7 years agomultiqueue: Make min-interleave-time a configurable property
Jan Schmidt [Thu, 9 Mar 2017 01:09:57 +0000 (12:09 +1100)]
multiqueue: Make min-interleave-time a configurable property

Remove a FIXME about making the minimum interleave
buffering a configurable property

7 years agoelementfactory: promote factory not found log message to WARNING
Tim-Philipp Müller [Wed, 8 Mar 2017 14:51:42 +0000 (14:51 +0000)]
elementfactory: promote factory not found log message to WARNING

In most cases people really want to know when an element
could not be created.

7 years agoinputselector: Always proxy position/duration query
Seungha Yang [Mon, 6 Mar 2017 23:21:48 +0000 (08:21 +0900)]
inputselector: Always proxy position/duration query

active-pad switch causes reconfigure event with lock taken,
and upstream element might query the current position or duration
before returning the reconfigure event.
Meanwhile, gst_input_selector_get_linked_pad() is used to get srcpad
inside of default query handle, and it takes also lock.
Since inputselector is still locked by active-pad switch, and so the query
cannot be handled further.

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

7 years agoinfo: document that logging macros don't need newlines at the end
Tim-Philipp Müller [Fri, 3 Mar 2017 12:53:26 +0000 (12:53 +0000)]
info: document that logging macros don't need newlines at the end

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

7 years agopad: add since marker to docs for new API
Tim-Philipp Müller [Fri, 24 Feb 2017 21:35:27 +0000 (21:35 +0000)]
pad: add since marker to docs for new API

7 years agowin32: update .def file for new API
Tim-Philipp Müller [Fri, 24 Feb 2017 21:33:49 +0000 (21:33 +0000)]
win32: update .def file for new API