Commit graph

1562 commits

Author SHA1 Message Date
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
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
5091066426 [483/906] glelements: do not leak parent when using gst_pad_get_parent 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
9e535a0410 [480/906] win32 builds: add glshader filter sources to vs9 and codeblocks
Also fix some warnings from msvc9 and mingw-3.4.5
2014-03-15 18:36:42 +01:00
Руслан Ижбулатов
e44c1040fe [479/906] gstglshadervariables: strtok_r is not multiplatform
Fix bug #664367
2014-03-15 18:36:42 +01:00
Wei Feng
2509eab48b [478/906] OpenGL ES 2.0: include glib.h to use G_BEGIN_DECLS in gstgles2.h
Fix bug #631019
2014-03-15 18:36:42 +01:00
Julien Isorce
591b4282ed [477/906] OpenGL ES 2.0: fix build since glfiltershader changes 2014-03-15 18:36:42 +01:00
Antoni Silvestre
b640cbc542 [476/906] OpenGL ES 2.0: fix build and disable some examples
Fix bug #631019
2014-03-15 18:36:42 +01:00
Luc Deschenaux
268f1a30b2 [471/906] glshader: add dynamic fragment shader filter
Also add fragment shader parser
Fix bug #600195
2014-03-15 18:36:42 +01:00
Julien Isorce
d21aaa22bf [467/906] tests: various build fixes
- cmake could not find glib
 - put gtk variables at the beginning to avoid GL conflicts
 - update examples to clutter-1.8
 - use const instead of deprecated G_CONST_RETURN
 - set max pending events to 0 to make cube example works again
2014-03-15 18:36:42 +01:00
Tim-Philipp Müller
0cefeead18 [463/906] Add some more G_{BEGIN,END}_DECLS to public headers
https://bugzilla.gnome.org/show_bug.cgi?id=637260
2014-03-15 18:36:41 +01:00
Stefan Kost
edefb7826c [462/906] various: add missing G_PARAM_STATIC_STRINGS flags
Canonicalize property names as needed. Includes some gst-indent changes as well :/
2014-03-15 18:36:41 +01:00
Jan Schmidt
f9c64dfdea [459/906] Fix distcheck. 2014-03-15 18:36:41 +01:00
Julien Isorce
2c43a348fa [456/906] glfilter/glmixer/gltestsrc/glupload: throw an element error if no parent bin
Fixes bug #602153
2014-03-15 18:36:41 +01:00
Julien Isorce
2b46c87bd0 [455/906] glimagesink: handle pixel-aspect-ratio 2014-03-15 18:36:41 +01:00
Filippo Argiolas
270ce448e4 [443/906] sobel: move some highly duplicated code into glfilter
Add a new convenience function in GstGLFilter that just draws an input
texture to a target texture using a simple shader with just a "tex"
uniform sampler.
Move draw_texture from glfiltersobel to glfilter. Still need to update
other plugins to this.
2014-03-15 18:36:40 +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
Nicholas Panayis
e6195bf5a3 [415/906] gstglwindow_win32: share opengl context in correct order
Allow to use the opengl context sharing feature if the original
context has been used already.
This is only possible on win32 with wglShareLists because on other
backends, the sharing is made when a context is created.
This new feature is only usefull when using external context
because gst-gl internally makes sure that the orginal context is not
already used when sharing it.

