Commit graph

102 commits

Author SHA1 Message Date
Matthew Waters
a9a2c3d67a build: use -fvisibility=hidden for objc code 2019-12-03 10:17:29 +00:00
Matthew Waters
24d096597b vulkan: implement caching and reuse of a couple of vulkan resources
Includes a new GstVulkanHandlePool base class for pooling different
resources togther.  The descriptor cache object is ported to
GstVulkanHandlePool with the exact same functionality.

A new GstVulkanFenceCache is also implemented for caching fences
which is used internally by GstVulkanDevice for creating or reusing
fences.

The existing GstVulkanTrashFenceList object now caches trash objects.
2019-11-28 23:27:21 +00:00
Jan Schmidt
c0561fb916 meson: Fix plugin symbol export for C++ sources/plugins
The symbol visibility=hidden flag was only being applied to C
compilation, so plugins implemented in C++ would leak extra symbols
than the 2 _get_desc() and _register().

That also showed that the gst-libs opencv C++ lib was not marking
symbols for export correctly because the BUILDING_GST_OPENCV define
wasn't in the C++ args, so fix that too.
2019-11-12 13:00:42 +00:00
Tim-Philipp Müller
97a4d0cd7d meson: build gir even when cross-compiling if introspection was enabled explicitly
This can be made to work in certain circumstances when
cross-compiling, so default to not building g-i stuff
when cross-compiling, but allow it if introspection was
enabled explicitly via -Dintrospection=enabled.

See gstreamer/gstreamer#454 and gstreamer/gstreamer#381.
2019-10-18 00:39:12 +01:00
Saunier Thibault
7a66b16d97 Import GstTranscoder 2019-08-28 13:02:13 +00:00
Niels De Graef
da085a3713 meson: Bump minimal GLib version to 2.44
This means we can use some newer features and get rid of some
boilerplate code using the G_DECLARE_* macros.

As discussed on IRC, 2.44 is old enough by now to start depending on it.
2019-06-02 21:25:24 +02:00
Thibault Saunier
47a49f3381 docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
Tim-Philipp Müller
f691c46e1c Back to development 2019-04-19 11:00:07 +01:00
Tim-Philipp Müller
5fde70bb63 Release 1.16.0 2019-04-19 00:28:58 +01:00
Tim-Philipp Müller
9f1242ae02 Release 1.15.90 2019-04-11 00:32:42 +01:00
Tim-Philipp Müller
35cdefe2e0 g-i: pass --quiet to g-ir-scanner
This suppresses the annoying 'g-ir-scanner: link: cc ..' output
that we get even if everything works just fine.

We still get g-ir-scanner warnings and compiler warnings if
we pass this option.
2019-03-23 18:58:06 +00:00
Tim-Philipp Müller
cacd51fa93 g-i: silence 'nested extern' compiler warnings when building scanner binary
We need a nested extern in our init section for the scanner binary
so we can call gst_init to make sure GStreamer types are initialised
(they are not all lazy init via get_type functions, but some are in
exported variables). There doesn't seem to be any other mechanism to
achieve this, so just remove that warning, it's not important at all.
2019-03-23 18:57:24 +00:00
Tim-Philipp Müller
8fd04194a9 meson: add -Wno-unused also to C++ args when gst debug system is disabled 2019-03-21 11:45:06 +00:00
Tim-Philipp Müller
df4205d30f Back to development 2019-03-04 09:11:56 +00:00
Tim-Philipp Müller
ba62917fbf Release 1.15.2 2019-02-26 11:53:24 +00:00
Seungha Yang
a9c61e467a meson: Add support orc fallback
Allow fallback to orc subproject if any, and add missing orc version check.
Additionally 'dependencies' keyword is removed from find_library,
because it's invalid keyword for find_library.
2019-01-30 19:55:05 +09:00
Tim-Philipp Müller
c68fe0b365 meson: detect opengl api from -base .pc files correctly
There was a mismatch between the .pc files generated by
autotools and by meson that would lead to meson not detecting
that opengl api is available even though it is. This could
lead to build failures when building -bad with meson against
a -base that was built with autotools. The mismatch has now
been rectified but we will still check the old one for backwards
compatibility.
2019-01-22 12:52:25 +00:00
Tim-Philipp Müller
33701d7899 meson: remove some cruft 2019-01-22 12:41:00 +00:00
Tim-Philipp Müller
a60056c6b0 Release 1.15.1 2019-01-17 02:16:59 +00:00
Seungha Yang
1b0b2c37cc meson: Prefer to use join_paths() over '/'
... to avoid mixing '/' and '\' in a path string on Windows.
2018-12-18 16:48:17 +00:00
Seungha Yang
f74ad82ddc tests: Enable unit test on Windows
Allow run some unit tests on Windows.
* Add dependency explicitly for some test cases, otherwise plugins couldn't be
  loaded on uninstalled environment of Windows.
