Commit graph

1143 commits

Author SHA1 Message Date
Tim-Philipp Müller
dc29bc4e13 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 08:45:34 +01:00
Nicolas Dufresne
8ee306eb3f allocators: Add DMABuf synchronization
When doing CPU Access, some architecture may require caches to be
synchronize before use. Otherwise, some visual artifact may be
visible, as the CPU modification may still resides in cache.

https://bugzilla.gnome.org/show_bug.cgi?id=794216
2018-03-21 15:58:06 -04:00
Tim-Philipp Müller
694da6b476 Back to development 2018-03-20 09:15:38 +00:00
Tim-Philipp Müller
46fc41f1a8 Release 1.14.0 2018-03-19 20:15:03 +00:00
Sebastian Dröge
f6520ee9db pkg-config: Add orc-0.4 to Requires.private of gstreamer-audio and gstreamer-video
https://bugzilla.gnome.org/show_bug.cgi?id=794307
2018-03-14 09:34:39 +02:00
Tim-Philipp Müller
abcb96b698 Release 1.13.91 2018-03-13 19:13:19 +00:00
Tim-Philipp Müller
5f9c61e08f gl: only enable gbm backend if gudev is available
gudev/gudev.h is included unconditionally, so only enable
the gbm backend if gudev was actually found. This also
matches the meson build behaviour.

Should fix build on GNOME SDK builder.
2018-03-05 20:00:34 +00:00
Tim-Philipp Müller
7d18a97273 Release 1.13.90 2018-03-03 22:07:25 +00:00
Nicolas Dufresne
fbc2375d57 gl: Move DRM_CFLAGS into gst-gl.m4 2018-02-27 13:12:59 -05:00
Carlos Rafael Giani
4df219f336 gl: Add Mesa3D GBM backend
This makes it possible to use the GStreamer OpenGL elements without a
windowing system if a libdrm- and Mesa3D-supported GPU is present

https://bugzilla.gnome.org/show_bug.cgi?id=782923
2018-02-23 21:09:45 -05:00
Carlos Rafael Giani
79f9f9e600 configure: Add configure checks for libdrm and gudev
https://bugzilla.gnome.org/show_bug.cgi?id=782923
2018-02-23 21:09:45 -05:00
Tim-Philipp Müller
8292ab8236 Back to development 2018-02-15 19:44:17 +00:00
Tim-Philipp Müller
a009168b0e Release 1.13.1 2018-02-15 17:01:15 +00:00
Tim-Philipp Müller
17680c2704 configure: fix build with --disable-external 2018-02-15 12:51:10 +00:00
Tim-Philipp Müller
8c5725c4ea audiomixer, audiointerleave: add to build
https://bugzilla.gnome.org/show_bug.cgi?id=791218
2018-02-13 16:38:32 +00:00
Tim-Philipp Müller
9bfbda8291 autotools: use -fno-strict-aliasing where supported
https://bugzilla.gnome.org/show_bug.cgi?id=769183
2018-02-05 08:32:17 +01:00
Tim-Philipp Müller
c117460420 glcolorconvert: re-enable -Wformat-nonliteral warning
We can pass string constants here to g_strdup_printf(),
so do so and re-enable the -Wformat-nonliteral warning
we had to disable when merging the opengl libs.
2018-01-03 09:21:49 +00:00
Edward Hervey
5a017f58c4 configure: Fix build without gl plugins
The AM_CONDITIONAL always need to be evaluated, regardless of
whether we are building with or without gl plugins (the actual
checks are only called in AG_GST_GL_PLUGIN_CHECKS).
2018-01-03 08:47:58 +01:00
Tim-Philipp Müller
8227135f3b gl: hook up to build system
Tests and documentation will follow separately.

The mixer elements in the opengl plugin need to stay
in -bad for now since they use GstVideoAggregator.

