Commit graph

122 commits

Author SHA1 Message Date
Lubosz Sarnecki
279c2b07b4 glcompositionoverlay: Add class for managing GstVideoOverlayCompositionOverlay buffers
Add a class to store and manage the OpenGL texture,
vertex buffer and GstVideoOverlayRectangle.
Transforms overlay coordinate space to vertex buffer space with aspect ratios in mind.

= Example Pipelines =

Simple pipeline

gst-launch-1.0 videotestsrc ! \
  textoverlay text="Hello World" font-desc="sans bold 30" ! \
  glimagesink

Display 3 static overlays at different positions

gst-launch-1.0 videotestsrc ! \
  textoverlay text="text1" valignment="top" font-desc="sans bold 30" ! \
  textoverlay text="text2" halignment="right" font-desc="sans bold 30" ! \
  textoverlay text="text3" halignment="left" font-desc="sans bold 30" ! \
  glimagesink

Display subtitle file over testsrc

gst-launch-1.0 videotestsrc ! \
  textoverlay name=foo filesrc location=foo.srt ! subparse ! queue ! foo. foo. ! \
  glimagesink

https://bugzilla.gnome.org/show_bug.cgi?id=745107
2017-12-09 19:32:05 +00:00
Julien Isorce
e29e67fa6e Revert "gl: add GstGLContextGPUProcess backend"
This reverts commit b377112ee3.
2017-12-09 19:32:04 +00:00
Jan Schmidt
7b583526e9 gl libs: Add glviewconvert helper object
Add API for a helper object that can convert between different
stereoscopic video representations, and later do filtering
of multiple view streams.

https://bugzilla.gnome.org/show_bug.cgi?id=611157
2017-12-09 19:32:04 +00:00
Matthew Waters
1e87053475 gl: new glbasebuffer GstMemory object
Provides generic handling of GL buffer objects accessible using
the GL bind points (GL_ARRAY_BUFFER, GL_PIXEL_*_BUFFER).

Implementation based off the current GstGLMemory.
2017-12-09 19:32:04 +00:00
Julien Isorce
238edceda4 gl: add GstGLContextGPUProcess backend
It builds its GL vtable from a proc address provided
by the application.
2017-12-09 19:32:02 +00:00
Edward Hervey
0f4c79099e introspection: Don't use g-ir-scanner cache at compile time
It pollutes user directories and we don't need to cache it

https://bugzilla.gnome.org/show_bug.cgi?id=747095
2017-12-09 19:31:58 +00:00
Matthew Waters
2ead0d97ed gl: add a new glbasefilter class below glfilter
It deals with propagating the gl display/contexts throughout the
application/pipeline
2017-12-09 19:31:56 +00:00
Matthew Waters
6bb113f685 gl: add a sync meta for synchronizing across GL contexts
A context can create a GLsync object that can be waited on in order
to ensure that GL resources created in one context are able to be
used in another shared context without any chance of reading invalid
data.

This meta would be placed on buffers that are known to cross from
one context to another.  The receiving element would then wait
on the sync object to ensure that the data to be used is complete.
2017-12-09 19:31:51 +00:00
Sebastian Dröge
90022c451c gstglconfig: Put gstglconfig.h into $(libdir)/gstreamer-1.0/include
It's architecture dependent and should not be placed into the include
directory as the assumption is that all those headers are architecture
independent.

https://bugzilla.gnome.org/show_bug.cgi?id=739767
2017-12-09 19:31:49 +00:00
Lubosz Sarnecki
30591d664c gstopengl: add introspection support
https://bugzilla.gnome.org/show_bug.cgi?id=734482
2017-12-09 19:31:45 +00:00
Sebastian Dröge
b02a6a98b2 gl: Link to all required libraries but not more 2017-12-09 19:31:44 +00:00
Sebastian Dröge
ab7a152cd4 gl: Move GstGLMixer to the plugin for now
It depends on GstAggregator and we don't want to install headers
for that yet.

