Commit graph

694 commits

Author SHA1 Message Date
Julien Isorce
7a689108d9 [839/906] cocoa: allow to call set_window_handle before to create glcontext
So that it actually make cocoa videooverlay example work again.

Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=719758
2014-03-15 18:37:03 +01:00
Matthew Waters
b90d824626 [838/906] gl: Use GL_TEXTURE_2D instead of GL_TEXTURE_RECTANGLE
We create our textures (in Desktop GL) with GL_TEXTURE_RECTANGLE,
vaapi attempts to bind our texture to GL_TEXTURE_2D which throws a
GL_INVALID_OPERATION error and as thus, no video.

Also, by moving exclusively to GL_TEXTURE_2D and the npot extension
we also remove a difference between the Desktop GL and GLES2 code.

https://bugzilla.gnome.org/show_bug.cgi?id=712287
2014-03-15 18:37:03 +01:00
Matthieu Bouron
52a9869596 [837/906] cocoa: resize OpenGL view size each time the window is resized
Fixes glitches that can appear when the OpenGL view has not been resized
after a window resize.

https://bugzilla.gnome.org/show_bug.cgi?id=711672
2014-03-15 18:37:03 +01:00
Matthieu Bouron
fb9684e0f1 [836/906] cocoa: only use GSRegisterCurrentThread with GNUStep environment 2014-03-15 18:37:03 +01:00
Julien Isorce
6fcd8b7206 [835/906] gstglwindow: remove unused fields 2014-03-15 18:37:03 +01:00
Julien Isorce
e5ed59e61c [834/906] gstglwindow: clear mutex 2014-03-15 18:37:03 +01:00
Julien Isorce
52119203f9 [833/906] gstglcontext: initialize window to NULL 2014-03-15 18:37:03 +01:00
Julien Isorce
d1376390ba [832/906] x11: ignore Expose events not initiated by gst_gl_window_draw 2014-03-15 18:37:03 +01:00
Julien Isorce
c775bf584b [831/906] glimagesink: avoid to overload the drawer if already drawing
Especially if the application calls gst_video_overlay_expose a lot
2014-03-15 18:37:03 +01:00
Matthew Waters
9c1d2eeafd [829/906] mixer: error out properly on flushing 2014-03-15 18:37:03 +01:00
Matthew Waters
b571e40ec7 [828/906] context: refcount the display 2014-03-15 18:37:03 +01:00
Matthew Waters
95f7b8dce6 [827/906] mixer: don't unref the query in the default case
The element/application performing the query is responsible for the
de/allocation
2014-03-15 18:37:03 +01:00
Matthew Waters
de31f9eb70 [826/906] upload: free our mutex 2014-03-15 18:37:03 +01:00
Julien Isorce
160fad22c0 [825/906] glwindow_x11: check if the loop exists
It happens when calling set_window_handle before to reach GST_STATE_READY.
In this case the parent is set when creating the internal window.
2014-03-15 18:37:03 +01:00
Matthew Waters
775ea000dc [824/906] android: Build fixes
https://bugzilla.gnome.org/show_bug.cgi?id=709786
2014-03-15 18:37:03 +01:00
Julien Isorce
9515519826 [823/906] wayland_egl: make the wayland backend actually work on Raspberry Pi
Fix resizing and can now move the window
2014-03-15 18:37:03 +01:00
Julien Isorce
414989b388 [822/906] gstglcontext_egl: avoid non working EGL confs on rpi/wayland 2014-03-15 18:37:02 +01:00
Julien Isorce
ca9c2cce1a [821/906] tests: fix test_share on GLESv2 2014-03-15 18:37:02 +01:00
Julien Isorce
979633ed1f [820/906] gstglwindow: if available use wayland instead dispmanx on rpi 2014-03-15 18:37:02 +01:00
Matthew Waters
2313cea524 [819/906] make gen_texture/del_texture threadsafe
Use stack allocated instead of static variables

Conflicts:
	gst-libs/gst/gl/gstglutils.c
