Matthew Waters [Tue, 2 Jul 2013 12:06:03 +0000 (22:06 +1000)]
[725/906] x11: use GMainContext/GMainLoop
allows us to be reentrant
https://bugzilla.gnome.org/show_bug.cgi?id=703445
Matthew Waters [Tue, 2 Jul 2013 08:33:42 +0000 (18:33 +1000)]
[724/906] wayland: make reentrant
https://bugzilla.gnome.org/show_bug.cgi?id=703445
Julien Isorce [Mon, 1 Jul 2013 13:43:14 +0000 (14:43 +0100)]
[723/906] gstglwindow: close has to be called in the glthread.
Indeed 'glXMakeCurrent (window_x11->device, None, NULL);'
has to be called in the thread where the glcontext is actually
current.
Otherwise glXDestroyContext may crash.
Руслан Ижбулатов [Sun, 30 Jun 2013 21:36:35 +0000 (01:36 +0400)]
[722/906] gl: Fix build on Win32
1) Need to include GL/glext.h on W32 to provide necessary macros
2) W32 macros that pre-processor has by default are different for different
toolchains. Borland uses __WIN32__, everyone else has _WIN32, so check both.
Side-note: glext.h is not supplied by mingw-w64 at the moment, but can be
downloaded from http://www.opengl.org/registry/
https://bugzilla.gnome.org/show_bug.cgi?id=703364
Sebastian Dröge [Fri, 28 Jun 2013 09:10:22 +0000 (11:10 +0200)]
[721/906] glfilter: Use uint64 for the OpenGL context property
ulong/long properties are deprecated and should not be used anymore
for portability reasons.
Sebastian Dröge [Fri, 28 Jun 2013 09:00:07 +0000 (11:00 +0200)]
[719/906] gl: Fix compilation with GLES2
Matthew Waters [Thu, 27 Jun 2013 14:34:48 +0000 (00:34 +1000)]
[718/906] shader: make it possible to unref in the non-GL thread
Matthew Waters [Thu, 27 Jun 2013 14:31:36 +0000 (00:31 +1000)]
[717/906] remove outdated cmake build files
Matthew Waters [Mon, 17 Jun 2013 09:45:27 +0000 (19:45 +1000)]
[716/906] wayland: properly choose EGL_RENDERABLE_TYPE
based on the gl api we chose
Matthew Waters [Sun, 16 Jun 2013 10:47:05 +0000 (20:47 +1000)]
[715/906] display: inherit from the right object class
Matthew Waters [Sun, 16 Jun 2013 10:44:47 +0000 (20:44 +1000)]
[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
Matthew Waters [Sun, 16 Jun 2013 10:41:29 +0000 (20:41 +1000)]
[713/906] shader: make it possible to create the object in a non-GL thread
Matthew Waters [Sun, 16 Jun 2013 10:38:27 +0000 (20:38 +1000)]
[712/906] wayland: shutdown properly
We cannot use _finalize as this will be called before GstGLWindow's
_finalize. This causes us to try and perform operations with the
wayland server when the connection has been severed.
Matthew Waters [Sun, 16 Jun 2013 10:37:06 +0000 (20:37 +1000)]
[711/906] wayland: support choosing Desktop GL as the api
Matthew Waters [Sun, 16 Jun 2013 10:34:15 +0000 (20:34 +1000)]
[710/906] window: fail if the user specifies an GL api that we cannot work with
It would've been caught later in an g_assert anyway.
Matthew Waters [Thu, 13 Jun 2013 08:33:47 +0000 (18:33 +1000)]
[709/906] display: some more cleanups
Matthew Waters [Thu, 13 Jun 2013 07:57:35 +0000 (17:57 +1000)]
[708/906] display: a cleanup and removal of old code
Matthew Waters [Thu, 13 Jun 2013 06:55:37 +0000 (16:55 +1000)]
[707/906] display: move error_message to utils
Matthew Waters [Thu, 13 Jun 2013 06:31:38 +0000 (16:31 +1000)]
[706/906] display: move activate_context into utils
Matthew Waters [Thu, 13 Jun 2013 06:04:40 +0000 (16:04 +1000)]
[705/906] x11: don't shutdown in _finalize
The window's loop could be still running when _finalize is called
and if we destroy the display connection it will never be closed.
Add _open and _close vfuncs to GstGLWindow so that subclasses can
start up and shutdown at the right time.
Matthew Waters [Thu, 13 Jun 2013 04:36:41 +0000 (14:36 +1000)]
[704/906] Use gst_object_[un]ref so we can get refcounts in the log
Matthew Waters [Thu, 13 Jun 2013 04:18:24 +0000 (14:18 +1000)]
[703/906] x11: don't segfault if destroy_cb is NULL
Matthew Waters [Wed, 12 Jun 2013 13:21:16 +0000 (23:21 +1000)]
[702/906] x11: fix segfault if the x11 backend is instantiated but not used
Matthew Waters [Wed, 12 Jun 2013 13:17:30 +0000 (23:17 +1000)]
[701/906] display: move context creation into window
Matthew Waters [Tue, 11 Jun 2013 15:04:55 +0000 (01:04 +1000)]
[700/906] display: move most of the code into utils for sorting later
This contains a hack that essentially requires one GstGLDisplay
per process.
Matthew Waters [Tue, 11 Jun 2013 08:50:12 +0000 (18:50 +1000)]
[699/906] display: remove list of upload and download objects
and only create an up/download object when needed.
Matthew Waters [Tue, 11 Jun 2013 02:26:50 +0000 (12:26 +1000)]
[698/906] move sink-specific stuff from GstGLDisplay into glimagesink
Matthew Waters [Tue, 11 Jun 2013 01:27:56 +0000 (11:27 +1000)]
[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
Matthew Waters [Tue, 11 Jun 2013 01:26:38 +0000 (11:26 +1000)]
[696/906] glapi: fix memory leak from not freeing a string
Matthew Waters [Tue, 4 Jun 2013 12:18:51 +0000 (22:18 +1000)]
[695/906] build: remove libtool warning about -version-info not used in convenience libraries
Matthew Waters [Tue, 4 Jun 2013 12:16:00 +0000 (22:16 +1000)]
[693/906] x11_glx: ask for a 3.0 GL Context
(falling back if needed)
Matthew Waters [Mon, 3 Jun 2013 08:15:45 +0000 (18:15 +1000)]
[692/906] window_x11: add XError trapping
some functions in GLX can fail if the implementation does not support
certain features we ask for (i.e. GL 3) bringing down the entire
application
Matthew Waters [Mon, 3 Jun 2013 08:13:52 +0000 (18:13 +1000)]
[691/906] feature: make gst_gl_check_extension public
prevents duplication of code of extension string parsing in GstGLWindow's
Matthew Waters [Sun, 2 Jun 2013 11:47:17 +0000 (21:47 +1000)]
[690/906] windowx11glx: use fbconfigs if supported
Matthew Waters [Wed, 24 Apr 2013 04:25:21 +0000 (14:25 +1000)]
[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.
Matthew Waters [Wed, 24 Apr 2013 04:22:40 +0000 (14:22 +1000)]
[685/906] filter: improve error handling
Matthew Waters [Wed, 24 Apr 2013 02:18:14 +0000 (12:18 +1000)]
[684/906] display: lack of format-string causing a compiler warning
Matthew Waters [Wed, 24 Apr 2013 02:17:36 +0000 (12:17 +1000)]
[683/906] feature: remove double free
Matthew Waters [Sun, 2 Jun 2013 07:52:30 +0000 (07:52 +0000)]
[681/906] win32: fix gl api calls on 32-bit
win has the bright idea of having 5 different calling conventions.
we should probably use the right one so we don't crash from stack
corruption.
Matthew Waters [Sun, 10 Mar 2013 02:37:48 +0000 (13:37 +1100)]
[680/906] overlay: tentative port to new GstGLFuncs API
Matthew Waters [Sat, 9 Mar 2013 12:36:36 +0000 (23:36 +1100)]
[678/906] window_win32_wgl: implement wglGetProcAddress for extension functions
Matthew Waters [Sat, 9 Mar 2013 11:53:41 +0000 (22:53 +1100)]
[677/906] memory: fix GSIZE printf format on win32
Matthew Waters [Sat, 9 Mar 2013 11:53:09 +0000 (22:53 +1100)]
[676/906] windwo_win32: port to new API
Matthew Waters [Sat, 9 Mar 2013 11:47:11 +0000 (22:47 +1100)]
[675/906] upload: provide nicer debugging
Matthew Waters [Sat, 9 Mar 2013 11:45:23 +0000 (22:45 +1100)]
[674/906] feature: try and catch more GL extension functions
if we don't find the extension in core GL, try the extension version anyway
Matthew Waters [Sat, 9 Mar 2013 11:37:34 +0000 (22:37 +1100)]
[673/906] feature: add gstreamer license
Matthew Waters [Sat, 9 Mar 2013 11:05:28 +0000 (22:05 +1100)]
[672/906] display: constify GstGLFuncs *gl
Matthew Waters [Sat, 9 Mar 2013 10:59:02 +0000 (21:59 +1100)]
[671/906] win32: #include GL/glext.h on windows
also add some GL default variables if some GL types are not defined
Matthew Waters [Mon, 18 Feb 2013 10:40:34 +0000 (21:40 +1100)]
[670/906] display: replace glib deprecated api
Matthew Waters [Tue, 12 Feb 2013 12:48:36 +0000 (23:48 +1100)]
[669/906] window: seperate object creation and context creation
Matthew Waters [Mon, 4 Feb 2013 10:30:51 +0000 (21:30 +1100)]
[668/906] shader: fix gles2 segfault
Matthew Waters [Thu, 31 Jan 2013 12:32:49 +0000 (23:32 +1100)]
[658/906] mixer: fix eos timestamp check
Matthew Waters [Thu, 17 Jan 2013 12:45:59 +0000 (23:45 +1100)]
[655/906] download: remove erronous ReadBuffer call
- it was causing segfaults in mesa
- we didn't set the readbuffer so we shouldn't reset it
Matthew Waters [Thu, 17 Jan 2013 12:14:49 +0000 (23:14 +1100)]
[652/906] bumper: port to non-GLEW + arrays
Matthew Waters [Thu, 17 Jan 2013 12:12:35 +0000 (23:12 +1100)]
[651/906] up/download: fix some typos when removing GLEW
Matthew Waters [Wed, 16 Jan 2013 11:41:18 +0000 (22:41 +1100)]
[650/906] filter: fix _draw_texture()'s wrong vertices
Matthew Waters [Wed, 16 Jan 2013 04:21:44 +0000 (15:21 +1100)]
[647/906] remove dependecy on glew
Matthew Waters [Sat, 12 Jan 2013 13:09:33 +0000 (00:09 +1100)]
[646/906] some gl header fixes/additions
Matthew Waters [Thu, 10 Jan 2013 02:32:16 +0000 (13:32 +1100)]
[645/906] fix gles2 compilation
Matthew Waters [Wed, 9 Jan 2013 23:57:11 +0000 (10:57 +1100)]
[644/906] update .gitignore for some new files
Matthew Waters [Wed, 9 Jan 2013 14:44:54 +0000 (01:44 +1100)]
[643/906] display: privatise most of the struct
Matthew Waters [Wed, 9 Jan 2013 14:13:23 +0000 (01:13 +1100)]
[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
Matthew Waters [Wed, 9 Jan 2013 13:30:03 +0000 (00:30 +1100)]
[641/906] display: feature check for GL extension functions
Matthew Waters [Wed, 9 Jan 2013 13:25:06 +0000 (00:25 +1100)]
[640/906] build: add missing file to built sources
Matthew Waters [Wed, 9 Jan 2013 13:23:32 +0000 (00:23 +1100)]
[639/906] add get_proc_address implementations for egl and glx
Matthew Waters [Tue, 8 Jan 2013 06:40:39 +0000 (17:40 +1100)]
[638/906] window: add get_proc_address + stub for retrieving gl functions
Matthew Waters [Tue, 8 Jan 2013 06:38:40 +0000 (17:38 +1100)]
[637/906] x11_egl: add prelim support for choosing opengl or gles
Matthew Waters [Tue, 8 Jan 2013 06:36:18 +0000 (17:36 +1100)]
[636/906] window_x11: compact debug info
Matthew Waters [Mon, 7 Jan 2013 03:08:39 +0000 (14:08 +1100)]
[635/906] fixup compile errors
Matthew Waters [Wed, 19 Dec 2012 03:54:21 +0000 (14:54 +1100)]
[634/906] wayland egl: deactivate context before we destroy it
avoids a segfault with dri drivers
Matthew Waters [Wed, 19 Dec 2012 03:32:20 +0000 (14:32 +1100)]
[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.
Matthew Waters [Tue, 18 Dec 2012 07:29:11 +0000 (18:29 +1100)]
[631/906] remove redefinition warnings in compiling tests
Matthew Waters [Sat, 8 Dec 2012 22:32:48 +0000 (09:32 +1100)]
[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
Matthew Waters [Sat, 8 Dec 2012 22:30:48 +0000 (09:30 +1100)]
[629/906] window: add GError for error handling of context creation
Matthew Waters [Fri, 7 Dec 2012 02:32:28 +0000 (13:32 +1100)]
[627/906] shader: check for invalid objects
Matthew Waters [Thu, 6 Dec 2012 13:16:04 +0000 (00:16 +1100)]
[625/906] add vtable for opengl functions
The vtable provides the ability for one to compile (but not link)
against both OpenGL and GL|ES and starts the move away from GLEW
Matthew Waters [Thu, 6 Dec 2012 07:40:26 +0000 (18:40 +1100)]
[624/906] OPENGL_ES2 => HAVE_GLES2 and add HAVE_OPENGL
use GstGLAPI to determine which code paths to execute.
perform some cleanups
Matthew Waters [Thu, 6 Dec 2012 06:40:47 +0000 (17:40 +1100)]
[623/906] move GL includes into a single file
Matthew Waters [Wed, 5 Dec 2012 06:23:21 +0000 (17:23 +1100)]
[622/906] add missing GL_STENCIL_ATTACHMENT for gles2 compatability
Matthew Waters [Mon, 3 Dec 2012 04:04:49 +0000 (15:04 +1100)]
[621/906] GstGLRendererAPI => GstGLAPI and get GstGLAPI from a window
Matthew Waters [Fri, 30 Nov 2012 06:09:21 +0000 (17:09 +1100)]
[620/906] wayland_egl: attempt at resizing the video
Matthew Waters [Thu, 29 Nov 2012 02:06:24 +0000 (13:06 +1100)]
[619/906] fix typo for win32 debug variables
Matthew Waters [Wed, 28 Nov 2012 14:01:59 +0000 (01:01 +1100)]
[618/906] add wayland-egl window backend
Matthew Waters [Mon, 19 Nov 2012 13:15:05 +0000 (00:15 +1100)]
[617/906] fix 'set but not used' compiler warnings
Matthew Waters [Mon, 19 Nov 2012 11:54:19 +0000 (22:54 +1100)]
[616/906] move window-specific code into seperate subfolders
Matthew Waters [Mon, 19 Nov 2012 10:52:22 +0000 (21:52 +1100)]
[615/906] preliminary support for Win32 EGL
Matthew Waters [Sat, 17 Nov 2012 14:23:52 +0000 (01:23 +1100)]
[614/906] try GLX first when using ANY | OPENGL | OPENGL3
Matthew Waters [Sat, 17 Nov 2012 14:16:44 +0000 (01:16 +1100)]
[613/906] window_cocoa: fix segfault with gst-launch-1.0 -e ... and sending SIGINT (Ctrl-C)
GNUstep has a signal handler for SIGINT which runs in the main thread.
However that thread has never been 'registered' with GNUstep so
the autorelease magic of objective-c causes a segfault from accessing
a null NSThread object somewhere deep in GNUstep.
Matthew Waters [Fri, 16 Nov 2012 07:01:08 +0000 (18:01 +1100)]
[612/906] remove GNUstep makefiles
Matthew Waters [Fri, 16 Nov 2012 06:13:03 +0000 (17:13 +1100)]
[611/906] cocoa port of determining gl platform at runtime
Matthew Waters [Thu, 15 Nov 2012 10:46:21 +0000 (21:46 +1100)]
[610/906] WindowX11EGL: remove get_platform call
Matthew Waters [Thu, 15 Nov 2012 02:17:59 +0000 (13:17 +1100)]
[609/906] win32 port of determining GL platform at runtime
- add GstGLWindowWin32 and GstGLWindowWin32WGL along the same lines as the
X11 variants
Matthew Waters [Wed, 14 Nov 2012 09:39:38 +0000 (20:39 +1100)]
[608/906] add GST_GL_PLATFORM_ANY for choosing any platform
Matthew Waters [Wed, 14 Nov 2012 09:36:16 +0000 (20:36 +1100)]
[607/906] remove get_platform and get_window_handle vfuncs
- rename choose_visual() to choose_format() for later incorporating
win32 changes and new GstGLPlatform for WGL, EGL, GLX, etc.
Matthew Waters [Tue, 13 Nov 2012 11:12:20 +0000 (22:12 +1100)]
[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
Matthew Waters [Sun, 2 Dec 2012 03:58:14 +0000 (14:58 +1100)]
[605/906] shader: move to gst debugging
Matthew Waters [Thu, 8 Nov 2012 11:53:56 +0000 (22:53 +1100)]
[603/906] update FSF address
Matthew Waters [Wed, 10 Oct 2012 13:24:51 +0000 (00:24 +1100)]
[601/906] fix typo causing shader compilation failure for uploading I420
Matthew Waters [Thu, 27 Sep 2012 05:53:46 +0000 (15:53 +1000)]
[600/906] docs: add docs for new objects and expand on some existing ones
Matthew Waters [Wed, 26 Sep 2012 07:18:53 +0000 (07:18 +0000)]
[599/906] GL|ES2: fix typos from recent changes and make downloading RGB formats work again