https://bugzilla.gnome.org/show_bug.cgi?id=732207
2017-12-09 19:31:44 +00:00
Matthew Waters
1f8c784131 gl: move gles2 compat header to glprototypes 2017-12-09 19:31:43 +00:00
Thibault Saunier
30a9ef3768 gl: Port glmixer to the GstVideoAggregator baseclass
https://bugzilla.gnome.org/show_bug.cgi?id=731921
2017-12-09 19:31:43 +00:00
Matthew Waters
32343333aa gl/upload: add GstGLUploadMeta object
That simply deals with the provider aspect of GstVideoGLTextureUploadMeta.
2017-12-09 19:31:41 +00:00
Sebastian Dröge
3770d2a406 gl: Add support for iOS EAGL platform
https://bugzilla.gnome.org/show_bug.cgi?id=703341
2017-12-09 19:31:36 +00:00
Matthew Waters
fba49c3463 gl: add colorconvert object that converts between color spaces/formats
Currently used by both upload and download objects separately.
2017-12-09 19:31:36 +00:00
Rico Tzschichholz
34a4eef1ec build: Fix make dist 2017-12-09 19:31:35 +00:00
Julien Isorce
cb9521ab05 gl: deploy egl headers in gst/gl/egl instead of gst/gl
https://bugzilla.gnome.org/show_bug.cgi?id=703343
2017-12-09 19:31:35 +00:00
Gwenole Beauchesne
14521a89cb gl: fix out-of-source builds.
Always use the locally generated <gst/gl/gstglconfig.h> file.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2017-12-09 19:31:35 +00:00
Matthew Waters
4a28b62d5a gl: add GModule libs for win32 2017-12-09 19:31:34 +00:00
Matthew Waters
9b5a5a3c37 gl: only link against gstegl if we are using egl
Assuming if we are building egl that the egl library is built
2017-12-09 19:31:34 +00:00
Matthew Waters
f98fee49c2 gl: add path of the gstegl library
Temporary until we merge the two libraries
2017-12-09 19:31:34 +00:00
Matthew Waters
891f7e2ce8 Revert "gl: add dep on gstegl"
It was already in _LIBADD

This reverts commit b10a353080.
2017-12-09 19:31:34 +00:00
Matthew Waters
95e7f50355 gl: add dep on gstegl
Temporary until we merge the two libraries
2017-12-09 19:31:34 +00:00
Matthew Waters
894035f0d7 gl: Add EGLDisplay display subclass 2017-12-09 19:31:34 +00:00
Matthew Waters
10f18a151e [879/906] build: don't add X_CFLAGS to CFLAGS
It should already be included if needed inside GL_CFLAGS
2017-12-09 19:31:33 +00:00
Tim-Philipp Müller
b0999fbc03 [842/906] Fix gstglconfig.h-related 'make distcheck' issues
Fix srcdir vs. builddir issue in docs and 'files left after
disclean' issue for gstglconfig.h
2017-12-09 19:31:32 +00:00
Julien Isorce
dd679dee25 [803/906] raspberrypi: add support for dispmanx
See https://bugzilla.gnome.org/show_bug.cgi?id=703342
2017-12-09 19:31:31 +00:00
Matthew Waters
b8b9fced19 [796/906] move egl into its own directory 2017-12-09 19:31:31 +00:00
Matthew Waters
e80533dcee [793/906] add a GstGLContext object that will be the basis of OpenGL contexts
At the moment it just sits in between GstGLDisplay and GstGLWindow
performing some of the stuff that GstGLWindow used to do.
2017-12-09 19:31:30 +00:00
Sebastian Dröge
192b37980f [735/906] gl: Add support for Android
https://bugzilla.gnome.org/show_bug.cgi?id=703340
2017-12-09 19:31:29 +00:00
Sebastian Dröge
f7998a2e98 [733/906] gl: Major header and include cleanup 2017-12-09 19:31:29 +00:00
Julien Isorce
d17a4381b1 [732/906] build: fix repeated typedefs
Write forward declarations in another way to avoid
repeated typedefs "error: redefinition of typedef".
Raised when using i686-apple-darwin11-llvm-gcc-4.2
It seems that C apple compiler does not support
C11 feature.

