Commit graph

70 commits

Author SHA1 Message Date
Matthew Waters
6bee9b9c93 [647/906] remove dependecy on glew 2017-12-09 19:31:27 +00:00
Matthew Waters
c692a610de [643/906] display: privatise most of the struct 2017-12-09 19:31:26 +00:00
Matthew Waters
e983f02e87 [642/906] add gstglconfig.h for apps to find out what our capabilites are
ie libgstgl can be compiled with any combination of opengl/gles2
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
4d88e9977e [608/906] add GST_GL_PLATFORM_ANY for choosing any platform 2017-12-09 19:31:25 +00:00
Matthew Waters
4c35d682c9 [603/906] update FSF address 2017-12-09 19:31:25 +00:00
Matthew Waters
d55bbf7f55 [600/906] docs: add docs for new objects and expand on some existing ones 2017-12-09 19:31:25 +00:00
Matthew Waters
39866ea830 [590/906] up/download: fix scaling on transfer
i.e. uploading from a 10x10 video frame to a 20x20 texture into another 30x30 videoframe
2017-12-09 19:31:25 +00:00
Matthew Waters
3ee54d3135 [573/906] add upload and download library objects
allows multiple upload pipelines that previously wasn't possible
 (i.e. upload RGB and I420 and ... on the same GstGLDisplay)
2017-12-09 19:31:25 +00:00
Matthew Waters
0d5b8bbc38 [524/906] GstGLDisplay: rework the download code
data paramaters now take GstVideoFrame
remove redundant parameters
2017-12-09 19:31:24 +00:00
Matthew Waters
6528aba8c9 [515/906] GstGLDisplay: rework gen_texture and upload
rename functions so that other code can create textures in the GL thread
change upload functions to take a GstVideoFrame
default to GLSL for upload conversion
2017-12-09 19:31:24 +00:00
Julien Isorce
67bc74ec3f [498/906] gldisplay: don't pass non-constant strings as printf format strings
Fixes 'format not a string literal and no format arguments' on darwin
2017-12-09 19:31:23 +00:00
Julien Isorce
7c79cc5c41 [481/906] feature checking: error out instead of doing nothing if an OpenGL feature is not present
Fix bug #572767
2017-12-09 19:31:23 +00:00
Tim-Philipp Müller
4f09396824 [463/906] Add some more G_{BEGIN,END}_DECLS to public headers
https://bugzilla.gnome.org/show_bug.cgi?id=637260
2017-12-09 19:31:23 +00:00
Julien Isorce
ade2526b8f [455/906] glimagesink: handle pixel-aspect-ratio 2017-12-09 19:31:23 +00:00
Julien Isorce
36a51c6e02 [406/906] glimagesink: add a client-data property
Also add it to glfilterapp.

Fixes #559131
2017-12-09 19:31:22 +00:00
Julien Isorce
b85ffef956 [387/906] glmixer: add a glmixer base element
glmixer can be seen as a glfilter except it handles N requested
sink pads.
Each sink pad and the src pad are video/x-raw-gl.
glmixer is responsible for managing different framerates from inputs.
It uses OpenGL context sharing. It means that each input is in its
own OpenGL context shared together and shared with the OpenGL context
of the ouput gl chain.
Also add a glmosaic which is an example of implementation of glmixer.
For now glmosaic is a cube but it will be fixed in the next commits.
For now the glmixer has some weird behaviours in some configurations
but it will be improved in the next commits.
The autotools builds is temporarly broken since those changes
have been made on win32.
2017-12-09 19:31:22 +00:00
Julien Isorce
95dbe51fef [378/906] gldisplay: avoid to request gl thread when deleting a texture
A texture is not destroyed when when we are done with it.
This texture is just added to the texture pool in order to be
re-used. In this case no OpenGL code is executed so we do not need to
request gl thread.
2017-12-09 19:31:22 +00:00
Jan Schmidt
3fbe0f0a98 [352/906] fix typo
Change GST_GL_DISPLAY_PROJECTION_PERSPECIVE to
GST_GL_DISPLAY_PROJECTION_PERSPECTIVE.