https://bugzilla.gnome.org/show_bug.cgi?id=754094
2017-12-19 12:01:48 +00:00
Tim-Philipp Müller
a02b0f7b05 autotools: stop controlling symbol visibility with -export-symbols-regex
Instead, use -fvisibility=hidden and explicit exports via GST_EXPORT.
This should result in consistent behaviour for the autotools and
Meson builds.
2017-11-26 18:30:57 +00:00
Sebastian Dröge
88975f224e examples/snapshot: Does not need GTK but only gdk-pixbuf 2017-08-09 12:27:05 +03:00
Nicolas Dufresne
8e6c6266d7 Remove plugin specific static build option
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 13:42:07 -04:00
Sebastian Dröge
cbb900ac66 Back to development 2017-05-04 18:59:14 +03:00
Sebastian Dröge
112cc33d6a Release 1.12.0 2017-05-04 15:37:27 +03:00
Sebastian Dröge
1debd803de Release 1.11.91 2017-04-27 17:25:49 +03:00
Sebastian Dröge
910b2ca6d2 Release 1.11.90 2017-04-07 16:31:10 +03:00
Sebastian Dröge
38ec8f396f rawparse: Move to gst-plugins-base
https://bugzilla.gnome.org/show_bug.cgi?id=774544
2017-02-25 14:48:40 +02:00
Sebastian Dröge
1b76f88329 Back to development 2017-02-24 15:37:33 +02:00
Sebastian Dröge
b078f0ad40 Release 1.11.2 2017-02-24 15:07:06 +02:00
Sebastian Dröge
c0001ee2c0 Back to development 2017-01-12 16:32:42 +02:00
Sebastian Dröge
b728e91ebb Release 1.11.1 2017-01-12 15:30:02 +02:00
Tim-Philipp Müller
4dd7a25d2d Remove generated .spec file
Likely extremely bitrotten, and we should not ship this anyway.
2016-12-14 09:48:02 +00:00
Tim-Philipp Müller
6bb574ba89 docs: design: remove outdated draft docs (hw-acceleration, va) 2016-12-08 23:15:31 +00:00
Tim-Philipp Müller
5b4010c7b5 win32: remove copies of generated headers 2016-11-20 15:43:42 +00:00
Jan Schmidt
2c786edb99 pbtypes: Add a stub plugin that owns the plugins-base dynamic types
https://bugzilla.gnome.org/show_bug.cgi?id=750079
2016-11-02 11:24:11 +11:00
Sebastian Dröge
ec447d421f Back to development 2016-11-01 18:53:15 +02:00
Sebastian Dröge
9c3043470e Release 1.10.0 2016-11-01 17:53:24 +02:00
Sebastian Dröge
45a04f9d8b Release 1.9.90 2016-09-30 13:01:53 +03:00
Arun Raghavan
4b5f78337a audioresample: Separate out CFLAGS used for SSE* code
This makes sure that we only build files that need explicit SIMD support
with the relevant CFLAGS. This allows the rest of the code to be built
without, and specific SSE* code is only called after runtime checks for
CPU features.

https://bugzilla.gnome.org/show_bug.cgi?id=729276
2016-09-29 18:37:08 +05:30
Sebastian Dröge
fef0efdddb configure: Depend on gstreamer 1.9.2.1 2016-09-14 11:30:28 +02:00
Sebastian Dröge
6f9fedd857 configure: Require orc >= 0.4.24
Needed for being able to compile video.orc

https://bugzilla.gnome.org/show_bug.cgi?id=770698
2016-09-01 12:38:14 +03:00
Sebastian Dröge
7bb1064372 Back to development 2016-09-01 12:26:40 +03:00
Sebastian Dröge
47b7c8dc75 Release 1.9.2 2016-09-01 12:26:20 +03:00
Josep Torra
f70aa5b033 build: silence error about pthread for 'make check' in osx
Fixes "clang: error: argument unused during compilation: '-pthread'"
2016-08-26 21:01:40 +02:00
Sebastian Dröge
ca2205f773 Back to development 2016-07-06 13:51:00 +03:00
Sebastian Dröge
08f993d090 Release 1.9.1 2016-07-06 13:06:06 +03:00
Edward Hervey
d514e79bee playback: New elements
With contributions from Jan Schmidt <jan@centricular.com>

* decodebin3 and playbin3 have the same purpose as the decodebin and
playbin elements, except make usage of more 1.x features and the new
GstStream API. This allows them to be more memory/cpu efficient.

* parsebin is a new element that demuxers/depayloads/parses an incoming
stream and exposes elementary streams. It is used by decodebin3.
It also automatically creates GstStream and GstStreamCollection for
elements that don't natively create them and sends the corresponding
events and messages

* Any application using playbin can use playbin3 by setting the env
variable USE_PLAYBIN3=1 without reconfiguration/recompilation.
2016-06-30 14:15:47 +02:00
Nirbheek Chauhan
d5ceb7ebb8 configure: Need to add -DGST_STATIC_COMPILATION when building only statically
https://bugzilla.gnome.org/show_bug.cgi?id=767463
2016-06-23 23:45:41 +01:00
Wim Taymans
e74c207433 audio-resampler: Fix compilation of intrinsics
Only compile intrinsics when we are building for the selected
architecture.
Add sse4.1 optimized int32 resampler code.
2016-03-28 13:25:50 +02:00
Sebastian Dröge
2d1c9f8c0f Back to development 2016-03-24 13:32:52 +02:00