https://bugzilla.gnome.org/show_bug.cgi?id=703885
2017-12-09 19:31:29 +00:00
Sebastian Dröge
92c66f55bc [727/906] egl: Refactor EGL logic into a helper object 2017-12-09 19:31:29 +00:00
Matthew Waters
1c84c0fb96 [714/906] Add GstGLFramebuffer to replace _display_gen_fbo and friends
This version is simply API compatible with _display_gen_fbo.
The next version will likely revamp the API
2017-12-09 19:31:28 +00:00
Matthew Waters
9c633e658a [700/906] display: move most of the code into utils for sorting later
This contains a hack that essentially requires one GstGLDisplay
per process.
2017-12-09 19:31:28 +00:00
Matthew Waters
a87b070abb [640/906] build: add missing file to built sources 2017-12-09 19:31:26 +00:00
Matthew Waters
1ec4ffc824 [630/906] display: add gl api checking
i.e. check for cases where the window wants a different API than
what the library was compiled with
2017-12-09 19:31:26 +00:00
Matthew Waters
344253e860 [624/906] OPENGL_ES2 => HAVE_GLES2 and add HAVE_OPENGL
use GstGLAPI to determine which code paths to execute.
perform some cleanups
2017-12-09 19:31:26 +00:00
Matthew Waters
ccabf4545a [618/906] add wayland-egl window backend 2017-12-09 19:31:26 +00:00
Matthew Waters
80fdf4c30c [616/906] move window-specific code into seperate subfolders 2017-12-09 19:31:26 +00:00
Matthew Waters
b36b9f4a4a [611/906] cocoa port of determining gl platform at runtime 2017-12-09 19:31:25 +00:00
Matthew Waters
d857c58015 [609/906] win32 port of determining GL platform at runtime
- add GstGLWindowWin32 and GstGLWindowWin32WGL along the same lines as the
  X11 variants
2017-12-09 19:31:25 +00:00
Matthew Waters
538643e3c0 [606/906] determine the GL platform to use at runtime
- Make GstGLWindow subclassablerather than specified at compile time.
- Add GstGLWindowX11 for x11 windows and two subclasses, GstGLWindowX11GLX
  and GstGLWindwX11EGL for GLX and EGL repectively. (win32 and cocoa
  ports to come)