* Add missing GST_PLUGIN_LOADING_WHITELIST on meson build.
2018-12-18 16:48:17 +00:00
Tim-Philipp Müller
6ca10c633d Remove acmmp3dec and acmenc plugins
ACM is an ancient legacy API, and there's no point in
keeping it around for a licensed mp3 decoder now that
mp3 patents have expired and we have a decoder in -good.

We didn't ship this in cerbero anyway. If there's a good
case for the AAC encoder (which is LC only anyway) someone
should write a new plugin based on current APIs, that can
actually be built out of the box.

Fixes #850
2018-12-18 10:06:59 +00:00
Tim-Philipp Müller
0be8a5f8f4 meson: build voamrwbenc plugin 2018-12-17 09:12:53 +00:00
Seungha Yang
4de06ea12c meson: Specify encoding to UTF-8 when building with MSVC
Use build arguments consistent with core and -base. This can also
remove noisy "C4819" warning of non-us locale MSVC.
2018-11-24 19:26:30 +09:00
Matthew Waters
c78f81f410 build: link against the gnustl dependency on android for c++ plugins 2018-11-12 21:37:07 +11:00
Tim-Philipp Müller
84bcd14848 meson: use new 'python' module instead of deprecated 'python3' one
https://github.com/mesonbuild/meson/pull/4169
2018-10-08 20:53:47 +01:00
Tim-Philipp Müller
b6411ae74c libs: fix API export/import and 'inconsistent linkage' on MSVC
For each lib we build export its own API in headers when we're
building it, otherwise import the API from the headers.

This fixes linker warnings on Windows when building with MSVC.

The problem was that we had defined all GST_*_API decorators
unconditionally to GST_EXPORT. This was intentional and only
supposed to be temporary, but caused linker warnings because
we tell the linker that we want to export all symbols even
those from externall DLLs, and when the linker notices that
they were in external DLLS and not present locally it warns.

What we need to do when building each library is: export
the library's own symbols and import all other symbols. To
this end we define e.g. BUILDING_GST_FOO and then we define
the GST_FOO_API decorator either to export or to import
symbols depending on whether BUILDING_GST_FOO is set or not.
That way external users of each library API automatically
get the import.

While we're at it, add new GST_API_EXPORT in config.h and use
that for GST_*_API decorators instead of GST_EXPORT.

The right export define depends on the toolchain and whether
we're using -fvisibility=hidden or not, so it's better to set it
to the right thing directly than hard-coding a compiler whitelist
in the public header.

We put the export define into config.h instead of passing it via the
command line to the compiler because it might contain spaces and brackets
and in the autotools scenario we'd have to pass that through multiple
layers of plumbing and Makefile/shell escaping and we're just not going
to be *that* lucky.

The export define is only used if we're compiling our lib, not by external
users of the lib headers, so it's not a problem to put it into config.h

Also, this means all .c files of libs need to include config.h
to get the export marker defined, so fix up a few that didn't
include config.h.

This commit depends on a common submodule commit that makes gst-glib-gen.mak
add an #include "config.h" to generated enum/marshal .c files for the
autotools build.

https://bugzilla.gnome.org/show_bug.cgi?id=797185
2018-09-24 14:45:56 +01:00
Tim-Philipp Müller
29c7f95884 meson: add glib-checks option to disable API guards and such
We want this enabled by default, also in releases, but people
may want to disable this for performance-critical workloads or
on embedded devices.
2018-09-19 12:02:19 +01:00
Nirbheek Chauhan
cea5e3fcdb meson: Maintain macOS ABI through dylib versioning
Requires Meson 0.48, but the feature will be ignored on older versions
so it's safe to add it without bumping the requirement.