Fix bug #611067
2014-03-15 18:36:39 +01:00
Julien Isorce
8937128d62 [412/906] Cocoa backend: improve support on GNUStep 2014-03-15 18:36:38 +01:00
Julien Isorce
1ae95c42de [411/906] gstglmixer: copy/past recent changes from gstvideomixer 2014-03-15 18:36:38 +01:00
Julien Isorce
e356b7d1ed [410/906] gstglmixer: inactivate shared gl context before to release ours
First, inactivate shared gl contexts known by each sink pad.
Then, destroy the gl context known by the glmixer.
Finally, re-activate shared gl contexts.
This is to satisfy the fact that no shared gl context must be current
when an opengl context is destroyed.
Moreover the application may hang or crash without those steps.
2014-03-15 18:36:38 +01:00
Julien Isorce
9e22a5e0e6 [407/906] winCE backend: fix build 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
a6a5ee2839 [405/906] glfilter: add external-opengl-context property
It repairs the cluttershare and sdlshare example
2014-03-15 18:36:38 +01:00
Jan Schmidt
d9c6eaf72f [403/906] gstglmixer: Initialise the debug category
Initialise the gstglmixer debug category before using it.
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
Julien Isorce
48575c93ec [399/906] glmixer: fix when no more gl elements after it
For example:
videotestsrc ! glupload ! ... ! glfiter ! ... ! glmosaic ! fakesink
Usefull when using glmixer inside cluttershare or sdlshare cases.
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
aeb793497d [393/906] glmosaic: for now it's a cube mosaic
Also use GPtrArray instead of GArray in glmixer.
And add a pipeline to tests/pieplines
2014-03-15 18:36:37 +01:00
Julien Isorce
954b3a52c8 [391/906] Cocoa: fix backend since recent changes
Before, the window size was given at its creation. Now, it's done at
the drawing step because it's only relevant when there is a glimagesink
element in the pipeline.
2014-03-15 18:36:37 +01:00
Julien Isorce
62f961a28e [389/906] fix codeblocks build on win32 2014-03-15 18:36:37 +01:00
Julien Isorce
42720ef3ff [388/906] just fix builds and indent 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
Julien Isorce
65f4d40e6d [385/906] rewrite the way a gstgldisplay is transmited to the gl elements
Before, a gstgldisplay was instancied by the gl src in terms of gl chain.
And then the next element got it through the first gstglbuffer.
Now, this is done though queries.
All glelements get their ref on a gstgldisplay in READY state.
This rewrite is mainly a first step to be able to share OpenGL context hold
by the gstgldisplay using more complex glelements.
For example, with a glvideomixer. The associated gstgldisplay of each gl chain
of the sink pads will share their OpenGL context.
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
c2c15214a8 [381/906] EGL and GLX:: set a minimum depth size 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
Stefan Kost
1cb459d4d5 [376/906] build: support openGLES on linux via autofoo. Partialy fixes #593786
Add a pkg-config check for opengl and if not found assume opengl-es. If user has
none of both one still get build error later on (there is no pkg-config for
opengl-es).
Add more files to EXTRA dist and build the opengles variant if selected.
Simmilar changes could be done for the winCE backend.
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
Julien Isorce
3107266d81 [368/906] Cocoa backend: fix crash when resizing
Default implementation of NSOpenglView::update is not safe because it
just calls update on the opengl context whereas we are not in the gl thread.
Also fix the white flickering when resizing, because now we need to call
the draw callback manually when resizing.
2014-03-15 18:36:36 +01:00
Julien Isorce
ca891db2a6 [365/906] Cocoa backend: make sure that nsapp is initialized
gst-launch-0.10 videotestsrc ! tee name=t ! queue ! glimagesink t. ! queue ! glimagesink
now works properly on MacOSX
2014-03-15 18:36:36 +01:00
Julien Isorce
579b74d845 [364/906] make the cmake build work on MacOSX
We can now generate a Xcode project (or Unix Makfiles),
see INSTALL file
2014-03-15 18:36:36 +01:00
Julien Isorce
89fe233c52 [363/906] Cocoa backend: fix crash when closing
- All gstglwindow members are now modified only in the gl thread
to avoid thread concurrency
- OpenGL context is now properly clean
- fix a couple of things in implementation of xoverlay interface
2014-03-15 18:36:36 +01:00
Julien Isorce
a9ab2abea4 [362/906] make cocoa backend work on MacOSX
It works with both gst-launch and a cocoa app (non-embedded and embedded)
But there is still some problems:
  - sometimes crash when closing
  - flickering when resizing
  - embedded mode not perfect

I will first make the CMake build work with cocoa backend
in order to generate a XCode project.
Then it should be easier to fix those issues.
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
b1dccdb13c [357/906] x11: Don't crash when the X11 display is not available.
Error out cleanly instead of crashing when the X11 display can't
be contacted.
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
ae4f96ec93 [350/906] fix window position when using xoverlay
x, y are the coordinates of the position inside
the new parent window.

Fixes #584877
2014-03-15 18:36:35 +01:00
Julien Isorce
6292d5af16 [349/906] can switch xoverlays while playing
Fixes bug #584877