2014-03-15 18:37:02 +01:00
Matthew Waters
db1c7a242b [818/906] window: add send_message_async vmethod
- provide a default synchronous send_message
- make context creation threadsafe again
2014-03-15 18:37:02 +01:00
Matthew Waters
225d372847 [817/906] make the state change test pass 2014-03-15 18:37:02 +01:00
Matthew Waters
e29d826b0a [816/906] x11: fix make check segfault 2014-03-15 18:37:02 +01:00
Matthew Waters
d10ccfb795 [815/906] fix some refcount errors 2014-03-15 18:37:02 +01:00
Matthew Waters
888c66d855 [814/906] mixer: timestamp buffers 2014-03-15 18:37:02 +01:00
Matthew Waters
65b6872413 [813/906] unref the pool on shutdown 2014-03-15 18:37:02 +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
Julien Isorce
c806125e15 [810/906] gstglutils: use gl_vtable for glDeleteTextures 2014-03-15 18:37:02 +01:00
Matthew Waters
135ea8e562 [808/906] x11: remove dead code 2014-03-15 18:37:02 +01:00
Matthew Waters
311592f8b1 [807/906] context: Move some window error enums to context 2014-03-15 18:37:02 +01:00
Matthew Waters
cb7bf213fe [806/906] egl: doesn't require the EGLConfig from the other context
libEGL should give us the same or similar EGLConfig from the
EGLDisplay we have.
2014-03-15 18:37:01 +01:00
Matthew Waters
93692c7437 [805/906] glfilter: rename external-opengl-context prop to other-context
It now requires a GstGLContext instead of a handle
2014-03-15 18:37:01 +01:00
Julien Isorce
6497947186 [804/906] rpi: call bcm_host_init in plugin_init 2014-03-15 18:37:01 +01:00
Julien Isorce
561a71c244 [803/906] raspberrypi: add support for dispmanx
See https://bugzilla.gnome.org/show_bug.cgi?id=703342
2014-03-15 18:37:01 +01:00
Matthew Waters
b24021b1ac [801/906] context: Reimplement GL context sharing
https://bugzilla.gnome.org/show_bug.cgi?id=704806
2014-03-15 18:37:01 +01:00
Matthew Waters
5e0217d4dd [798/906] build: install needed header 2014-03-15 18:37:01 +01:00
Matthew Waters
c639a2d126 [797/906] x11: fix build for clang 2014-03-15 18:37:01 +01:00
Matthew Waters
32f40b28a5 [796/906] move egl into its own directory 2014-03-15 18:37:01 +01:00
Matthew Waters
f7d4776c7d [795/906] android: port to GstGLContext
not tested
2014-03-15 18:37:01 +01:00
Matthew Waters
95c08c2ee2 [794/906] context: add subclasses for the different platforms (egl, glx, wgl, etc)
- most code taken from the Window subclasses
- tested combinations: xEGL, GLX, Wayland+EGL, Cocoa (under GNUStep), WGL (Wine)
2014-03-15 18:37:01 +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
Matthew Waters
b5d595f402 [792/906] build: use our own in tree headers before system ones
allows us to develop against the tree rather than what may be installed
2014-03-15 18:37:01 +01:00
Julien Isorce
bfac5a8d76 [791/906] glwindow/x11: remove X11EventSource as soon as the window is deleted
gst_gl_window_x11_send_message do not use XSendEvent anymore
2014-03-15 18:37:01 +01:00
Sebastian Dröge
7bd7d7a48f [789/906] egl: Create a window surface if necessary 2014-03-15 18:37:00 +01:00
Tonu Jaansoo
3662fa14c6 [788/906] osx: Fix compilation 2014-03-15 18:37:00 +01:00
Tonu Jaansoo
e45dfb2f93 [787/906] gl: The GLSL rectangle resampler does not always work with int tex coords
Use floats instead.
2014-03-15 18:37:00 +01:00
Sebastian Dröge
52052a758a [786/906] glprototypes: Add support for NV extensions for DrawBuffers and ReadBuffer 2014-03-15 18:37:00 +01:00
Sebastian Dröge
ba1403fdd4 [785/906] egl: Use EGL_KHR_surfaceless_context instead of creating a useless surface if available 2014-03-15 18:37:00 +01:00
Sebastian Dröge
4f356f999c [782/906] gldownload: Use strlen() instead of sizeof(char*)
gstgldownload.c:846:22: error: argument to 'sizeof' in 'memcpy' call is the same expression as the source; did you mean to provide an explicit length? [-Werror=sizeof-pointer-memaccess]
2014-03-15 18:37:00 +01:00
Matthew Waters
3130ac1596 [781/906] download: propogate errors from the GL thread 2014-03-15 18:37:00 +01:00
Matthew Waters
f590a1ce23 [780/906] up/download: check return values
So we fail properly
2014-03-15 18:37:00 +01:00
Matthew Waters
41a89bafce [779/906] download: remove _thread variants of the API 2014-03-15 18:37:00 +01:00
Matthew Waters
01a4472b7f [778/906] upload: remove _thread variants of the API 2014-03-15 18:37:00 +01:00
Matthew Waters
a4445ea016 [777/906] upload: overhaul and addition of new video formats
use the shaders from eglglessink (adapted for Desktop GL)
error out properly
2014-03-15 18:37:00 +01:00
Matthew Waters
26e46d449c [776/906] download: fix compiler warning about missing string format 2014-03-15 18:37:00 +01:00
Sebastian Dröge
228474806c [775/906] configure: Check for GLeglImageOES and others again
https://bugzilla.gnome.org/show_bug.cgi?id=704498
2014-03-15 18:37:00 +01:00
Sebastian Dröge
3900c6750c [774/906] win32: Fix some compiler errors/warnings 2014-03-15 18:37:00 +01:00
Mathieu Duponchelle
b26c4dbe4e [773/906] glfilters: Mark writable-only properties as readable as well
https://bugzilla.gnome.org/show_bug.cgi?id=704429
2014-03-15 18:37:00 +01:00
Sebastian Dröge
20cb4fb038 [771/906] gl: Some less long/ulong/gulong usage 2014-03-15 18:36:59 +01:00
Matthew Waters
10ca3beee6 [766/906] utils: generate a RGBA texture in all cases 2014-03-15 18:36:59 +01:00
Matthew Waters
3f90c6fbfd [765/906] wayland: remove fullscreen 2014-03-15 18:36:59 +01:00
Matthew Waters
6b213b1dae [764/906] filter: fix pad template caps
upload is for the sink template
download is form the src template
2014-03-15 18:36:59 +01:00
Matthew Waters
71a70e78f6 [763/906] memory: copy properly depending on where the most recent data is 2014-03-15 18:36:59 +01:00
Sebastian Dröge
f6f0c4ddad [762/906] glimagesink: Fix some memory leaks and properly set up the buffer pool 2014-03-15 18:36:59 +01:00
Sebastian Dröge
380ab312ca [761/906] x11: Protect event display connection with a mutex
We use it from different threads and need to serialize the
accesses to it.
2014-03-15 18:36:59 +01:00
Sebastian Dröge
ddfc527857 [760/906] x11: Always use the same display connection from the GL thread
The other display connection might be used by async calls from elsewhere
at the same time.