Re-indent a couple of files that needed it.
2017-12-09 19:31:22 +00:00
Julien Isorce
f631cf4976 [334/906] [win32/winCE] fix some pointer cast warnings with mingw
And turn off deprecated Wp64 msvc compiler option.
2017-12-09 19:31:21 +00:00
Julien Isorce
d43fdd3daf [333/906] add force-aspect-ratio support 2017-12-09 19:31:21 +00:00
Julien Isorce
2eb9cb551c [330/906] Can now share textures with an external gl context
The external opengl context must be specify when creating
our OpenGL context (glx) or just after (wgl).
When calling glXCreateContext or wglShareLists, the
external opengl context must not be current.
Then our gl context can be current in the gl thread while
the external gl context is current in an other thread.
See tests/examples/clutter/cluttershare.c
2017-12-09 19:31:21 +00:00
Julien
fd2028d109 [326/906] add X backend for OpenGL ES 2.0 2017-12-09 19:31:21 +00:00
Julien Isorce
61a8f34442 [321/906] add OpenGL ES 2.x support.
In OpenGL 2.x for Embedded System, a lot of basic scene/draw functions
have been removed. It means that everything is made using vertex and
fragment shaders.
I have also added a gstglwindow backend for winCE that uses EGL
(Native Platform Graphics Intercace) (which is a full part of
OpenGL ES specification). It remove the use of wgl/glx functions.
2017-12-09 19:31:21 +00:00
Julien Isorce
e1fd4232ad [280/906] Remove set_visible, because it's now automatically done when the first post redisplay comes. 2017-12-09 19:31:20 +00:00
Julien Isorce
128315ae60 [275/906] Make sure the gl ressoures are destroyed before to destroy gl window 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
Julien Isorce
c7ca0d5c2f [253/906] win32: re-implement supports for gst xoverlay interface, on this branch 2017-12-09 19:31:19 +00:00
Julien Isorce
fc9479d289 [251/906] Properly clean OpenGL contexts 2017-12-09 19:31:19 +00:00
Julien Isorce
c4c9897f16 [249/906] begin GstGLWindow in order to totally remove gstfreeglut 2017-12-09 19:31:19 +00:00
Julien Isorce
ec8aa615e5 [229/906] update authors from the CVS repository 2017-12-09 19:31:19 +00:00
Julien Isorce
0d6c956cfb [212/906] add a glbumper (bump mapping filter through GLSL) that exposes how to use both vertex and fragment shaders 2017-12-09 19:31:19 +00:00
unknown
1b8b53fb1c [206/906] Do not use frame buffer object when "input video is RGB" or when "GLSL is not available and YCbCr is available". So frame buffer object is not a plugin requirement anymore. So I decreased the OpengGL version from 1.4 to 1.2 (maybe less?) 2017-12-09 19:31:18 +00:00
Julien Isorce
35d1c73109 [205/906] use a GHash table instead of a GData for the texture pool 2017-12-09 19:31:18 +00:00
Julien Isorce
91870f6d34 [157/906] move thread_do_upload_make from thread_do_upload to thread_init_upload 2017-12-09 19:31:18 +00:00
Julien Isorce
1a7a34b5c0 [150/906] glTexImage2D(w, h, NULL) is now called only one time (mem alloc) 2017-12-09 19:31:18 +00:00
Filippo Argiolas
ce17f1a2db [143/906] Add init and reset callbacks in GstGLFilter to run arbitrary gl code at start and stop. Useful to init and cleanup custom gl resources. 2017-12-09 19:31:18 +00:00
Filippo Argiolas
a54a462705 [142/906] Add a generic action to be able to execute arbitrary gl code within the gl thread with less pain 2017-12-09 19:31:18 +00:00
Filippo Argiolas
b384525a55 [138/906] is that videoformat pointer really needed? 2017-12-09 19:31:18 +00:00
Filippo Argiolas
14849d65ea [137/906] Don't reallocate texture memory every time in upload_* functions. 2017-12-09 19:31:18 +00:00
Filippo Argiolas
395ea4fa2a [136/906] reindent gstgldisplay with gstreamer-c-mode 2017-12-09 19:31:18 +00:00
Julien Isorce
d0e63e68ac [132/906] make the plugin properly shutdown when one of the check requirements failed 2017-12-09 19:31:18 +00:00
Julien Isorce
ffbc182446 [130/906] use GstGLShader in the GLSL colorspace conversion 2017-12-09 19:31:17 +00:00
David Schleef
4f39df0532 [126/906] Change some guints to GLuints because of warnings on OS/X. 2017-12-09 19:31:17 +00:00
Julien Isorce
8b14eea6ec [119/906] git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@579 93df14bb-0f41-7a43-8087-d3e2a2f0e464 2017-12-09 19:31:17 +00:00
Julien Isorce
7a063dd47f [116/906] git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@563 93df14bb-0f41-7a43-8087-d3e2a2f0e464 2017-12-09 19:31:17 +00:00
Julien Isorce
908e74de67 [115/906] git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@556 93df14bb-0f41-7a43-8087-d3e2a2f0e464 2017-12-09 19:31:17 +00:00
Julien Isorce
a192d39638 [114/906] git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@555 93df14bb-0f41-7a43-8087-d3e2a2f0e464 2017-12-09 19:31:17 +00:00
Julien Isorce
a903f96e15 [113/906] git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@554 93df14bb-0f41-7a43-8087-d3e2a2f0e464 2017-12-09 19:31:17 +00:00
Julien Isorce
8807e62119 [112/906] git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@552 93df14bb-0f41-7a43-8087-d3e2a2f0e464 2017-12-09 19:31:17 +00:00