Matthew Waters
d233bb66a9
[876/906] glmem: use GstVideoInfo for format configuration
...
Allows use of strides
2017-12-09 19:31:33 +00:00
Matthew Waters
d84bb0b3b2
[875/906] upload: support for arbitrary strides
...
Using GL_UNPACK_ALIGNMENT for GLES2 and GL_UNPACK_ROW_LENGTH for everything else
2017-12-09 19:31:33 +00:00
Matthew Waters
8daa7693cf
[874/906] filter: implement draw_texture for GLES2
...
(taken from gleffects)
2017-12-09 19:31:33 +00:00
Matthew Waters
2eb7938db9
[873/906] upload: use GstVideoInfo for choosing the format
2017-12-09 19:31:33 +00:00
Matthew Waters
a9f6679e90
[872/906] upload: consolidate data _fill
2017-12-09 19:31:33 +00:00
Matthew Waters
bc8b4085b5
[871/906] upload: fix texture scaling for YUY2/UYVY with GLES2
...
Another artifact from the transition to GL_TEXTURE_2D
2017-12-09 19:31:33 +00:00
Matthew Waters
1f4d041d5b
[870/906] upload: remove superflous g_mutex_init
2017-12-09 19:31:33 +00:00
Matthew Waters
970fbacf96
[869/906] tests: add some upload tests
2017-12-09 19:31:33 +00:00
Matthew Waters
8d67249633
[868/906] upload: fix compilation for GLES2
2017-12-09 19:31:33 +00:00
Wang Xin-yu (王昕宇)
5168d86d9e
[867/906] glupload: Add GRAY8/GRAY16LE/BE upload support to glimagesink
...
the 16bit data is uploaded as LUMINANCE_ALPHA, then expanded, composed
in shader. value weight is a little complicate, high byte weight is
255*256/65535 (denormalize to [0~255] ,shift to high byte,then normalize
to [0~1]), low byte weight is 255/65535(similar)
https://bugzilla.gnome.org/show_bug.cgi?id=722670
2017-12-09 19:31:33 +00:00
Matthew Waters
95833db905
[866/906] upload: update some docs
2017-12-09 19:31:33 +00:00
Matthew Waters
89a203abe3
[865/906] glmem: report successful copy to the caller
2017-12-09 19:31:33 +00:00
Matthew Waters
253fe220df
[863/906] window: hold a ref to our GstGLDisplay
2017-12-09 19:31:33 +00:00
Matthew Waters
2026f60879
[862/906] window: remove set_need_lock
...
No-one is using it. The only code that did was the x11 one which
doesn't need it anymore.
2017-12-09 19:31:33 +00:00
Wang Xin-yu (王昕宇)
0f4c10aed9
[861/906] glprototypes: Add missing glScalef declare
...
https://bugzilla.gnome.org/show_bug.cgi?id=721903
2017-12-09 19:31:33 +00:00
Matthew Waters
8cc37b903c
[860/906] docs: misc updates
2017-12-09 19:31:32 +00:00
Matthew Waters
dadce598ba
[859/906] window: provide some documetation
2017-12-09 19:31:32 +00:00
Matthew Waters
148607f6da
[858/906] glmem: update the docs
2017-12-09 19:31:32 +00:00
Matthew Waters
54923d1909
[857/906] display: document the new GstContext api
2017-12-09 19:31:32 +00:00
Matthew Waters
d6bdcbe751
[856/906] context: document it
2017-12-09 19:31:32 +00:00
Matthew Waters
1e02438715
[855/906] upload: add support for GstVideoGLTextureUploadMeta
2017-12-09 19:31:32 +00:00
Matthew Waters
2623734d19
[854/906] use the allocation query to propogate GstGLContext
...
uses the GstVideoGLTextureUploadMeta api type for the query
2017-12-09 19:31:32 +00:00
Matthew Waters
84425ad43d
[853/906] display: remove _{set,get}_context
...
A GstGLDisplay doesn't need a GstGLContext and its use
was cause a reference cycle
2017-12-09 19:31:32 +00:00
Matthew Waters
64fad7a6d2
[852/906] use GstContext for GstGLDisplay propogation
...
implements the hooks required in GstElement::set_context and the context query
2017-12-09 19:31:32 +00:00
Matthew Waters
f15206082a
[850/906] glupload: Remove texture scaling artifacts from the TEXTURE_RECTANGLE -> TEXTURE_2D transition
...
fixes the funky colours in some of the yuv formats
https://bugzilla.gnome.org/show_bug.cgi?id=721155
2017-12-09 19:31:32 +00:00
Matthew Waters
689e722dfa
[848/906] filter: a little code cleanup
2017-12-09 19:31:32 +00:00
Matthew Waters
ad315254e9
[847/906] mixer: unmap the video frames we map
...
plugs a memory leak
2017-12-09 19:31:32 +00:00
Matthew Waters
5ee09b36fa
[846/906] mixer: handle 0/1 framerate better in caps
2017-12-09 19:31:32 +00:00
Matthew Waters
4b8019b12c
[845/906] filter: handle capsfeatures properly
2017-12-09 19:31:32 +00:00
Matthew Waters
2cb2a3951b
[844/906] mixer: give access to the pads at render time
...
allows us to move the video frame mapping somewhere else
2017-12-09 19:31:32 +00:00
Matthew Waters
36c62b32e5
[843/906] memory: provide copy_into_texture
2017-12-09 19:31:32 +00:00
Tim-Philipp Müller
b0999fbc03
[842/906] Fix gstglconfig.h-related 'make distcheck' issues
...
Fix srcdir vs. builddir issue in docs and 'files left after
disclean' issue for gstglconfig.h
2017-12-09 19:31:32 +00:00
Julien Isorce
e42b5bc985
[841/906] osx: allow x11/glx backend and set default runtime to cocoa/nsgl
...
https://bugzilla.gnome.org/show_bug.cgi?id=719757
2017-12-09 19:31:32 +00:00
Julien Isorce
be87f6096b
[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
2017-12-09 19:31:32 +00:00
Matthew Waters
efa22442a9
[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
2017-12-09 19:31:32 +00:00
Matthieu Bouron
32265d7e4e
[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
2017-12-09 19:31:32 +00:00
Matthieu Bouron
cc0b1f3e05
[836/906] cocoa: only use GSRegisterCurrentThread with GNUStep environment
2017-12-09 19:31:32 +00:00
Julien Isorce
6a5bd364a4
[835/906] gstglwindow: remove unused fields
2017-12-09 19:31:32 +00:00
Julien Isorce
4d6de2ce1b
[834/906] gstglwindow: clear mutex
2017-12-09 19:31:32 +00:00
Julien Isorce
42f1d66bc6
[833/906] gstglcontext: initialize window to NULL
2017-12-09 19:31:32 +00:00
Julien Isorce
0a2787863b
[832/906] x11: ignore Expose events not initiated by gst_gl_window_draw
2017-12-09 19:31:32 +00:00
Julien Isorce
66d7d4712e
[831/906] glimagesink: avoid to overload the drawer if already drawing
...
Especially if the application calls gst_video_overlay_expose a lot
2017-12-09 19:31:32 +00:00
Matthew Waters
7b7e7bb8d0
[829/906] mixer: error out properly on flushing
2017-12-09 19:31:32 +00:00
Matthew Waters
ac0db99c94
[828/906] context: refcount the display
2017-12-09 19:31:32 +00:00
Matthew Waters
b91eb6b557
[827/906] mixer: don't unref the query in the default case
...
The element/application performing the query is responsible for the
de/allocation
2017-12-09 19:31:32 +00:00
Matthew Waters
bf610e210a
[826/906] upload: free our mutex
2017-12-09 19:31:32 +00:00
Julien Isorce
0da88c6516
[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.
2017-12-09 19:31:32 +00:00
Matthew Waters
266ffc48be
[824/906] android: Build fixes
...
https://bugzilla.gnome.org/show_bug.cgi?id=709786
2017-12-09 19:31:31 +00:00
Julien Isorce
ab5a3e310d
[823/906] wayland_egl: make the wayland backend actually work on Raspberry Pi
...
Fix resizing and can now move the window
2017-12-09 19:31:31 +00:00
Julien Isorce
64a05da4fe
[822/906] gstglcontext_egl: avoid non working EGL confs on rpi/wayland
2017-12-09 19:31:31 +00:00
Julien Isorce
6e732b0408
[821/906] tests: fix test_share on GLESv2
2017-12-09 19:31:31 +00:00
Julien Isorce
e1eb30005c
[820/906] gstglwindow: if available use wayland instead dispmanx on rpi
2017-12-09 19:31:31 +00:00
Matthew Waters
56384a0db3
[819/906] make gen_texture/del_texture threadsafe
...
Use stack allocated instead of static variables
Conflicts:
gst-libs/gst/gl/gstglutils.c
2017-12-09 19:31:31 +00:00
Matthew Waters
3b1ec77cf8
[818/906] window: add send_message_async vmethod
...
- provide a default synchronous send_message
- make context creation threadsafe again
2017-12-09 19:31:31 +00:00
Matthew Waters
2a937dd96a
[817/906] make the state change test pass
2017-12-09 19:31:31 +00:00
Matthew Waters
f7c8658464
[816/906] x11: fix make check segfault
2017-12-09 19:31:31 +00:00
Matthew Waters
4bec88ea28
[815/906] fix some refcount errors
2017-12-09 19:31:31 +00:00
Matthew Waters
a44517a1e8
[814/906] mixer: timestamp buffers
2017-12-09 19:31:31 +00:00
Matthew Waters
fa02b04292
[813/906] unref the pool on shutdown
2017-12-09 19:31:31 +00:00
Matthew Waters
711ad485b2
[812/906] move the GL vtable from GstGLDisplay to GstGLContext
...
Conflicts:
tests/check/libs/gstglcontext.c
2017-12-09 19:31:31 +00:00
Julien Isorce
b54293266d
[810/906] gstglutils: use gl_vtable for glDeleteTextures
2017-12-09 19:31:31 +00:00
Matthew Waters
704f231343
[808/906] x11: remove dead code
2017-12-09 19:31:31 +00:00
Matthew Waters
d9cc31aca0
[807/906] context: Move some window error enums to context
2017-12-09 19:31:31 +00:00
Matthew Waters
57c32baab7
[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.
2017-12-09 19:31:31 +00:00
Matthew Waters
0f8fc0881a
[805/906] glfilter: rename external-opengl-context prop to other-context
...
It now requires a GstGLContext instead of a handle
2017-12-09 19:31:31 +00:00
Julien Isorce
cc38e16ef2
[804/906] rpi: call bcm_host_init in plugin_init
2017-12-09 19:31:31 +00:00
Julien Isorce
dd679dee25
[803/906] raspberrypi: add support for dispmanx
...
See https://bugzilla.gnome.org/show_bug.cgi?id=703342
2017-12-09 19:31:31 +00:00
Matthew Waters
48cd6ac353
[801/906] context: Reimplement GL context sharing
...
https://bugzilla.gnome.org/show_bug.cgi?id=704806
2017-12-09 19:31:31 +00:00
Matthew Waters
40a2c12495
[798/906] build: install needed header
2017-12-09 19:31:31 +00:00
Matthew Waters
72cc3c4815
[797/906] x11: fix build for clang
2017-12-09 19:31:31 +00:00
Matthew Waters
b8b9fced19
[796/906] move egl into its own directory
2017-12-09 19:31:31 +00:00
Matthew Waters
83ac943fc4
[795/906] android: port to GstGLContext
...
not tested
2017-12-09 19:31:31 +00:00
Matthew Waters
9cbb652b66
[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)
2017-12-09 19:31:30 +00:00
Matthew Waters
e80533dcee
[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.
2017-12-09 19:31:30 +00:00
Matthew Waters
175f28848c
[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
2017-12-09 19:31:30 +00:00
Julien Isorce
b56bf26dce
[791/906] glwindow/x11: remove X11EventSource as soon as the window is deleted
...
gst_gl_window_x11_send_message do not use XSendEvent anymore
2017-12-09 19:31:30 +00:00
Sebastian Dröge
4e8c78a4da
[789/906] egl: Create a window surface if necessary
2017-12-09 19:31:30 +00:00
Tonu Jaansoo
431ce49db3
[788/906] osx: Fix compilation
2017-12-09 19:31:30 +00:00
Tonu Jaansoo
c304635ecf
[787/906] gl: The GLSL rectangle resampler does not always work with int tex coords
...
Use floats instead.
2017-12-09 19:31:30 +00:00
Sebastian Dröge
396717587e
[786/906] glprototypes: Add support for NV extensions for DrawBuffers and ReadBuffer
2017-12-09 19:31:30 +00:00
Sebastian Dröge
b6207a10a2
[785/906] egl: Use EGL_KHR_surfaceless_context instead of creating a useless surface if available
2017-12-09 19:31:30 +00:00
Sebastian Dröge
82eb297aba
[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]
2017-12-09 19:31:30 +00:00
Matthew Waters
e32e8f45e0
[781/906] download: propogate errors from the GL thread
2017-12-09 19:31:30 +00:00
Matthew Waters
7c4d51edf4
[780/906] up/download: check return values
...
So we fail properly
2017-12-09 19:31:30 +00:00
Matthew Waters
13d487741a
[779/906] download: remove _thread variants of the API
2017-12-09 19:31:30 +00:00
Matthew Waters
1f19143837
[778/906] upload: remove _thread variants of the API
2017-12-09 19:31:30 +00:00
Matthew Waters
d009a216e6
[777/906] upload: overhaul and addition of new video formats
...
use the shaders from eglglessink (adapted for Desktop GL)
error out properly
2017-12-09 19:31:30 +00:00
Matthew Waters
0df6a5e963
[776/906] download: fix compiler warning about missing string format
2017-12-09 19:31:30 +00:00
Sebastian Dröge
e4f45140d6
[775/906] configure: Check for GLeglImageOES and others again
...
https://bugzilla.gnome.org/show_bug.cgi?id=704498
2017-12-09 19:31:30 +00:00
Sebastian Dröge
fe0ad33572
[774/906] win32: Fix some compiler errors/warnings
2017-12-09 19:31:30 +00:00
Mathieu Duponchelle
47b9fb1d49
[773/906] glfilters: Mark writable-only properties as readable as well
...
https://bugzilla.gnome.org/show_bug.cgi?id=704429
2017-12-09 19:31:30 +00:00
Sebastian Dröge
8efcecb98c
[771/906] gl: Some less long/ulong/gulong usage
2017-12-09 19:31:30 +00:00
Matthew Waters
49951beac8
[766/906] utils: generate a RGBA texture in all cases
2017-12-09 19:31:30 +00:00
Matthew Waters
d492036322
[765/906] wayland: remove fullscreen
2017-12-09 19:31:30 +00:00
Matthew Waters
2c6f8de516
[764/906] filter: fix pad template caps
...
upload is for the sink template
download is form the src template
2017-12-09 19:31:30 +00:00
Matthew Waters
8577de136e
[763/906] memory: copy properly depending on where the most recent data is
2017-12-09 19:31:30 +00:00
Sebastian Dröge
5b1dd556de
[762/906] glimagesink: Fix some memory leaks and properly set up the buffer pool
2017-12-09 19:31:30 +00:00
Sebastian Dröge
4f23429abb
[761/906] x11: Protect event display connection with a mutex
...
We use it from different threads and need to serialize the
accesses to it.
2017-12-09 19:31:30 +00:00
Sebastian Dröge
9810469db0
[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
2017-12-09 19:31:30 +00:00
Sebastian Dröge
bb4414ac7f
[759/906] gldownload: #ifdef some GLES2 specific code to fix compilation
2017-12-09 19:31:30 +00:00
Sebastian Dröge
a41b21f4a5
[758/906] android: Don't require a window to be set
...
This allows the filters to be usable without a GL sink downstream.
2017-12-09 19:31:30 +00:00
Sebastian Dröge
0a6359fc59
[757/906] egl: Create an offscreen surface if no window was provided
2017-12-09 19:31:30 +00:00
Sebastian Dröge
1de089fe81
[756/906] gldownload: Reset the viewport after download RGB via GLES2
2017-12-09 19:31:29 +00:00
Sebastian Dröge
85a4f1042b
[755/906] gldownload: Unbind framebuffer after downloading RGB with GLES2
2017-12-09 19:31:29 +00:00
Sebastian Dröge
f804d53a9c
[754/906] gldownload: Add support for RGB reordering when using GLES2
2017-12-09 19:31:29 +00:00
Sebastian Dröge
b3eef9dd15
[753/906] gldisplay: Sending a message is synchronous, we can allocate the memory on the stack
2017-12-09 19:31:29 +00:00
Sebastian Dröge
b2934152ce
[752/906] glwindow: Add destroy notifies for the data of the callbacks
...
And actually call the close callback when the window is closed.
2017-12-09 19:31:29 +00:00
Sebastian Dröge
ef68e5ade2
[751/906] gldisplay: Don't hold lock while sending a message to the GL thread
...
https://bugzilla.gnome.org/show_bug.cgi?id=704247
2017-12-09 19:31:29 +00:00
Sebastian Dröge
15438d5b7f
[750/906] glupload: Add support for RGB reordering when using GLES2
2017-12-09 19:31:29 +00:00
Sebastian Dröge
9d4f99b8bb
[749/906] glshader: Add some more debug output
2017-12-09 19:31:29 +00:00
Sebastian Dröge
b28a1e943d
[748/906] glupload: GL_STENCIL_ATTACHMENT is needed for desktop GL, not GLES
2017-12-09 19:31:29 +00:00
Sebastian Dröge
6c5ce0ee99
[747/906] gl: Constify YUV conversion shaders
2017-12-09 19:31:29 +00:00
Sebastian Dröge
90450a39b7
[746/906] android: Add comment to clarify the type of a variable
2017-12-09 19:31:29 +00:00
Sebastian Dröge
d0293d9f0c
[745/906] gl: Simplify and optimize YUV conversion shaders a bit
2017-12-09 19:31:29 +00:00
Sebastian Dröge
bbd9dd465c
[744/906] gl: Use __GST_GL_H__ instead of __GL_H__ as a multi-include guard
...
GL/gl.h might use the latter already.
2017-12-09 19:31:29 +00:00
Sebastian Dröge
29874d3be6
[743/906] win32: Allow setting window handle before creating the context
2017-12-09 19:31:29 +00:00
Sebastian Dröge
bd60dd7f22
[742/906] cocoa: Allow setting window handle before creating the context
2017-12-09 19:31:29 +00:00
Sebastian Dröge
d937a7e899
[741/906] wayland: Don't leak main context and loop
2017-12-09 19:31:29 +00:00
Sebastian Dröge
09795ef023
[740/906] x11: Allow setting window handle before creating the context
2017-12-09 19:31:29 +00:00
Sebastian Dröge
764e682cd0
[739/906] x11: Don't leak main context and main loop
2017-12-09 19:31:29 +00:00
Sebastian Dröge
52b44e4c07
[738/906] gl: Include glu.h after gl.h
2017-12-09 19:31:29 +00:00
Sebastian Dröge
192b37980f
[735/906] gl: Add support for Android
...
https://bugzilla.gnome.org/show_bug.cgi?id=703340
2017-12-09 19:31:29 +00:00
Sebastian Dröge
6a5bebebb9
[734/906] win32: Make automake happy by using noinst_HEADERS
2017-12-09 19:31:29 +00:00
Sebastian Dröge
f7998a2e98
[733/906] gl: Major header and include cleanup
2017-12-09 19:31:29 +00:00
Julien Isorce
d17a4381b1
[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
2017-12-09 19:31:29 +00:00
Julien Isorce
d4a8451c11
[731/906] cocoa: fix build when GNUSTEP is not defined
2017-12-09 19:31:29 +00:00
Sebastian Dröge
61dfdc19b9
[730/906] glcompat: Properly check for GLchar and other types
...
On Android for example these are no #defines but typedefs
2017-12-09 19:31:29 +00:00
Sebastian Dröge
341210eaa6
[729/906] gl: Include config.h everywhere
2017-12-09 19:31:29 +00:00
Sebastian Dröge
92c66f55bc
[727/906] egl: Refactor EGL logic into a helper object
2017-12-09 19:31:29 +00:00
Matthew Waters
ac1a2297f5
[726/906] window: don't call a NULL destroy function
2017-12-09 19:31:29 +00:00
Matthew Waters
3c2810c3d6
[725/906] x11: use GMainContext/GMainLoop
...
allows us to be reentrant
https://bugzilla.gnome.org/show_bug.cgi?id=703445
2017-12-09 19:31:29 +00:00
Matthew Waters
17e4fe41d3
[724/906] wayland: make reentrant
...
https://bugzilla.gnome.org/show_bug.cgi?id=703445
2017-12-09 19:31:29 +00:00
Julien Isorce
bbc71ed90f
[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.
2017-12-09 19:31:28 +00:00
Руслан Ижбулатов
9af1cee2f7
[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
2017-12-09 19:31:28 +00:00
Sebastian Dröge
6c89d7e839
[721/906] glfilter: Use uint64 for the OpenGL context property
...
ulong/long properties are deprecated and should not be used anymore
for portability reasons.
2017-12-09 19:31:28 +00:00
Sebastian Dröge
685d855ded
[719/906] gl: Fix compilation with GLES2
2017-12-09 19:31:28 +00:00
Matthew Waters
5b13d0ebf4
[718/906] shader: make it possible to unref in the non-GL thread
2017-12-09 19:31:28 +00:00
Matthew Waters
71c8edf9c0
[717/906] remove outdated cmake build files
2017-12-09 19:31:28 +00:00
Matthew Waters
bc5d65928f
[716/906] wayland: properly choose EGL_RENDERABLE_TYPE
...
based on the gl api we chose
2017-12-09 19:31:28 +00:00
Matthew Waters
5ec9f248a1
[715/906] display: inherit from the right object class
2017-12-09 19:31:28 +00:00
Matthew Waters
1c84c0fb96
[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
2017-12-09 19:31:28 +00:00
Matthew Waters
d7f5cac7ce
[713/906] shader: make it possible to create the object in a non-GL thread
2017-12-09 19:31:28 +00:00
Matthew Waters
ef6b1ca760
[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.
2017-12-09 19:31:28 +00:00
Matthew Waters
380f918802
[711/906] wayland: support choosing Desktop GL as the api
2017-12-09 19:31:28 +00:00
Matthew Waters
951daee416
[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.
2017-12-09 19:31:28 +00:00
Matthew Waters
2ae5b50fa4
[709/906] display: some more cleanups
2017-12-09 19:31:28 +00:00
Matthew Waters
6e86d0e920
[708/906] display: a cleanup and removal of old code
2017-12-09 19:31:28 +00:00
Matthew Waters
bdf5b5be0f
[707/906] display: move error_message to utils
2017-12-09 19:31:28 +00:00
Matthew Waters
5bc069a5d5
[706/906] display: move activate_context into utils
2017-12-09 19:31:28 +00:00
Matthew Waters
4f117323b8
[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.
2017-12-09 19:31:28 +00:00
Matthew Waters
761bc0156a
[704/906] Use gst_object_[un]ref so we can get refcounts in the log
2017-12-09 19:31:28 +00:00
Matthew Waters
9e7af77dc8
[703/906] x11: don't segfault if destroy_cb is NULL
2017-12-09 19:31:28 +00:00
Matthew Waters
5818b015d6
[702/906] x11: fix segfault if the x11 backend is instantiated but not used
2017-12-09 19:31:28 +00:00
Matthew Waters
c6988cb064
[701/906] display: move context creation into window
2017-12-09 19:31:28 +00:00
Matthew Waters
9c633e658a
[700/906] display: move most of the code into utils for sorting later
...
This contains a hack that essentially requires one GstGLDisplay
per process.
2017-12-09 19:31:28 +00:00
Matthew Waters
38e0434d95
[699/906] display: remove list of upload and download objects
...
and only create an up/download object when needed.
2017-12-09 19:31:28 +00:00
Matthew Waters
81334a1af0
[698/906] move sink-specific stuff from GstGLDisplay into glimagesink
2017-12-09 19:31:28 +00:00
Matthew Waters
ad31c9f8e2
[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
2017-12-09 19:31:28 +00:00
Matthew Waters
f5472457bf
[696/906] glapi: fix memory leak from not freeing a string
2017-12-09 19:31:28 +00:00
Matthew Waters
06eb6f4965
[695/906] build: remove libtool warning about -version-info not used in convenience libraries
2017-12-09 19:31:28 +00:00
Matthew Waters
696477bbf6
[693/906] x11_glx: ask for a 3.0 GL Context
...
(falling back if needed)
2017-12-09 19:31:27 +00:00
Matthew Waters
957b4cf08b
[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
2017-12-09 19:31:27 +00:00
Matthew Waters
d88a9c0044
[691/906] feature: make gst_gl_check_extension public
...
prevents duplication of code of extension string parsing in GstGLWindow's
2017-12-09 19:31:27 +00:00
Matthew Waters
df675e7335
[690/906] windowx11glx: use fbconfigs if supported
2017-12-09 19:31:27 +00:00
Matthew Waters
d71ab51c9f
[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.
2017-12-09 19:31:27 +00:00
Matthew Waters
01518880fa
[685/906] filter: improve error handling
2017-12-09 19:31:27 +00:00
Matthew Waters
a9b5bfe9d7
[684/906] display: lack of format-string causing a compiler warning
2017-12-09 19:31:27 +00:00
Matthew Waters
94d1326a7f
[683/906] feature: remove double free
2017-12-09 19:31:27 +00:00
Matthew Waters
1a04002052
[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.
2017-12-09 19:31:27 +00:00
Matthew Waters
31a5beb3f3
[680/906] overlay: tentative port to new GstGLFuncs API
2017-12-09 19:31:27 +00:00
Matthew Waters
b9a10f8e15
[678/906] window_win32_wgl: implement wglGetProcAddress for extension functions
2017-12-09 19:31:27 +00:00
Matthew Waters
ed98971953
[677/906] memory: fix GSIZE printf format on win32
2017-12-09 19:31:27 +00:00
Matthew Waters
8d07dcbd5e
[676/906] windwo_win32: port to new API
2017-12-09 19:31:27 +00:00
Matthew Waters
72ac429e57
[675/906] upload: provide nicer debugging
2017-12-09 19:31:27 +00:00
Matthew Waters
6e8099fa20
[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
2017-12-09 19:31:27 +00:00
Matthew Waters
1198b27830
[673/906] feature: add gstreamer license
2017-12-09 19:31:27 +00:00
Matthew Waters
792f055db4
[672/906] display: constify GstGLFuncs *gl
2017-12-09 19:31:27 +00:00
Matthew Waters
267bf848de
[671/906] win32: #include GL/glext.h on windows
...
also add some GL default variables if some GL types are not defined
2017-12-09 19:31:27 +00:00
Matthew Waters
dba83ebbd3
[670/906] display: replace glib deprecated api
2017-12-09 19:31:27 +00:00
Matthew Waters
7d4d1f50d4
[669/906] window: seperate object creation and context creation
2017-12-09 19:31:27 +00:00
Matthew Waters
63a5d9e981
[668/906] shader: fix gles2 segfault
2017-12-09 19:31:27 +00:00
Matthew Waters
0cc3150e37
[658/906] mixer: fix eos timestamp check
2017-12-09 19:31:27 +00:00
Matthew Waters
535074cc87
[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
2017-12-09 19:31:27 +00:00
Matthew Waters
ccfa7d674a
[652/906] bumper: port to non-GLEW + arrays
2017-12-09 19:31:27 +00:00
Matthew Waters
847e6540fb
[651/906] up/download: fix some typos when removing GLEW
2017-12-09 19:31:27 +00:00
Matthew Waters
173467e48a
[650/906] filter: fix _draw_texture()'s wrong vertices
2017-12-09 19:31:27 +00:00
Matthew Waters
6bee9b9c93
[647/906] remove dependecy on glew
2017-12-09 19:31:27 +00:00
Matthew Waters
17fdb480d0
[646/906] some gl header fixes/additions
2017-12-09 19:31:27 +00:00
Matthew Waters
2f2916dd50
[645/906] fix gles2 compilation
2017-12-09 19:31:27 +00:00
Matthew Waters
57e209a423
[644/906] update .gitignore for some new files
2017-12-09 19:31:27 +00:00
Matthew Waters
c692a610de
[643/906] display: privatise most of the struct
2017-12-09 19:31:26 +00:00
Matthew Waters
e983f02e87
[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
2017-12-09 19:31:26 +00:00
Matthew Waters
8375116c4b
[641/906] display: feature check for GL extension functions
2017-12-09 19:31:26 +00:00
Matthew Waters
a87b070abb
[640/906] build: add missing file to built sources
2017-12-09 19:31:26 +00:00
Matthew Waters
4a886e91e4
[639/906] add get_proc_address implementations for egl and glx
2017-12-09 19:31:26 +00:00
Matthew Waters
4a024734da
[638/906] window: add get_proc_address + stub for retrieving gl functions
2017-12-09 19:31:26 +00:00
Matthew Waters
87e5cd6777
[637/906] x11_egl: add prelim support for choosing opengl or gles
2017-12-09 19:31:26 +00:00
Matthew Waters
59cb56fa4d
[636/906] window_x11: compact debug info
2017-12-09 19:31:26 +00:00
Matthew Waters
17e6d70dba
[635/906] fixup compile errors
2017-12-09 19:31:26 +00:00
Matthew Waters
68b4ddff12
[634/906] wayland egl: deactivate context before we destroy it
...
avoids a segfault with dri drivers
2017-12-09 19:31:26 +00:00
Matthew Waters
db236c510f
[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.
2017-12-09 19:31:26 +00:00
Matthew Waters
12b045af81
[631/906] remove redefinition warnings in compiling tests
2017-12-09 19:31:26 +00:00
Matthew Waters
1ec4ffc824
[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
2017-12-09 19:31:26 +00:00
Matthew Waters
c3526080aa
[629/906] window: add GError for error handling of context creation
2017-12-09 19:31:26 +00:00
Matthew Waters
6c0e32864a
[627/906] shader: check for invalid objects
2017-12-09 19:31:26 +00:00
Matthew Waters
fd06db00b0
[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
2017-12-09 19:31:26 +00:00
Matthew Waters
344253e860
[624/906] OPENGL_ES2 => HAVE_GLES2 and add HAVE_OPENGL
...
use GstGLAPI to determine which code paths to execute.
perform some cleanups
2017-12-09 19:31:26 +00:00
Matthew Waters
ee992ec531
[623/906] move GL includes into a single file
2017-12-09 19:31:26 +00:00
Matthew Waters
4e46ef4a3f
[622/906] add missing GL_STENCIL_ATTACHMENT for gles2 compatability
2017-12-09 19:31:26 +00:00
Matthew Waters
0be301af24
[621/906] GstGLRendererAPI => GstGLAPI and get GstGLAPI from a window
2017-12-09 19:31:26 +00:00
Matthew Waters
e1ec48b6cf
[620/906] wayland_egl: attempt at resizing the video
2017-12-09 19:31:26 +00:00
Matthew Waters
62e6b36cd0
[619/906] fix typo for win32 debug variables
2017-12-09 19:31:26 +00:00
Matthew Waters
ccabf4545a
[618/906] add wayland-egl window backend
2017-12-09 19:31:26 +00:00
Matthew Waters
d169907472
[617/906] fix 'set but not used' compiler warnings
2017-12-09 19:31:26 +00:00
Matthew Waters
80fdf4c30c
[616/906] move window-specific code into seperate subfolders
2017-12-09 19:31:26 +00:00
Matthew Waters
cc1f734857
[615/906] preliminary support for Win32 EGL
2017-12-09 19:31:26 +00:00
Matthew Waters
d378a9d1d9
[614/906] try GLX first when using ANY | OPENGL | OPENGL3
2017-12-09 19:31:26 +00:00
Matthew Waters
fc4619f8a9
[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.
2017-12-09 19:31:26 +00:00
Matthew Waters
517db226fe
[612/906] remove GNUstep makefiles
2017-12-09 19:31:26 +00:00
Matthew Waters
b36b9f4a4a
[611/906] cocoa port of determining gl platform at runtime
2017-12-09 19:31:25 +00:00
Matthew Waters
22aa2e093d
[610/906] WindowX11EGL: remove get_platform call
2017-12-09 19:31:25 +00:00
Matthew Waters
d857c58015
[609/906] win32 port of determining GL platform at runtime
...
- add GstGLWindowWin32 and GstGLWindowWin32WGL along the same lines as the
X11 variants
2017-12-09 19:31:25 +00:00
Matthew Waters
4d88e9977e
[608/906] add GST_GL_PLATFORM_ANY for choosing any platform
2017-12-09 19:31:25 +00:00
Matthew Waters
af658df918
[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.
2017-12-09 19:31:25 +00:00
Matthew Waters
538643e3c0
[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
2017-12-09 19:31:25 +00:00
Matthew Waters
9dd6570ca9
[605/906] shader: move to gst debugging
2017-12-09 19:31:25 +00:00
Matthew Waters
4c35d682c9
[603/906] update FSF address
2017-12-09 19:31:25 +00:00
Matthew Waters
9267372466
[601/906] fix typo causing shader compilation failure for uploading I420
2017-12-09 19:31:25 +00:00
Matthew Waters
d55bbf7f55
[600/906] docs: add docs for new objects and expand on some existing ones
2017-12-09 19:31:25 +00:00
Matthew Waters
7baddfbcbe
[599/906] GL|ES2: fix typos from recent changes and make downloading RGB formats work again
2017-12-09 19:31:25 +00:00
Matthew Waters
2a8de21658
[594/906] filter: update for up/download API changes and scaling fixes
2017-12-09 19:31:25 +00:00
Matthew Waters
09b60b563c
[592/906] memory: update for up/download API changes
2017-12-09 19:31:25 +00:00
Matthew Waters
776a5e536f
[591/906] mixer: save the upload object instead of querying for it every frame
2017-12-09 19:31:25 +00:00
Matthew Waters
39866ea830
[590/906] up/download: fix scaling on transfer
...
i.e. uploading from a 10x10 video frame to a 20x20 texture into another 30x30 videoframe
2017-12-09 19:31:25 +00:00
Matthew Waters
89569276c5
[587/906] mixer: mirror the changes done for filter
2017-12-09 19:31:25 +00:00
Matthew Waters
67f5b303c8
[586/906] fix up some debug statements to get them into the right categories
2017-12-09 19:31:25 +00:00
Matthew Waters
c7f49800e3
[583/906] deinterlace: change for new API
...
also allow elements to call the _filter_texture vfunc if they want
2017-12-09 19:31:25 +00:00
Matthew Waters
eed7e15ed2
[581/906] filter: add seperate filter function for operating on textures instead of buffers
2017-12-09 19:31:25 +00:00
Matthew Waters
fa5d1efaa3
[580/906] bufferpool: remove obselete gl meta buffer pool options
2017-12-09 19:31:25 +00:00
Matthew Waters
9306c201f8
[579/906] download: fix YV12 format
...
same as I420 but plane 1+2 swapped
2017-12-09 19:31:25 +00:00
Matthew Waters
75734e663c
[578/906] {up,down}load: add variants that can be called in the gl thread
2017-12-09 19:31:25 +00:00
Matthew Waters
574612f129
[576/906] remove uneeded GstGLMeta (use GstVideoMeta)
2017-12-09 19:31:25 +00:00
Matthew Waters
2de5a925c1
[575/906] filter: port to new upload/download
2017-12-09 19:31:25 +00:00
Matthew Waters
84ec07072d
[574/906] memory: implement transperent upload/download for data
...
(not async yet)
2017-12-09 19:31:25 +00:00
Matthew Waters
3ee54d3135
[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)
2017-12-09 19:31:25 +00:00
Matthew Waters
3283e9e7de
[571/906] mixer: fix deadlock on shutdown
...
didn't reiterate over the sinkpad's displays and reactivate them causing a deadlock
2017-12-09 19:31:25 +00:00
Matthew
2dff52334c
[568/906] window: fix public definitions
2017-12-09 19:31:25 +00:00
Matthew
4a424d6d2c
[567/906] fix OpenGL|ES2 ifdef'ed code
2017-12-09 19:31:25 +00:00
Matthew Waters
6e6ee999a9
[564/906] glmemory: remove unused typedef
2017-12-09 19:31:24 +00:00
Matthew Waters
c4332505a9
[563/906] readd support for hanging GL pipelines e.g. ... ! gleffects ! fakesink
2017-12-09 19:31:24 +00:00