https://bugzilla.gnome.org/show_bug.cgi?id=704247
2014-03-15 18:36:59 +01:00
Sebastian Dröge
1a6b357b39 [759/906] gldownload: #ifdef some GLES2 specific code to fix compilation 2014-03-15 18:36:59 +01:00
Sebastian Dröge
030c8ed624 [758/906] android: Don't require a window to be set
This allows the filters to be usable without a GL sink downstream.
2014-03-15 18:36:59 +01:00
Sebastian Dröge
39b6b5c272 [757/906] egl: Create an offscreen surface if no window was provided 2014-03-15 18:36:59 +01:00
Sebastian Dröge
7551b627e8 [756/906] gldownload: Reset the viewport after download RGB via GLES2 2014-03-15 18:36:59 +01:00
Sebastian Dröge
62f9105715 [755/906] gldownload: Unbind framebuffer after downloading RGB with GLES2 2014-03-15 18:36:59 +01:00
Sebastian Dröge
743ad83b06 [754/906] gldownload: Add support for RGB reordering when using GLES2 2014-03-15 18:36:58 +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
2b6e54d416 [752/906] glwindow: Add destroy notifies for the data of the callbacks
And actually call the close callback when the window is closed.
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
Sebastian Dröge
60aefacd32 [750/906] glupload: Add support for RGB reordering when using GLES2 2014-03-15 18:36:58 +01:00
Sebastian Dröge
d87a0eaf1d [749/906] glshader: Add some more debug output 2014-03-15 18:36:58 +01:00
Sebastian Dröge
258bb6fb81 [748/906] glupload: GL_STENCIL_ATTACHMENT is needed for desktop GL, not GLES 2014-03-15 18:36:58 +01:00
Sebastian Dröge
f36efba6da [747/906] gl: Constify YUV conversion shaders 2014-03-15 18:36:58 +01:00
Sebastian Dröge
98e5077b8f [746/906] android: Add comment to clarify the type of a variable 2014-03-15 18:36:58 +01:00
Sebastian Dröge
01ce41f684 [745/906] gl: Simplify and optimize YUV conversion shaders a bit 2014-03-15 18:36:58 +01:00
Sebastian Dröge
d7f69c3d93 [744/906] gl: Use __GST_GL_H__ instead of __GL_H__ as a multi-include guard
GL/gl.h might use the latter already.
2014-03-15 18:36:58 +01:00
Sebastian Dröge
4c7388be18 [743/906] win32: Allow setting window handle before creating the context 2014-03-15 18:36:58 +01:00
Sebastian Dröge
d00770cec0 [742/906] cocoa: Allow setting window handle before creating the context 2014-03-15 18:36:58 +01:00
Sebastian Dröge
f36ee81a84 [741/906] wayland: Don't leak main context and loop 2014-03-15 18:36:58 +01:00
Sebastian Dröge
7fffd9097e [740/906] x11: Allow setting window handle before creating the context 2014-03-15 18:36:58 +01:00
Sebastian Dröge
c479544540 [739/906] x11: Don't leak main context and main loop 2014-03-15 18:36:58 +01:00
Sebastian Dröge
16a5316755 [738/906] gl: Include glu.h after gl.h 2014-03-15 18:36:58 +01:00
Sebastian Dröge
a77992c658 [735/906] gl: Add support for Android
https://bugzilla.gnome.org/show_bug.cgi?id=703340
2014-03-15 18:36:57 +01:00
Sebastian Dröge
83d066b0a5 [734/906] win32: Make automake happy by using noinst_HEADERS 2014-03-15 18:36:57 +01:00
Sebastian Dröge
a5a46aa833 [733/906] gl: Major header and include cleanup 2014-03-15 18:36:57 +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
Julien Isorce
3c0b9715a9 [731/906] cocoa: fix build when GNUSTEP is not defined 2014-03-15 18:36:57 +01:00
Sebastian Dröge
a98180cd53 [730/906] glcompat: Properly check for GLchar and other types
On Android for example these are no #defines but typedefs
2014-03-15 18:36:57 +01:00
Sebastian Dröge
19dff69a2e [729/906] gl: Include config.h everywhere 2014-03-15 18:36:57 +01:00
Sebastian Dröge
a8d5b21013 [727/906] egl: Refactor EGL logic into a helper object 2014-03-15 18:36:57 +01:00
Matthew Waters
908cc1989b [726/906] window: don't call a NULL destroy function 2014-03-15 18:36:57 +01:00
Matthew Waters
f9d46c29ca [725/906] x11: use GMainContext/GMainLoop
allows us to be reentrant

