Commit graph

361 commits

Author SHA1 Message Date
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
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