Before this commit calling "gst_x_overlay_set_xwindow_id" more
than one time, had no effect.
It mainly affects the glimagesink implementation.
But on win32 (and CE), some stuff has to be done to
release the old parent.

And add a switchxoverlay example where the user
can click on left/right part of the main window to
switch the xoverlay.
2014-03-15 18:36:35 +01:00
LRN
d1893e0e7e [347/906] fix miscast of a pointer in SetWindowLongPtr
GCC 4.4.0 complains error: cast from pointer to integer of different size
Fixes #584678.
2014-03-15 18:36:35 +01:00
Sebastian Dröge
64e59060e2 [346/906] Fix linking by providing libtool the correct --tag parameter 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
d0d5eb1f22 [336/906] [x11/x11ES] fix some pointer cast warnings 2014-03-15 18:36:34 +01:00
Julien Isorce
fe24b86d8a [335/906] [cocoa] update since interface changed 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
f735c06c4a [331/906] indent and fix some compiler warnings 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
David Schleef
b47fc234ef [329/906] Build for Cocoa on darwin, with various fixes 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
bb0781a389 [326/906] add X backend for OpenGL 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
Julien Isorce
37b29ac10c [320/906] fix position and content rect 2014-03-15 18:36:33 +01:00
Julien Isorce
b5778a90d7 [319/906] [win32 backend] fix transmition message to the parent.
The Qt mouvexoverlay example shows how to rotate the cube
by moving (+click) the mouve over a qwidget using xoverlay
interface.
2014-03-15 18:36:33 +01:00
Julien Isorce
9584a5ddfd [318/906] rename GNUmakefile(s) to GNUmakefile(s).gnustep 2014-03-15 18:36:33 +01:00
Julien Isorce
49c903d156 [317/906] implement gstglwindow for Cocoa (MacOS and GNUstep) 2014-03-15 18:36:33 +01:00
Julien Isorce
b2143adee3 [315/906] add GNUstep build 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
Sebastian Dröge
3fbd8bbd24 [309/906] Replay: Fix callbacks passed over XEvents on 64 bit architectures
Althought the XEvent's xclient.data.l array is an array of
longs they will be constrained to 32 bit by the X11 protocol.
On 64 bit architectures use two elements of the array to store
one pointer.
This fixes segfaults that happen at least for every example
on startup.
2014-03-15 18:36:32 +01:00
Julien Isorce
4d4e3ad4f9 [306/906] fix CMake build and frozen CodeBlocks build 2014-03-15 18:36:32 +01:00
Julien Isorce
92e733dce0 [304/906] only load RGBA files.png 2014-03-15 18:36:32 +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
David Schleef
5a82aee272 [297/906] Revert "Fix callbacks passed over XEvents on 64 bit architectures"
This reverts commit 280771d09b58617b27201027de0e1194da376e72.
2014-03-15 18:36:32 +01:00
Sebastian Dröge
1b531037c5 [296/906] Fix callbacks passed over XEvents on 64 bit architectures
Althought the XEvent's xclient.data.l array is an array of
longs they will be constrained to 32 bit by the X11 protocol.
On 64 bit architectures use two elements of the array to store
one pointer.
This fixes segfaults that happen at least for every example
on startup.
2014-03-15 18:36:32 +01:00
Sebastian Dröge
369b1d4ff2 [295/906] Fix indention 2014-03-15 18:36:32 +01:00
Sebastian Dröge
59c3f33743 [294/906] Fix format string compiler warnings by using G_GUINT64_FORMAT 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
David Schleef
caccdc1ee8 [290/906] Set GL_LIBS correctly in configure.ac
This doesn't detect the existence of libraries, which needs to
be fixed.
2014-03-15 18:36:31 +01:00
David Schleef
e4b26b46fd [289/906] build fixes for Windows libraries 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
0e45b730e8 [287/906] fix a regression about glXChooseVisual which failed when using mesa, so attributes must be less restrictives. 2014-03-15 18:36:31 +01:00
Julien Isorce
7975cac1ea [286/906] [win32] Register window class in gst_gl_window_class_init 2014-03-15 18:36:31 +01:00
Julien Isorce
4b53383385 [285/906] fix gl framerate in gst caps. Consider position in xoverlay. Fix inversion bettween COLS and ROWS, and move windows. 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
98acd38039 [283/906] better result in cube and doublecube example. And some clean up debug and comments 2014-03-15 18:36:31 +01:00
Julien Isorce
0ada2fab05 [282/906] update CMake build 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
34e4a534e2 [279/906] finish set_xwindow_id (gst_gl_window_set_external_win_id): child is resized at the same time as the parent is. 2014-03-15 18:36:31 +01:00
Julien Isorce
a8105b91a6 [278/906] Implement set_xwindow_id (gst_gl_window_set_external_window_id). 2014-03-15 18:36:31 +01:00
Julien Isorce
ed96a2f5ad [277/906] open x client connection for sender only at start up 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
94f74d4b50 [273/906] add some debug outputs about Visual and XVisualInfo 2014-03-15 18:36:30 +01:00
Julien Isorce
4ffac649e9 [272/906] add a visible member to deal better with the first expose events 2014-03-15 18:36:30 +01:00
Julien Isorce
968e1dabb3 [271/906] revert last commit because the crash comes from libselinux 2014-03-15 18:36:30 +01:00
Julien Isorce
8e4c8b2c45 [270/906] fix use of different Display structures which point on the same display name 2014-03-15 18:36:30 +01:00
Julien Isorce
e7c8f724e1 [269/906] Better deal with XNextEvent and XSendEvent 2014-03-15 18:36:30 +01:00
Julien Isorce
6eb98ba7ad [268/906] Better deal with Atoms 2014-03-15 18:36:30 +01:00
Julien Isorce
3b0a4180c1 [267/906] Get ride of calling sleep in gl thread X loop 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
747e2cf0de [264/906] Rewrite gstglwindow_x11.c because X API is not thread safe. 2014-03-15 18:36:30 +01:00
Julien Isorce
d7b959a1e4 [263/906] discard x custom messages which are of date 2014-03-15 18:36:30 +01:00
Julien Isorce
d404163d79 [262/906] Works on linux but still some bugs. Fix autotools build. 2014-03-15 18:36:30 +01:00
Julien Isorce
c683760189 [261/906] implement quit x message loop 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
a07ce6dbb3 [258/906] setup x message loop 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
fbdf2deda0 [256/906] fix CMake an CodeBlocks builds 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
3f4aa11d82 [254/906] Better handle when the parent window is resizing, and cleanup some code 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
Julien Isorce
353a06d9a0 [242/906] Fix crash in filters when going to NULL with no display 2014-03-15 18:36:29 +01:00
Filippo Argiolas
f14db54179 [233/906] no need to explicit set the debug category if default one is used 2014-03-15 18:36:28 +01:00
Filippo Argiolas
41e5676c47 [230/906] explicit check g_getenv return value to be not NULL 2014-03-15 18:36:28 +01:00
Julien Isorce
0f4bae01c3 [229/906] update authors from the CVS repository 2014-03-15 18:36:28 +01:00
Filippo Argiolas
30b33ab63f [228/906] output shaders info log only if GST_GL_SHADER_DEBUG env variable is set. Should fix TODO task 18 2014-03-15 18:36:28 +01:00
Julien Isorce
e8abbdaaa7 [226/906] check on win32 that every tests/pipelines and tests/examples (generic, gtk, qt) still work 2014-03-15 18:36:28 +01:00
Julien Isorce
de5ba4b7f2 [225/906] fix a regression that made the gltestsrc element not working 2014-03-15 18:36:28 +01:00
Julien Isorce
9b18be0019 [224/906] fix a regression about MESA YCbCr colorspace conversion 2014-03-15 18:36:28 +01:00
Julien Isorce
51cdfc6682 [223/906] fix a regression (sometimes a FBO is needed even if the video source is rgb) 2014-03-15 18:36:28 +01:00
Julien Isorce
72b90292eb [222/906] Finish TODO task 17 2014-03-15 18:36:27 +01:00
Julien
6ad3704c30 [221/906] fix g_int_hash -> g_direct_hash 2014-03-15 18:36:27 +01:00
Julien Isorce
a9c118c148 [220/906] Use a better key for the pool of textures 2014-03-15 18:36:27 +01:00
Julien Isorce
597fe26a1e [219/906] Use a gst debug category for GstGLDisplay instead of g_print, gst-launch-0.10 --gst-debug=gldisplay:3 videotestsrc ! glimagesink 2014-03-15 18:36:27 +01:00
Julien
a38424f3be [218/906] The CMake build now works on my Kubuntu-KDE4.1.1 2014-03-15 18:36:27 +01:00
Julien Isorce
fde783262f [217/906] Add cmake build http://www.cmake.org. See CMake install instructions in the INSTALL file. (I have not correctly configured yet the CMake build for unix, BE patient) 2014-03-15 18:36:27 +01:00
Julien Isorce
10853e1c2f [212/906] add a glbumper (bump mapping filter through GLSL) that exposes how to use both vertex and fragment shaders 2014-03-15 18:36:27 +01:00
Julien Isorce
e7f1a18965 [211/906] Fix upload AYUV and YV12 (a regression in last commits) 2014-03-15 18:36:27 +01:00
julien User
450dd45a6e [210/906] get ride of a wrong color on nvidia/linux when converting yv12 to rgb through GLSL 2014-03-15 18:36:27 +01:00
julien User
ff67654533 [209/906] fix warnings 2014-03-15 18:36:27 +01:00
Julien Isorce
38dc928a7e [208/906] fix upload AYUV, regression during the 2 last commits 2014-03-15 18:36:27 +01:00
Julien Isorce
dc96363485 [207/906] oups, fix my mistake on last commit 2014-03-15 18:36:27 +01:00
unknown
c8fb510e4f [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?) 2014-03-15 18:36:27 +01:00
Julien Isorce
b1007f02cb [205/906] use a GHash table instead of a GData for the texture pool 2014-03-15 18:36:26 +01:00
Julien Isorce
bf17388f63 [204/906] get ride of a bug on ATI related to YV12 to rgb conversion through GLSL and add an example 2014-03-15 18:36:26 +01:00
Filippo Argiolas
9a25ffce4c [201/906] fix a signedness warning 2014-03-15 18:36:26 +01:00
Julien Isorce
6c532328f0 [200/906] get ride of a ATI bug related to GLSL colorspace conversion for I420 and YV12 to rgb 2014-03-15 18:36:26 +01:00
Filippo Argiolas
fad976d7b7 [171/906] import fxtest (little gtk app to easily test effects) from cvs branch, fixed rgbtocurve. 2014-03-15 18:36:25 +01:00
Julien Isorce
fd192ec957 [157/906] move thread_do_upload_make from thread_do_upload to thread_init_upload 2014-03-15 18:36:24 +01:00
Julien Isorce
d0203c1172 [156/906] fix a crash that could happens when using at least 2 gl context and when closing a window on linux 2014-03-15 18:36:24 +01:00
Filippo Argiolas
a595635904 [153/906] Try to genereate textures within gstglfilterblur to see if the new thread_use_fbo works both with textures from the pool and custom ones 2014-03-15 18:36:24 +01:00
Filippo Argiolas
02a21f80ab [152/906] remove an unneeded (really?) glTexImage 2014-03-15 18:36:24 +01:00
Julien Isorce
11f620a96a [151/906] ISO C90 2014-03-15 18:36:24 +01:00
Julien Isorce
c0f13fd869 [150/906] glTexImage2D(w, h, NULL) is now called only one time (mem alloc) 2014-03-15 18:36:23 +01:00
Filippo Argiolas
a8552d4795 [149/906] same as previous commit 2014-03-15 18:36:23 +01:00
Filippo Argiolas
9f4d1de046 [148/906] Fix rgb issue. Current program should always be set to 0 when a new texture is attached to a fbo. 2014-03-15 18:36:23 +01:00
Julien Isorce
d6ef47cd9c [146/906] remove filteredge 2014-03-15 18:36:23 +01:00
Filippo Argiolas
b0f30ff125 [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. 2014-03-15 18:36:23 +01:00
Filippo Argiolas
396afd5ef3 [142/906] Add a generic action to be able to execute arbitrary gl code within the gl thread with less pain 2014-03-15 18:36:23 +01:00
Filippo Argiolas
77c0b28031 [141/906] some steps towards simplification. added a convenience function to gstglfilter and some comment here and there 2014-03-15 18:36:23 +01:00
Filippo Argiolas
a53754cc28 [140/906] Fix GL_STACK_OVERFLOW 2014-03-15 18:36:23 +01:00
Julien Isorce
47554d341c [139/906] fix warnings when compiling upload/download shaders 2014-03-15 18:36:23 +01:00
Filippo Argiolas
df427d2681 [138/906] is that videoformat pointer really needed? 2014-03-15 18:36:23 +01:00
Filippo Argiolas
570b7f2005 [137/906] Don't reallocate texture memory every time in upload_* functions. 2014-03-15 18:36:23 +01:00
Filippo Argiolas
8c9cb5939e [136/906] reindent gstgldisplay with gstreamer-c-mode 2014-03-15 18:36:23 +01:00
Julien Isorce
21be1c07de [133/906] finish todo task 4 2014-03-15 18:36:22 +01:00
Julien Isorce
8049be3a60 [132/906] make the plugin properly shutdown when one of the check requirements failed 2014-03-15 18:36:22 +01:00
Filippo Argiolas
c3d0a2f9b4 [131/906] fix warnings (unused vars) 2014-03-15 18:36:22 +01:00
Julien Isorce
3d3ba97c4d [130/906] use GstGLShader in the GLSL colorspace conversion 2014-03-15 18:36:22 +01:00
Julien Isorce
44ec9c01dd [128/906] add GstGLShader stuffs in the vs8 project, fix laplacian fragment code to make it compile on ATI, and fix check function about Opengl and Glew version 2014-03-15 18:36:22 +01:00
Filippo Argiolas
aeadf6bc0e [127/906] Imported GstGLShader from cvs branch. Added a demo laplacian convolution filter to demonstrate how this can be integrated with minimum effort. 2014-03-15 18:36:22 +01:00
David Schleef
a4400cf12b [126/906] Change some guints to GLuints because of warnings on OS/X. 2014-03-15 18:36:22 +01:00
David Schleef
50b8417097 [125/906] Add libraries as appropriate to fix compilation 2014-03-15 18:36:22 +01:00
Julien Isorce
af16a51ee2 [123/906] X Specific: better implementation of the gst_gl_set_window_id
git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@584 93df14bb-0f41-7a43-8087-d3e2a2f0e464
2014-03-15 18:36:22 +01:00
Julien Isorce
bfd8d294b4 [122/906] better implementation of gst_gl_display_set_window_id for win32. (change the window of the current wglcontext instead of reinit everything, and so avoid some problems about opengl objects that could be init in the previous wglcontext and so no usable in the newer wglcontext, it what the case for the first texture) This newer implementation has not been made yet on linux
git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@582 93df14bb-0f41-7a43-8087-d3e2a2f0e464
2014-03-15 18:36:22 +01:00
Julien Isorce
f2ea87e951 [121/906] avoid use of GLSL functions when fragment_shader is not available
git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@581 93df14bb-0f41-7a43-8087-d3e2a2f0e464
2014-03-15 18:36:22 +01:00
Julien Isorce
3505ae339c [120/906] git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@580 93df14bb-0f41-7a43-8087-d3e2a2f0e464 2014-03-15 18:36:22 +01:00
Julien Isorce
21e2cff9cc [119/906] git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@579 93df14bb-0f41-7a43-8087-d3e2a2f0e464 2014-03-15 18:36:22 +01:00
Julien Isorce
951460cdd1 [118/906] git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@573 93df14bb-0f41-7a43-8087-d3e2a2f0e464 2014-03-15 18:36:22 +01:00
Julien Isorce
6b2276b9ab [116/906] git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@563 93df14bb-0f41-7a43-8087-d3e2a2f0e464 2014-03-15 18:36:21 +01:00
Julien Isorce
90f411fe53 [115/906] git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@556 93df14bb-0f41-7a43-8087-d3e2a2f0e464 2014-03-15 18:36:21 +01:00
Julien Isorce
5acf54ccf9 [114/906] git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@555 93df14bb-0f41-7a43-8087-d3e2a2f0e464 2014-03-15 18:36:21 +01:00
Julien Isorce
37a0568858 [113/906] git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@554 93df14bb-0f41-7a43-8087-d3e2a2f0e464 2014-03-15 18:36:21 +01:00
Julien Isorce
652914f17b [112/906] git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@552 93df14bb-0f41-7a43-8087-d3e2a2f0e464 2014-03-15 18:36:21 +01:00