https://bugzilla.gnome.org/show_bug.cgi?id=703445
2014-03-15 18:36:57 +01:00
Matthew Waters
96deb2fba3 [724/906] wayland: make reentrant
https://bugzilla.gnome.org/show_bug.cgi?id=703445
2014-03-15 18:36:57 +01:00
Julien Isorce
ba19813816 [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.
2014-03-15 18:36:57 +01:00
Руслан Ижбулатов
89a6d7ef5d [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
2014-03-15 18:36:57 +01:00
Sebastian Dröge
c07d72f768 [721/906] glfilter: Use uint64 for the OpenGL context property
ulong/long properties are deprecated and should not be used anymore
for portability reasons.
2014-03-15 18:36:57 +01:00
Sebastian Dröge
98cca97840 [719/906] gl: Fix compilation with GLES2 2014-03-15 18:36:56 +01:00
Matthew Waters
11b810fcf5 [718/906] shader: make it possible to unref in the non-GL thread 2014-03-15 18:36:56 +01:00
Matthew Waters
a5b877fb13 [717/906] remove outdated cmake build files 2014-03-15 18:36:56 +01:00
Matthew Waters
f6a9c807f6 [716/906] wayland: properly choose EGL_RENDERABLE_TYPE
based on the gl api we chose
2014-03-15 18:36:56 +01:00
Matthew Waters
cdbe8c2d0e [715/906] display: inherit from the right object class 2014-03-15 18:36:56 +01:00
Matthew Waters
4646a1e95e [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
2014-03-15 18:36:56 +01:00
Matthew Waters
09496fc8a1 [713/906] shader: make it possible to create the object in a non-GL thread 2014-03-15 18:36:56 +01:00
Matthew Waters
4801abb13a [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.
2014-03-15 18:36:56 +01:00
Matthew Waters
118b947e57 [711/906] wayland: support choosing Desktop GL as the api 2014-03-15 18:36:56 +01:00
Matthew Waters
c748fb7999 [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.
2014-03-15 18:36:56 +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
ac4db593f8 [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.
2014-03-15 18:36:56 +01:00
Matthew Waters
13067b104c [704/906] Use gst_object_[un]ref so we can get refcounts in the log 2014-03-15 18:36:56 +01:00
Matthew Waters
2d69905592 [703/906] x11: don't segfault if destroy_cb is NULL 2014-03-15 18:36:55 +01:00
Matthew Waters
6dfee9c975 [702/906] x11: fix segfault if the x11 backend is instantiated but not used 2014-03-15 18:36:55 +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
db3c98c688 [696/906] glapi: fix memory leak from not freeing a string 2014-03-15 18:36:55 +01:00
Matthew Waters
9adc3c8cf3 [695/906] build: remove libtool warning about -version-info not used in convenience libraries 2014-03-15 18:36:55 +01:00
Matthew Waters
52c31328e2 [693/906] x11_glx: ask for a 3.0 GL Context
(falling back if needed)
2014-03-15 18:36:55 +01:00
Matthew Waters
3af4ce25ff [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
2014-03-15 18:36:55 +01:00
Matthew Waters
7f2770af7c [691/906] feature: make gst_gl_check_extension public
prevents duplication of code of extension string parsing in GstGLWindow's
2014-03-15 18:36:55 +01:00
Matthew Waters
46decac44e [690/906] windowx11glx: use fbconfigs if supported 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
6b41ea24e8 [685/906] filter: improve error handling 2014-03-15 18:36:54 +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
59ea354253 [683/906] feature: remove double free 2014-03-15 18:36:54 +01:00
Matthew Waters
39e5b7c97f [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.
2014-03-15 18:36:54 +01:00
Matthew Waters
d77828d2cf [680/906] overlay: tentative port to new GstGLFuncs API 2014-03-15 18:36:54 +01:00
Matthew Waters
d4fabed3e4 [678/906] window_win32_wgl: implement wglGetProcAddress for extension functions 2014-03-15 18:36:54 +01:00
Matthew Waters
74209b9e9e [677/906] memory: fix GSIZE printf format on win32 2014-03-15 18:36:54 +01:00
Matthew Waters
8b0b154d6e [676/906] windwo_win32: port to new API 2014-03-15 18:36:54 +01:00
Matthew Waters
7f69a236b9 [675/906] upload: provide nicer debugging 2014-03-15 18:36:54 +01:00
Matthew Waters
01e016d3f4 [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
2014-03-15 18:36:54 +01:00
Matthew Waters
9e87a794dd [673/906] feature: add gstreamer license 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
7f3aaf504b [671/906] win32: #include GL/glext.h on windows
also add some GL default variables if some GL types are not defined
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
8b59321a7e [668/906] shader: fix gles2 segfault 2014-03-15 18:36:53 +01:00
Matthew Waters
7fdc174bbb [658/906] mixer: fix eos timestamp check 2014-03-15 18:36:53 +01:00
Matthew Waters
3d75c3d5af [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
2014-03-15 18:36:53 +01:00
Matthew Waters
3ceb7949a8 [652/906] bumper: port to non-GLEW + arrays 2014-03-15 18:36:53 +01:00
Matthew Waters
6bee1ffdd3 [651/906] up/download: fix some typos when removing GLEW 2014-03-15 18:36:52 +01:00
Matthew Waters
a6504181a3 [650/906] filter: fix _draw_texture()'s wrong vertices 2014-03-15 18:36:52 +01:00
Matthew Waters
7b03a572d9 [647/906] remove dependecy on glew 2014-03-15 18:36:52 +01:00
Matthew Waters
2f21abac2e [646/906] some gl header fixes/additions 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
4f90cd8a64 [644/906] update .gitignore for some new files 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
fa44030aa3 [640/906] build: add missing file to built sources 2014-03-15 18:36:52 +01:00
Matthew Waters
05d26c78e0 [639/906] add get_proc_address implementations for egl and glx 2014-03-15 18:36:52 +01:00
Matthew Waters
4afc9f01e0 [638/906] window: add get_proc_address + stub for retrieving gl functions 2014-03-15 18:36:52 +01:00
Matthew Waters
d993ab7e4f [637/906] x11_egl: add prelim support for choosing opengl or gles 2014-03-15 18:36:52 +01:00
Matthew Waters
809646505c [636/906] window_x11: compact debug info 2014-03-15 18:36:52 +01:00
Matthew Waters
41518af6f2 [635/906] fixup compile errors 2014-03-15 18:36:52 +01:00
Matthew Waters
88a85e7e3b [634/906] wayland egl: deactivate context before we destroy it
avoids a segfault with dri drivers
2014-03-15 18:36:51 +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
ca661a7719 [631/906] remove redefinition warnings in compiling tests 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
76dfdd656f [629/906] window: add GError for error handling of context creation 2014-03-15 18:36:51 +01:00
Matthew Waters
86844030d6 [627/906] shader: check for invalid objects 2014-03-15 18:36:51 +01:00
Matthew Waters
df8c489ada [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
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
bbd3b4dbd9 [623/906] move GL includes into a single file 2014-03-15 18:36:51 +01:00
Matthew Waters
59131a0eba [622/906] add missing GL_STENCIL_ATTACHMENT for gles2 compatability 2014-03-15 18:36:51 +01:00
Matthew Waters
fd998dc0a5 [621/906] GstGLRendererAPI => GstGLAPI and get GstGLAPI from a window 2014-03-15 18:36:51 +01:00
Matthew Waters
46082f2c02 [620/906] wayland_egl: attempt at resizing the video 2014-03-15 18:36:51 +01:00
Matthew Waters
411a87fb0b [619/906] fix typo for win32 debug variables 2014-03-15 18:36:51 +01:00
Matthew Waters
4a07c73c0c [618/906] add wayland-egl window backend 2014-03-15 18:36:50 +01:00
Matthew Waters
e357b4aa13 [617/906] fix 'set but not used' compiler warnings 2014-03-15 18:36:50 +01:00
Matthew Waters
1679a0be7e [616/906] move window-specific code into seperate subfolders 2014-03-15 18:36:50 +01:00
Matthew Waters
7102b5b6ce [615/906] preliminary support for Win32 EGL 2014-03-15 18:36:50 +01:00
Matthew Waters
d7d1627229 [614/906] try GLX first when using ANY | OPENGL | OPENGL3 2014-03-15 18:36:50 +01:00
Matthew Waters
48ccfcc918 [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.
2014-03-15 18:36:50 +01:00
Matthew Waters
c080c6c910 [612/906] remove GNUstep makefiles 2014-03-15 18:36:50 +01:00
Matthew Waters
6781fdbcff [611/906] cocoa port of determining gl platform at runtime 2014-03-15 18:36:50 +01:00
Matthew Waters
78d7965882 [610/906] WindowX11EGL: remove get_platform call 2014-03-15 18:36:50 +01:00
Matthew Waters
3cf1b078bc [609/906] win32 port of determining GL platform at runtime
- add GstGLWindowWin32 and GstGLWindowWin32WGL along the same lines as the
  X11 variants
2014-03-15 18:36:50 +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
0c66b39861 [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.
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
13ec239924 [605/906] shader: move to gst debugging 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
d01755fcc5 [601/906] fix typo causing shader compilation failure for uploading I420 2014-03-15 18:36:49 +01:00
Matthew Waters
12bf1cfa27 [600/906] docs: add docs for new objects and expand on some existing ones 2014-03-15 18:36:49 +01:00
Matthew Waters
11508f6f7a [599/906] GL|ES2: fix typos from recent changes and make downloading RGB formats work again 2014-03-15 18:36:49 +01:00
Matthew Waters
e969f6d904 [594/906] filter: update for up/download API changes and scaling fixes 2014-03-15 18:36:49 +01:00
Matthew Waters
fad1b94c41 [592/906] memory: update for up/download API changes 2014-03-15 18:36:49 +01:00
Matthew Waters
9086b0c870 [591/906] mixer: save the upload object instead of querying for it every frame 2014-03-15 18:36:49 +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
4cbefd4f09 [587/906] mixer: mirror the changes done for filter 2014-03-15 18:36:49 +01:00
Matthew Waters
28863c4bb4 [586/906] fix up some debug statements to get them into the right categories 2014-03-15 18:36:49 +01:00
Matthew Waters
d9d8946351 [583/906] deinterlace: change for new API
also allow elements to call the _filter_texture vfunc if they want
2014-03-15 18:36:48 +01:00
Matthew Waters
e89266b664 [581/906] filter: add seperate filter function for operating on textures instead of buffers 2014-03-15 18:36:48 +01:00
Matthew Waters
558e10be0f [580/906] bufferpool: remove obselete gl meta buffer pool options 2014-03-15 18:36:48 +01:00
Matthew Waters
cfafeea297 [579/906] download: fix YV12 format
same as I420 but plane 1+2 swapped
2014-03-15 18:36:48 +01:00
Matthew Waters
5aa048e53b [578/906] {up,down}load: add variants that can be called in the gl thread 2014-03-15 18:36:48 +01:00
Matthew Waters
8f4c270ae1 [576/906] remove uneeded GstGLMeta (use GstVideoMeta) 2014-03-15 18:36:48 +01:00
Matthew Waters
fa9a4d6862 [575/906] filter: port to new upload/download 2014-03-15 18:36:48 +01:00
Matthew Waters
5d1395f435 [574/906] memory: implement transperent upload/download for data
(not async yet)
2014-03-15 18:36:48 +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 Waters
aebcacecf8 [571/906] mixer: fix deadlock on shutdown
didn't reiterate over the sinkpad's displays and reactivate them causing a deadlock
2014-03-15 18:36:48 +01:00
Matthew
ed1f04acab [568/906] window: fix public definitions 2014-03-15 18:36:47 +01:00
Matthew
20406c1de3 [567/906] fix OpenGL|ES2 ifdef'ed code 2014-03-15 18:36:47 +01:00
Matthew Waters
863f21b1f6 [564/906] glmemory: remove unused typedef 2014-03-15 18:36:47 +01:00
Matthew Waters
3f94f31c3d [563/906] readd support for hanging GL pipelines e.g. ... ! gleffects ! fakesink 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
de25a454ce [559/906] glmixer: pass the mixpad's display to the querying element 2014-03-15 18:36:47 +01:00
Matthew Waters
ce6c6b5065 [555/906] Make the query for a GstGLDisplay a pad peer query
Allows the query to pass through bin boundaries and makes it possible for
arbitrary gl elements to be placed in bins.
2014-03-15 18:36:47 +01:00
Matthew Waters
0ef8174881 [554/906] GstGLMemory: update for GstAllocator API changes 2014-03-15 18:36:47 +01:00
Matthew Waters
3affb44884 [544/906] fix memory leaks from not g_free()ing string returned by gst_element_get_name 2014-03-15 18:36:46 +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
Matthew Waters
fe1ce6a7ff [542/906] GstGLMixer: add allocation and bufferpool methods
based off GstBaseTransform
2014-03-15 18:36:46 +01:00
Matthew Waters
a44326f86e [532/906] GstGLFilter: implement allocation vfuncs 2014-03-15 18:36:45 +01:00
Matthew Waters
ec782a5f27 [528/906] GstGLMeta: seperate upload/download/normal GL caps video formats
differentiate between upload, download and GL caps
2014-03-15 18:36:45 +01:00
Matthew Waters
796d326b74 [527/906] GstGLDisplay: add some trace debugging 2014-03-15 18:36:45 +01:00
Matthew Waters
0e5daa29f7 [524/906] GstGLDisplay: rework the download code
data paramaters now take GstVideoFrame
remove redundant parameters
2014-03-15 18:36:45 +01:00
Matthew Waters
1ec68db8f0 [522/906] GstGLDisplay: add forgotten function definition 2014-03-15 18:36:45 +01:00
Matthew Waters
2141571de9 [521/906] GstGLMemory: update for GstAllocator changes 2014-03-15 18:36:45 +01:00
Matthew Waters
3ff83c0f37 [520/906] GstGLMixer: fix for GstChildProxy changes 2014-03-15 18:36:45 +01:00
Matthew Waters
69997e311f [517/906] add GstGLBufferPool
which adds GstGLMeta to buffers
2014-03-15 18:36:45 +01:00
Matthew Waters
53dddca0f6 [516/906] add skeleton GstGLMeta
the GstVideoMeta _map/unmap functions still need implementing
2014-03-15 18:36:44 +01:00
Matthew Waters
369905e5bd [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
2014-03-15 18:36:44 +01:00
Matthew Waters
1331611094 [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
2014-03-15 18:36:44 +01:00
Matthew Waters
71c6aae707 [513/906] Remove GstGLBuffer (to be replaced by GstGLMeta) 2014-03-15 18:36:44 +01:00
Matthew Waters
e07dd2908e [512/906] GstGLMixer: update for 1.0 based on the videomixer2 element in -good 2014-03-15 18:36:44 +01:00
Matthew Waters
528816def4 [509/906] GstGLDisplay: update for 1.0 2014-03-15 18:36:44 +01:00
Matthew Waters
4611fd3301 [504/906] GstGLFilter: update for 1.0
-fix up function definitions
-remove _prepare_output_buffer (functionality taken over by GstBufferPool).
2014-03-15 18:36:44 +01:00
Matthew Waters
d66bd69b36 [503/906] Rename GST_BOILERPLATE_* to G_DEFINE_TYPE_* and move _base_init into _class_init 2014-03-15 18:36:44 +01:00
Matthew Waters
6f2acb94c6 [502/906] Update versioning for gstreamer 1.0
Renames GST_MAJORMINOR to GST_API_VERSION in build files
removes -lgstinterfaces from _LDADD flags
2014-03-15 18:36:44 +01:00
Raimo Järvi
fa18db91ed [501/906] Fix building on 64 bit mingw-w64
https://bugzilla.gnome.org/show_bug.cgi?id=676428
2014-03-15 18:36:44 +01:00
Julien Isorce
cb77b00501 [500/906] gldisplay: do not call glCheckFramebufferStatus if 0 is bound
Indeed it may return GL_FRAMEBUFFER_UNDEFINED if there is no
default framebuffer.
It seems to be the case on MacOSX
2014-03-15 18:36:43 +01:00
Julien Isorce
0c7080e7a1 [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
2014-03-15 18:36:43 +01:00
Julien Isorce
5d752d6422 [497/906] filtershader: fix format compiler warnings 2014-03-15 18:36:43 +01:00
Julien Isorce
a1649a497a [495/906] glES2.0: properly use glDeleteShader 2014-03-15 18:36:43 +01:00
Julien Isorce
7e45f26a21 [494/906] cmake build: use config.h from win32/common and add some guidelines 2014-03-15 18:36:43 +01:00
Julien Isorce
201d3992d2 [492/906] glwindow: properly fails if resource not found 2014-03-15 18:36:43 +01:00
Julien Isorce
052c23c3c5 [491/906] glES2.0: properly fails if driver/kernel inconsistency 2014-03-15 18:36:43 +01:00