Documentation:
https://github.com/mesonbuild/meson/blob/master/docs/markdown/Reference-manual.md#shared_library
2018-08-31 14:41:00 +05:30
Tim-Philipp Müller
7b8d74c15b meson: add options to disable gobject cast checks and glib asserts
... and define G_DISABLE_DEPRECATED for development versions,
like we do in autotools.
2018-08-18 21:32:11 +01:00
Nirbheek Chauhan
5177f7c7ee meson: host_system is 'ios' when building for iOS
The cross file sets this value, and we use 'ios' in Cerbero.
2018-08-17 04:07:24 +05:30
Nirbheek Chauhan
5c462b9b12 meson: Add an option for tests
This is needed because we don't always have gstreamer-check available,
for instance inside Cerbero on iOS.
2018-08-17 01:49:37 +05:30
Nirbheek Chauhan
546dd512e8 meson: Define HAVE_OSX on macOS and iOS
Needed by the shm, ladspa, and lv2 plugins. Same as Autotools.
2018-08-15 19:44:17 +05:30
Alessandro Decina
c9226e6e80 meson: enable applemedia 2018-08-03 12:51:28 +10:00
Nicolas Dufresne
d2ee9b16fa opencv: Fixup include to follow new standard
This uses the new path for OpenCV headers. OpenCV now have
master headers files per modules, which reduce the amount of
required includes. Note that HIGHGUI was included to get the
imgcodecs includes, which I fixed, though the master header is
missing the C headers, so I included that directly. All the
image stuff should be ported to C++ eventually. Finally, this
patch also update the header checks to reflect the modules that
are really being used.
2018-08-02 11:31:34 -04:00
Nirbheek Chauhan
b55dfb5313 Add feature options for almost all plugins
The only plugins remaining are those that haven't been ported to Meson
yet, and msdk. Also, the tests are still automagic.

https://bugzilla.gnome.org/show_bug.cgi?id=795107
2018-07-27 19:04:38 +05:30
Nirbheek Chauhan
7ef303fa28 meson: Add feature options for many plugins
The rest will be converted later, these are necessary for gst-build to
set options correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=795107
2018-07-27 18:43:52 +05:30
Tim-Philipp Müller
b0404761f0 meson: add 'nls' option to disable translations
And enable by default. Was implicitly disabled because
ENABLE_NLS was not defined.
2018-05-21 12:07:04 +01:00
Nirbheek Chauhan
feac77ace3 meson: Update option names to omit disable_ and with- prefixes
Also yield common options to the outer project (gst-build in our case)
so that they don't have to be set manually.
2018-05-05 20:06:39 +05:30
Xavier Claessens
83d0623293 Meson: Generate pc file for all plugins in bad
https://bugzilla.gnome.org/show_bug.cgi?id=794568
2018-04-25 11:08:09 +01:00
Tim-Philipp Müller
87368e98b4 meson: use -Wl,-Bsymbolic-functions where supported
Just like the autotools build.
2018-04-25 11:00:00 +01:00
Tim-Philipp Müller
b647888dc8 meson: webrtc: use gnome.mkenums_simple() to generate enumtypes files 2018-03-22 14:34:17 +00:00
Alessandro Decina
f49134095c meson: use gnome.mkenums_simple() to generate enumtypes files
Means we no longer need our custom scripts, nor template files.
2018-03-22 14:34:05 +00:00
Tim-Philipp Müller
ce0d902d39 Back to development 2018-03-20 09:39:17 +00:00
Tim-Philipp Müller
48cde372d6 Release 1.14.0 2018-03-19 20:24:08 +00:00
Tim-Philipp Müller
84da104b06 Release 1.13.91 2018-03-13 19:22:13 +00:00
Tim-Philipp Müller
076809ebd5 Release 1.13.90 2018-03-03 22:39:39 +00:00
Mathieu Duponchelle
47208072bf meson: enable more warnings 2018-03-01 18:44:30 +01:00
Tim-Philipp Müller
a0cc9d1af0 Remove schroedinger plugin
No upstream (website disappeared), no maintainer, and
pretty much a fringe format anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=776215
2018-03-01 15:24:39 +00:00
Tim-Philipp Müller
9af73aa1d1 meson: simplify GST_DISABLE_GST_DEBUG check and don't use add_global_*
add_global_arguments() can't be used in subprojects. It's
entirely possible that -bad is a subproject but gstreamer
is picked up from an installed location, so we should
really use add_project_arguments() in both cases.
2018-02-21 19:46:04 +00:00