Sebastian Dröge
5c960069e4
gldisplay: Use GST_STR_NULL() for printing possibly NULL strings and print all variables we use
...
Fixes compiler warning about set but not used platform_choice variable
among other things.
2014-05-08 22:50:27 +02:00
Matthew Waters
c247be334a
gl: make all GObjects inherit from GstObject
...
Aids memory leak debugging with GST_TRACE=mem-live
2014-05-08 15:33:43 +10:00
Matthew Waters
ee95595af0
gl/display: avoid endless recursion for cocoa
2014-05-07 19:07:23 +10:00
Matthew Waters
f19e5abcb8
gl/display: clean up pre gstglcontext api and struct fields
...
https://bugzilla.gnome.org/show_bug.cgi?id=729551
2014-05-06 21:08:30 +10:00
Matthew Waters
c28dd9b0d3
gl/display: add get_handle_type
...
https://bugzilla.gnome.org/show_bug.cgi?id=729551
2014-05-06 21:08:30 +10:00
Matthew Waters
1eeecae29e
gl/display: avoid opening the X11 display on systems with Cocoa (OS X)
...
https://bugzilla.gnome.org/show_bug.cgi?id=729551
2014-05-06 21:08:30 +10:00
Matthew Waters
b694b292b9
gl/display: check the correct env variable for choosing an egl display
...
GST_GL_WINDOW is used for window system specific choices.
An EGLDisplay can be created from window systems with egl support by using
eglGetDisplay().
https://bugzilla.gnome.org/show_bug.cgi?id=729551
2014-05-06 21:07:38 +10:00
Julien Isorce
0ae3c984aa
gl: add EGLImage support
...
* picked from old libgstegl:
- GstEGLImageMemory
- GstEGLImageAllocator
- last_buffer management from removed GstEGLImageBufferPool
* add-ons:
- GstEGLImageMemory now old a reference on GstGLContext
so that it can delete the EGLImage and its gltexture source
while having the associated gl context being current.
- add EGLImage support for GstVideoGLTextureUploadMeta which
mainly call EGLImageTargetTexture2D
- GstGLBufferPool now supports GstEGLImageAllocator
- glimagesink / glfilters / etc.. now propose GstEGLImageAllocator
to upstream
https://bugzilla.gnome.org/show_bug.cgi?id=703343
2014-03-26 19:09:13 +00:00
Matthew Waters
49b37650f6
gl: Add EGLDisplay display subclass
2014-03-17 10:56:39 +01:00
Matthew Waters
0d1d42b205
[890/906] x11: add display subclass
...
GstGLDisplayX11 holds the display connection and name. Each thread requires
it's own X11 Display connection (initialised from name) due to the fact that
we do not want to call XInitThreads(). Doing so would result in segfaults
when integrating with GUI toolkits Gtk, Qt, etc.
The Display connection is for OpenGL platforms where a constant display is
required in order to share contexts (egl). In the case of a wrapped context
(added later), we do not have GstGLWindow to retreive the display from so a
'master' connection is used instead.
2014-03-15 18:37:06 +01:00
Matthew Waters
f4036318da
[889/906] display: add display type enum
2014-03-15 18:37:06 +01:00
Matthew Waters
4d30769b86
[857/906] display: document the new GstContext api
2014-03-15 18:37:05 +01:00
Matthew Waters
636d307715
[853/906] display: remove _{set,get}_context
...
A GstGLDisplay doesn't need a GstGLContext and its use
was cause a reference cycle
2014-03-15 18:37:04 +01:00
Matthew Waters
79260ff8f9
[852/906] use GstContext for GstGLDisplay propogation
...
implements the hooks required in GstElement::set_context and the context query
2014-03-15 18:37:04 +01:00
Matthew Waters
9b22b0e0ba
[812/906] move the GL vtable from GstGLDisplay to GstGLContext
...
Conflicts:
tests/check/libs/gstglcontext.c
2014-03-15 18:37:02 +01:00
Matthew Waters
cf5e910d9b
[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.
2014-03-15 18:37:01 +01:00
Sebastian Dröge
f4e76a9367
[753/906] gldisplay: Sending a message is synchronous, we can allocate the memory on the stack
2014-03-15 18:36:58 +01:00
Sebastian Dröge
7dba9d0dce
[751/906] gldisplay: Don't hold lock while sending a message to the GL thread
...
https://bugzilla.gnome.org/show_bug.cgi?id=704247
2014-03-15 18:36:58 +01:00
Julien Isorce
dd7e054e2c
[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
2014-03-15 18:36:57 +01:00
Matthew Waters
53753ad2e6
[709/906] display: some more cleanups
2014-03-15 18:36:56 +01:00
Matthew Waters
c60d94f1bc
[708/906] display: a cleanup and removal of old code
2014-03-15 18:36:56 +01:00
Matthew Waters
c799696b48
[707/906] display: move error_message to utils
2014-03-15 18:36:56 +01:00
Matthew Waters
393b483743
[706/906] display: move activate_context into utils
2014-03-15 18:36:56 +01:00
Matthew Waters
dbeb6a911b
[701/906] display: move context creation into window
2014-03-15 18:36:55 +01:00
Matthew Waters
5841abc5e4
[700/906] display: move most of the code into utils for sorting later
...
This contains a hack that essentially requires one GstGLDisplay
per process.
2014-03-15 18:36:55 +01:00
Matthew Waters
96114e62cb
[699/906] display: remove list of upload and download objects
...
and only create an up/download object when needed.
2014-03-15 18:36:55 +01:00
Matthew Waters
d76a61608d
[698/906] move sink-specific stuff from GstGLDisplay into glimagesink
2014-03-15 18:36:55 +01:00
Matthew Waters
ba9e2213fc
[697/906] display: allow the user to try and choose the GL api we use via env variable
...
GST_GL_API=opengl,opengl3,gles2,gles3
2014-03-15 18:36:55 +01:00
Matthew Waters
a9106ccce9
[688/906] display: properly shutdown if we error after context creation
...
The _finalize() code checks to see if the context was created before
attempting to destroy it. We never did say that we had created the context.
2014-03-15 18:36:55 +01:00
Matthew Waters
0551cfac70
[684/906] display: lack of format-string causing a compiler warning
2014-03-15 18:36:54 +01:00
Matthew Waters
6aac3abe72
[672/906] display: constify GstGLFuncs *gl
2014-03-15 18:36:54 +01:00
Matthew Waters
ab0abf649f
[670/906] display: replace glib deprecated api
2014-03-15 18:36:54 +01:00
Matthew Waters
9e8eb32080
[669/906] window: seperate object creation and context creation
2014-03-15 18:36:53 +01:00
Matthew Waters
7b03a572d9
[647/906] remove dependecy on glew
2014-03-15 18:36:52 +01:00
Matthew Waters
fcfe6b90a9
[645/906] fix gles2 compilation
2014-03-15 18:36:52 +01:00
Matthew Waters
f4ccde9bf1
[643/906] display: privatise most of the struct
2014-03-15 18:36:52 +01:00
Matthew Waters
fa3c3b8434
[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
2014-03-15 18:36:52 +01:00
Matthew Waters
4e60858f01
[641/906] display: feature check for GL extension functions
2014-03-15 18:36:52 +01:00
Matthew Waters
757618a986
[633/906] display: fail properly in context creation in order to minimize a race condition
...
previously, on context creation, when we failed to get a valid context
we would still atempt to run the window mainloop as well as setting an error
on the display. This would cause the calling element to finalize the display
and therefore attempt to quit the window mainloop. However the mainloop
may not have started running. Thus when the window mainloop ran it would
never a get a quit message and never end.
2014-03-15 18:36:51 +01:00
Matthew Waters
b11d8b8664
[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
2014-03-15 18:36:51 +01:00
Matthew Waters
cc8e54541b
[624/906] OPENGL_ES2 => HAVE_GLES2 and add HAVE_OPENGL
...
use GstGLAPI to determine which code paths to execute.
perform some cleanups
2014-03-15 18:36:51 +01:00
Matthew Waters
e47b04c460
[608/906] add GST_GL_PLATFORM_ANY for choosing any platform
2014-03-15 18:36:50 +01:00
Matthew Waters
1984fa3b7f
[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
2014-03-15 18:36:50 +01:00
Matthew Waters
93f7e993ad
[603/906] update FSF address
2014-03-15 18:36:50 +01:00
Matthew Waters
4716682c55
[590/906] up/download: fix scaling on transfer
...
i.e. uploading from a 10x10 video frame to a 20x20 texture into another 30x30 videoframe
2014-03-15 18:36:49 +01:00
Matthew Waters
88cb7e3060
[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)
2014-03-15 18:36:48 +01:00
Matthew
20406c1de3
[567/906] fix OpenGL|ES2 ifdef'ed code
2014-03-15 18:36:47 +01:00
Matthew Waters
6de0b127d7
[562/906] gldisplay: fix download of YUV formats
2014-03-15 18:36:47 +01:00
Matthew Waters
7627755581
[561/906] gldisplay: fix endianess issues on RGB download
2014-03-15 18:36:47 +01:00
Matthew Waters
972cd421c7
[543/906] GstGLDisplay: fix segfault from GST_PTR_FORMAT trying to expand the object
2014-03-15 18:36:46 +01:00