- Also cleanup GL library detection in configure.ac
2017-12-09 19:31:25 +00:00
Matthew Waters
574612f129 [576/906] remove uneeded GstGLMeta (use GstVideoMeta) 2017-12-09 19:31:25 +00:00
Matthew Waters
a8b1853755 [517/906] add GstGLBufferPool
which adds GstGLMeta to buffers
2017-12-09 19:31:24 +00:00
Matthew Waters
8527e1cd66 [516/906] add skeleton GstGLMeta
the GstVideoMeta _map/unmap functions still need implementing
2017-12-09 19:31:24 +00:00
Matthew Waters
ffdc6d496e [514/906] add GstGLMemory and allocator
implement custom GstMemory for GL textures
currently map/unmap returns NULL although it might be favourable to upload/download/cache the image data
2017-12-09 19:31:24 +00:00
Matthew Waters
eb362969f1 [513/906] Remove GstGLBuffer (to be replaced by GstGLMeta) 2017-12-09 19:31:24 +00:00
Matthew Waters
1a034ba18d [502/906] Update versioning for gstreamer 1.0
Renames GST_MAJORMINOR to GST_API_VERSION in build files
removes -lgstinterfaces from _LDADD flags
2017-12-09 19:31:24 +00:00
Luc Deschenaux
500210b354 [471/906] glshader: add dynamic fragment shader filter
Also add fragment shader parser
Fix bug #600195
2017-12-09 19:31:23 +00:00
Jan Schmidt
e013586f46 [459/906] Fix distcheck. 2017-12-09 19:31:23 +00:00
Julien Isorce
525701cfca [388/906] just fix builds and indent 2017-12-09 19:31:22 +00:00
Stefan Kost
fa9177d037 [376/906] build: support openGLES on linux via autofoo. Partialy fixes #593786
Add a pkg-config check for opengl and if not found assume opengl-es. If user has
none of both one still get build error later on (there is no pkg-config for
opengl-es).
Add more files to EXTRA dist and build the opengles variant if selected.
Simmilar changes could be done for the winCE backend.
2017-12-09 19:31:22 +00:00
Sebastian Dröge
3b0dacd8d6 [346/906] Fix linking by providing libtool the correct --tag parameter 2017-12-09 19:31:21 +00:00
David Schleef
09704b9e70 [329/906] Build for Cocoa on darwin, with various fixes 2017-12-09 19:31:21 +00:00
David Schleef
d98d188ad7 [290/906] Set GL_LIBS correctly in configure.ac
This doesn't detect the existence of libraries, which needs to
be fixed.
2017-12-09 19:31:20 +00:00
David Schleef
978ded841c [289/906] build fixes for Windows libraries 2017-12-09 19:31:20 +00:00
Julien Isorce
745e20a2e1 [262/906] Works on linux but still some bugs. Fix autotools build. 2017-12-09 19:31:20 +00:00
Julien Isorce
da3c0fd570 [257/906] begin gstglwindow_x11.c implementation 2017-12-09 19:31:19 +00:00
Filippo Argiolas
c47fa4dc62 [127/906] Imported GstGLShader from cvs branch. Added a demo laplacian convolution filter to demonstrate how this can be integrated with minimum effort. 2017-12-09 19:31:17 +00:00
David Schleef
9f305eecb8 [125/906] Add libraries as appropriate to fix compilation 2017-12-09 19:31:17 +00:00
Julien Isorce
e9f924910c [096/906] up
git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@508 93df14bb-0f41-7a43-8087-d3e2a2f0e464
2017-12-09 19:31:17 +00:00
Julien Isorce
bca92ed962 [091/906] start to revive the gltestsrc
git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@503 93df14bb-0f41-7a43-8087-d3e2a2f0e464
2017-12-09 19:31:17 +00:00
Julien Isorce
f386219271 [065/906] up
git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@428 93df14bb-0f41-7a43-8087-d3e2a2f0e464
2017-12-09 19:31:16 +00:00
David Schleef
98e2942fed [061/906] First SVN commit. This commit is a hack to make git-rebase work 2017-12-09 19:31:16 +00:00
Tim-Philipp Müller
71e5427e06 [058/906] * gst-libs/gst/gl/Makefile.am: The library needs to link against libgstvideo-0.10. * gst/gl/Makefile.am: The plugin does not (I think) need to link against GL or libgstvideo, since our new gstreamer GL library already does that, but it does need to link against our brand-new libgstgl-0.10. 2017-12-09 19:31:16 +00:00
David Schleef
894db7a964 [056/906] * configure.ac: Readd pre-pkgconfig OpenGL detection, since pkgconfig requires Mesa from git master. * gst/gl/glimagesink.c: * gst/gl/gstopengl.c: Move debug category initialization to element. * gst-libs/gst/gl/Makefile.am: * gst-libs/gst/gl/gstglfilter.c: * gst-libs/gst/gl/gstglfilter.h: * gst/gl/gstglfilter.c: * gst/gl/gstglfilter.h: Move glfilter to library. * pkgconfig/gstreamer-plugins-gl.pc.in: Add gstreamer-base-0.10 as a requirement. * po/en.po: Update. 2017-12-09 19:31:16 +00:00
Tim-Philipp Müller
2134ce8c9c [055/906] * configure.ac: * docs/Makefile.am: * gst-libs/Makefile.am: * gst-libs/gst/gl/Makefile.am: * gst/gl/Makefile.am: * tests/Makefile.am: Fix compilation in uninstalled setup and some distcheck-y bits (not all though). 2017-12-09 19:31:16 +00:00
David Schleef
e0f6fa8e62 [054/906] Fixes to make project compile. Probably still doesn't work. * configure.ac: * gst-libs/gst/Makefile.am: * gst-libs/gst/gl/Makefile.am: * gst/Makefile.am: * gst/gl/Makefile.am: * gst/gl/gstgltestsrc.c: * po/LINGUAS: * win32/MANIFEST: 2017-12-09 19:31:16 +00:00
David Schleef
d2dd3ef923 [053/906] Add project infrastructure. Not complete, doesn't work. * .cvsignore: * AUTHORS: * COPYING: * COPYING.LIB: * INSTALL: * Makefile.am: * NEWS: * README: * RELEASE: * REQUIREMENTS: * autogen.sh: * configure.ac: * docs/.cvsignore: * docs/Makefile.am: * docs/libs/Makefile.am: * docs/plugins/Makefile.am: * docs/version.entities.in: * ext/Makefile.am: * gst-libs/Makefile.am: * gst-libs/gst/Makefile.am: * gst-libs/gst/gl/Makefile.am: * gst-plugins-gl.doap: * gst-plugins-gl.spec.in: * gst/Makefile.am: * m4/.cvsignore: * m4/Makefile.am: * pkgconfig/.cvsignore: * pkgconfig/Makefile.am: * pkgconfig/gstreamer-plugins-gl-uninstalled.pc.in: * pkgconfig/gstreamer-plugins-gl.pc.in: * sys/Makefile.am: * tests/Makefile.am: * tests/check/Makefile.am: * tests/examples/Makefile.am: * tests/icles/Makefile.am: * tools/Makefile.am: * win32/common/config.h.in: 2017-12-09 19:31:16 +00:00