platform/upstream/gstreamer.git
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

6 years agoregistrychunk: Fix leak in failed case of reading plugin dependency string
Heekyoung Seo [Tue, 20 Jun 2017 07:10:07 +0000 (16:10 +0900)]
registrychunk: Fix leak in failed case of reading plugin dependency string

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

6 years agocontroller: Export boxed type copy/free functions for GstControlPoint
Sebastian Dröge [Tue, 20 Jun 2017 07:00:16 +0000 (10:00 +0300)]
controller: Export boxed type copy/free functions for GstControlPoint

6 years agobase: Export boxed type copy/free functions for the remaining types
Sebastian Dröge [Tue, 20 Jun 2017 06:57:01 +0000 (09:57 +0300)]
base: Export boxed type copy/free functions for the remaining types

6 years agoptp: Unref timeout GSource for delay requests
Andrejs Vasiljevs [Fri, 16 Jun 2017 13:34:00 +0000 (13:34 +0000)]
ptp: Unref timeout GSource for delay requests

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

6 years agomeson: fix tests build with --werror
Tim-Philipp Müller [Thu, 15 Jun 2017 09:51:50 +0000 (10:51 +0100)]
meson: fix tests build with --werror

Need to pass -DGST_DISABLE_DEPRECATED to avoid warnings when
testing deprecated API such as gst_uri_construct().

Also remove #ifndef GST_DISABLE_DEPRECATED guard from header
file, we don't use those any more for functions, the
GST_DEPRECATED_FOR macro is enough.

6 years agogsturi: Fixed incorrect escaping of path as a generic string
Dimitrios Katsaros [Wed, 14 Jun 2017 15:36:57 +0000 (17:36 +0200)]
gsturi: Fixed incorrect escaping of path as a generic string

The gst_uri_construct function was escaping the location string
as a generic uri string. This is incorrect since the slash('/')
characters are reserved for use in this exact case. The patch
changes the escape_string function mode to handle the path correctly.

I have deleted the escape_string function since it is no longer being
used and have created a unit test for the function. I have also
deprecated this function in favour of the GstUri API.

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

6 years agomeson: Do not use path separator in test names
Thibault Saunier [Wed, 7 Jun 2017 15:42:28 +0000 (11:42 -0400)]
meson: Do not use path separator in test names

Avoiding warnings like:

    WARNING: Target "elements/audioamplify" has a path separator in its name.

6 years agobin: Put correct annotations on gst_bin_add() too
Sebastian Dröge [Wed, 31 May 2017 17:40:00 +0000 (20:40 +0300)]
bin: Put correct annotations on gst_bin_add() too

7 years agobasesrc: Hold object lock while updating latency
Olivier Crête [Mon, 22 May 2017 22:51:12 +0000 (00:51 +0200)]
basesrc: Hold object lock while updating latency

Otherwise in gst_base_src_query_latency(), it ended up
sometimes thinking it wasn't -1 when it was actually.

7 years agoobject: Add missing annotations to get_value_array() / get_value_g_array()
Sebastian Dröge [Mon, 22 May 2017 09:01:41 +0000 (12:01 +0300)]
object: Add missing annotations to get_value_array() / get_value_g_array()

Same as already used in GstControlBinding.

7 years agomeson: actually remove config.h.meson as well
Tim-Philipp Müller [Sun, 21 May 2017 17:11:36 +0000 (18:11 +0100)]
meson: actually remove config.h.meson as well

7 years agoprotection: Fix annotations for gst_protection_select_system()
Sebastian Dröge [Sun, 21 May 2017 16:16:57 +0000 (19:16 +0300)]
protection: Fix annotations for gst_protection_select_system()

7 years agoplugin: Stop plugin symbol name at first .
Olivier Crête [Sun, 21 May 2017 15:04:10 +0000 (17:04 +0200)]
plugin: Stop plugin symbol name at first .

This is because the python plugin ends up named
libgstpython.cpython-35m-x86_64-linux-gnu.so so we need to stop
at the first dot.

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

7 years agomeson: don't need config.h.meson any more
Tim-Philipp Müller [Sun, 21 May 2017 13:26:01 +0000 (14:26 +0100)]
meson: don't need config.h.meson any more

Meson does the largefile support automatically nowadays, and
can generate a config.h from configuration_data() without a
template as input.

7 years agomeson: make C++ compiler optional
Tim-Philipp Müller [Sun, 21 May 2017 08:02:54 +0000 (09:02 +0100)]
meson: make C++ compiler optional

