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
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
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
528816def4
[509/906] GstGLDisplay: update for 1.0
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
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
a1649a497a
[495/906] glES2.0: properly use glDeleteShader
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
Julien Isorce
2394987226
[490/906] gldisplay: error out instead of g_assert
2014-03-15 18:36:43 +01:00
Julien Isorce
b88351ad0c
[488/906] libvisual-gl: full compatibility with projectM-libvisual if libprojectM >= 2.0.1
...
Fix bug #310775
2014-03-15 18:36:43 +01:00
Julien Isorce
6f1530c658
[486/906] libvisual-gl: add minimal support to libvisual plugins that uses Framebuffer objects
...
Fix bug #310775
gst-launch audiotestsrc ! libvisual_gl_projectM ! glimagesink is working
but for now you cannot append any other opengl filters between
libvisual_gl_projectM and glimagesink because our FBO is turned OFF.
It would require that libvisual allows to split rendering between
pass1,2,3... and final rendering. In order to unbind our FBO before
the passN, and then rebind it just before the final libvisual rendering.
2014-03-15 18:36:43 +01:00
Julien Isorce
06d73faac4
[485/906] gstgldisplay: turn off texture binding and read buffer when downloading rgb is done
...
It fixes: (black image before)
gst-launch-0.10 audiotestsrc ! libvisual_gl_lv_gltest ! gldownload ! ximagesink
and
gst-launch-0.10 audiotestsrc ! libvisual_gl_lv_gltest ! gldownload ! glimagesink
2014-03-15 18:36:43 +01:00
Julien Isorce
f639d6096d
[481/906] feature checking: error out instead of doing nothing if an OpenGL feature is not present
...
Fix bug #572767
2014-03-15 18:36:42 +01:00
Julien Isorce
2b46c87bd0
[455/906] glimagesink: handle pixel-aspect-ratio
2014-03-15 18:36:41 +01:00
Julien Isorce
b0352753d4
[432/906] GstGLDisplay: this is GL_DEPTH24_STENCIL8_EXT, not GL_DEPTH24_STENCIL8_EXT
2014-03-15 18:36:40 +01:00
Pierre Pouzol
2beb8aa729
[431/906] GstGLDisplay: enable stencil buffer when using framebuffer objects.
...
Fixes Bug #612159
2014-03-15 18:36:40 +01:00
Julien Isorce
8937128d62
[412/906] Cocoa backend: improve support on GNUStep
2014-03-15 18:36:38 +01:00
Julien Isorce
3e1bffc802
[406/906] glimagesink: add a client-data property
...
Also add it to glfilterapp.
Fixes #559131
2014-03-15 18:36:38 +01:00
Julien Isorce
32e401427f
[400/906] gstgldisplay: no need the I420 work around if ATI Mobility
...
fix #588653
2014-03-15 18:36:38 +01:00
Pratheesh Gangadhar
34c5e17187
[394/906] gstgldisplay: use of GL_DEPTH_COMPONENT16 if OpenGL ES 2.0
...
glRenderbufferStorage does not accept GL_DEPTH_COMPONENT in
OpenGL ES 2.0.
Fix bug #593786
2014-03-15 18:36:37 +01:00
Julien Isorce
db7d436bd8
[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.
2014-03-15 18:36:37 +01:00
Stefan Kost
3b0a88850d
[384/906] build: use <stdio.h> / "stdio.h"
2014-03-15 18:36:37 +01:00
Stefan Kost
252b406547
[383/906] build: include <stdio.h> when using printf & co.
2014-03-15 18:36:37 +01:00
Julien Isorce
3700180345
[382/906] ES2.0: remove warnings
...
Partially fix #593786
2014-03-15 18:36:37 +01:00
Julien Isorce
30631c4626
[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.
2014-03-15 18:36:36 +01:00
Julien Isorce
192bf749ea
[377/906] gldisplay: avoid to request gl thread when generating a texture
...
Thanks to the texture pool the gl textures are re-used.
When re-using one, no opengl code is executed so do not need
to request gl thread.
2014-03-15 18:36:36 +01:00
Julien Isorce
d9c055246f
[369/906] define missing glew macro on older versions
2014-03-15 18:36:36 +01:00
Jan Schmidt
1a070f378b
[358/906] gstgldisplay: Close a small race starting the display thread
...
Take the display lock before signalling the create-context cond
to ensure the caller has dropped the lock and is therefore listening
for the signal.
2014-03-15 18:36:35 +01:00
Jan Schmidt
f5ac0a784d
[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.
2014-03-15 18:36:35 +01:00
Julien Isorce
58e392f129
[337/906] Improve cluttershare example
...
Use clutter_threads_API.
When just using glupload from rgb, we have to be sure that
the upload texture is not in use in our gst gl context.
2014-03-15 18:36:34 +01:00
Julien Isorce
911cf141c4
[334/906] [win32/winCE] fix some pointer cast warnings with mingw
...
And turn off deprecated Wp64 msvc compiler option.
2014-03-15 18:36:34 +01:00
Julien Isorce
bcc33ab716
[333/906] add force-aspect-ratio support
2014-03-15 18:36:34 +01:00
Julien Isorce
87a1652216
[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
2014-03-15 18:36:34 +01:00
Julien
bf0b1fa1ab
[327/906] fix init FBO's texture attachment on ES 2.0
2014-03-15 18:36:34 +01:00
Julien Isorce
1385371e6c
[322/906] [download YUY2/UYVY] fix a regression
...
The call to glLoadIdentity was removed by mistake during
OpenGL ES 2.0 integration.
2014-03-15 18:36:33 +01:00
Julien Isorce
ec0bb66fe9
[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.
2014-03-15 18:36:33 +01:00
David Schleef
d015d5862d
[310/906] Global reindent
...
Indent parameters:
INDENT_PARAMETERS="--braces-on-if-line \
--case-brace-indentation0 \
--case-indentation2 \
--braces-after-struct-decl-line \
--line-length80 \
--no-tabs \
--cuddle-else \
--dont-line-up-parentheses \
--honour-newlines \
--continuation-indentation4 \
--tab-size8 \
--indent-level2"
2014-03-15 18:36:33 +01:00
Julien Isorce
994a25ca7e
[301/906] depends on libpng instead of gdk_pixbuf
2014-03-15 18:36:32 +01:00
David Schleef
43e574aa8f
[298/906] Revert "Fix indention"
...
This reverts commit 96e4ab18c2cf9876f6c031b9aba6282d0bd45a93.
You should have asked first. And you would have been told "no",
because it causes people on development branches to do a huge
amount of extra work.
2014-03-15 18:36:32 +01:00
Sebastian Dröge
369b1d4ff2
[295/906] Fix indention
2014-03-15 18:36:32 +01:00
David Schleef
b15277ba0b
[291/906] Add check for GLEW_EXT_framebuffer_object
2014-03-15 18:36:31 +01:00
Julien Isorce
e141366934
[288/906] add more debug ouputs about GLSL and mesa
2014-03-15 18:36:31 +01:00
Julien Isorce
0d2c7b20fd
[284/906] workaround about the ATI shader compiler on linux (setlocale)
2014-03-15 18:36:31 +01:00
Julien Isorce
1fbc72393c
[281/906] Make cube example work on x11. Finish TODO task 9.
2014-03-15 18:36:31 +01:00
Julien Isorce
c8c7f8733b
[280/906] Remove set_visible, because it's now automatically done when the first post redisplay comes.
2014-03-15 18:36:31 +01:00
Julien Isorce
4a2f97e4e5
[276/906] better deal with last pending custom cb and destroy_context_cb
2014-03-15 18:36:31 +01:00
Julien Isorce
3dd5eb98e6
[275/906] Make sure the gl ressoures are destroyed before to destroy gl window
2014-03-15 18:36:30 +01:00
Julien Isorce
f2c3f8baa3
[274/906] add some other debug outputs and checks
2014-03-15 18:36:30 +01:00
Julien Isorce
1a6b2ce780
[266/906] secure close when clicking on the cross
2014-03-15 18:36:30 +01:00
Julien Isorce
bc1d62d089
[260/906] try to make XSendEvent blocker (as win32 SendMessage is)
2014-03-15 18:36:30 +01:00
Julien Isorce
714054a647
[259/906] continue x implementation (but still not tested)
2014-03-15 18:36:30 +01:00
Julien Isorce
cfd7f1be38
[257/906] begin gstglwindow_x11.c implementation
2014-03-15 18:36:29 +01:00
Julien Isorce
9be9daa754
[255/906] fix window closure when using gst xoverlay interface
2014-03-15 18:36:29 +01:00
Julien Isorce
f4bfade861
[253/906] win32: re-implement supports for gst xoverlay interface, on this branch
2014-03-15 18:36:29 +01:00
Julien Isorce
5a84fd49a9
[252/906] avoid a dead lock on window closure
2014-03-15 18:36:29 +01:00
Julien Isorce
2c9bb405a0
[251/906] Properly clean OpenGL contexts
2014-03-15 18:36:29 +01:00
Julien Isorce
c330210648
[250/906] win32: basic stuffs are working now on this branch with this new deep design (gstglwindow)
2014-03-15 18:36:29 +01:00
Julien Isorce
42255b64aa
[249/906] begin GstGLWindow in order to totally remove gstfreeglut
2014-03-15 18:36:29 +01:00
Filippo Argiolas
8599642d37
[243/906] Support for missing videoformats in glupload
...
Add support for missing alpha channeled videoformats (RGBA, BGRA,
ARGB, ABGR) in gst_gl_display_do_upload_fill.
2014-03-15 18:36:29 +01:00