It's only used to build tests to see if our headers are C++ clean.

7 years agomeson: check: generate .gir file
Tim-Philipp Müller [Sat, 20 May 2017 16:57:39 +0000 (17:57 +0100)]
meson: check: generate .gir file

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

7 years agoparse: Make gst_parse_context_copy() public for bindings
Sebastian Dröge [Sat, 20 May 2017 16:42:51 +0000 (19:42 +0300)]
parse: Make gst_parse_context_copy() public for bindings

7 years agotools: dist new gst-stats man page
Tim-Philipp Müller [Sat, 20 May 2017 15:44:14 +0000 (16:44 +0100)]
tools: dist new gst-stats man page

Fixes meson build from tarball.

7 years agoDist meson ptp helper install script
Tim-Philipp Müller [Sat, 20 May 2017 15:43:39 +0000 (16:43 +0100)]
Dist meson ptp helper install script

Fixes meson build from tarball.

7 years agoleaks: Handle subclasses in filters even for unhandled/lazy loaded types
Thibault Saunier [Sat, 20 May 2017 11:24:18 +0000 (13:24 +0200)]
leaks: Handle subclasses in filters even for unhandled/lazy loaded types

Using typename in the set of unhandled types instead of the quark so
that we also handle subclasses as with other filters.

7 years agodebugutils: add missing E character to the legend
Matthew Waters [Fri, 19 May 2017 17:22:27 +0000 (19:22 +0200)]
debugutils: add missing E character to the legend

The E character on pads indicates the presence of the EOS flag.

7 years agogst-plugin: allow '-' in plugin file name
Matej Knopp [Wed, 17 May 2017 19:50:25 +0000 (21:50 +0200)]
gst-plugin: allow '-' in plugin file name

'-' will be translated to underscore when determining symbol name

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

7 years agogst: ref_sink() some more floating references returned by g_object_new()
Christoph Reiter [Mon, 20 Jun 2016 13:58:59 +0000 (15:58 +0200)]
gst: ref_sink() some more floating references returned by g_object_new()

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

7 years agogst: Clear floating flag in constructor of all GstObject subclasses that are not...
Sebastian Dröge [Mon, 15 May 2017 15:58:38 +0000 (18:58 +0300)]
gst: Clear floating flag in constructor of all GstObject subclasses that are not owned by any parent

I.e. most of them unfortunately.

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

7 years agoallocator: ref_sink() the global sysmem allocator after creation
Sebastian Dröge [Mon, 15 May 2017 11:34:57 +0000 (14:34 +0300)]
allocator: ref_sink() the global sysmem allocator after creation

It's not owned by the first one to ask for it, but by this very code.

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

7 years agogst: Don't ref_sink() GstObject subclasses in instance_init/constructor
Sebastian Dröge [Mon, 15 May 2017 11:32:48 +0000 (14:32 +0300)]
gst: Don't ref_sink() GstObject subclasses in instance_init/constructor

This is something bindings can't handle and it causes leaks. Instead
move the ref_sink() to the explicit, new() constructors.

This means that abstract classes, and anything that can have subclasses,
will have to do ref_sink() in their new() function now. Specifically
this affects GstClock and GstControlSource.

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

7 years agogst: Correctly annotate functions taking floating reference parameters and returning...
Sebastian Dröge [Mon, 15 May 2017 11:32:00 +0000 (14:32 +0300)]
gst: Correctly annotate functions taking floating reference parameters and returning floating references

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

7 years agogst: Handle floating references consistently
Sebastian Dröge [Mon, 15 May 2017 11:29:05 +0000 (14:29 +0300)]
gst: Handle floating references consistently

If a function takes a floating reference parameter, it should also be
sinked in error cases. Otherwise the function behaves differently
between error and normal cases, which is impossible for bindings to
handle.

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

7 years agogst: Fix floating reference inconsistencies in error cases
Vineeth TM [Fri, 10 Jul 2015 06:36:59 +0000 (15:36 +0900)]
gst: Fix floating reference inconsistencies in error cases

If a function takes a floating reference and sinks it, it should also do
that in error cases. I.e. call ref_sink() followed by unref().

Otherwise the reference counting behaviour of the function will be
different between the good and the error case, and simply inconsistent.

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

7 years agoAlso use default visibility for plugins symbol
Nicolas Dufresne [Tue, 16 May 2017 17:31:06 +0000 (13:31 -0400)]
Also use default visibility for plugins symbol

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