Commit graph

1253 commits

Author SHA1 Message Date
Matthew Waters
1c51ba395a gldisplay: tentative proper context collision detection
Fixes
tee name=t ! queue ! gliamgesink t. ! queue ! glimagesink
2017-12-09 19:31:58 +00:00
Víctor Manuel Jáquez Leal
55dbb25dcc glupload: move meta-data copy into gst-gl library
In some upload implementations the out buffer has more than one references,
turning the buffer not writable, so it won't be possible to modify its
meta-data.

This patch moves the meta-data copy before increasing the reference of the out
buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=746173
2017-12-09 19:31:58 +00:00
Matthew Waters
420cdf9cf6 glmemory: fix the slight difference between EXT_rg and ARB_rg
GL_EXT_texture_rg doesn't take sized formats for the internalformat
parameter of TexImage* but GL_ARB_texture_rg and GL(ES)3 do.

https://bugzilla.gnome.org/show_bug.cgi?id=732507
2017-12-09 19:31:58 +00:00
Matthew Waters
a4287991ae gl/examples: fixup generic cube example for NDC
translating outside the clip region doesn't work
2017-12-09 19:31:58 +00:00
Julien Isorce
8ca59af389 gl/examples: add sdlshare2 that uses glimagesink to output textures
https://bugzilla.gnome.org/show_bug.cgi?id=739681
2017-12-09 19:31:58 +00:00
Julien Isorce
5f7aaba2d5 glimagesink: keep window invisible when sharing output
https://bugzilla.gnome.org/show_bug.cgi?id=739681
2017-12-09 19:31:58 +00:00
Julien Isorce
1d88b95201 glimagesink: provide GstSample in client-draw signal
Instead of prividing texture and size directly.
And apply changes to examples.

https://bugzilla.gnome.org/show_bug.cgi?id=739681
2017-12-09 19:31:58 +00:00
Julien Isorce
0f90283520 sdlshare: use glupload and unmap frame 2017-12-09 19:31:58 +00:00
Matthew Waters
93968916a4 glsyncmeta: make context to wait and set sync explicit
otherwise we may wait on a sync object in same context by accident
2017-12-09 19:31:58 +00:00
Nicolas Dufresne
c68af4d6fc glimagesink: Add NULL check in error case
Other context may be NULL if something went wrong. Avoid trying to unref
a NULL pointer.
2017-12-09 19:31:58 +00:00
Matthew Waters
f58b5b65f1 glupload/colorconvert: only copy timestamps if the input buffer != output 2017-12-09 19:31:58 +00:00
Julien Isorce
63366be8ad gl: add GstGLDisplayCocoa
https://bugzilla.gnome.org/show_bug.cgi?id=746012
2017-12-09 19:31:58 +00:00
Julien Isorce
74b8117e53 examples: initialize NSApp at the beginning 2017-12-09 19:31:58 +00:00
Julien Isorce
d3b3887c52 gl/cocoa: do not terminate loop in gst_gl_window_cocoa_close
It is now done in _finalize.

Fix regression introduced by
"gl/window: create the main loop/context on init/finalize"
bc7a7259f3
2017-12-09 19:31:58 +00:00
Julien Isorce
a51680b1b3 gl: avoid overwriting display and context to NULL
It happens when the application provides display
and/or context.
2017-12-09 19:31:57 +00:00
Matthew Waters
15fd4e164a glshader: attribute locations are -1 on error 2017-12-09 19:31:57 +00:00
Neos3452
7d83351172 glshader: prevent from getting attributes without vertex shader
It doesn't make sense to query for vertex attributes without a vertex
shader. Moreover this is causing a crash on OSX.

https://bugzilla.gnome.org/show_bug.cgi?id=746168
2017-12-09 19:31:57 +00:00
Jan Schmidt
bf0440f97b GL: Remove annoying printf in the filterbin class_init 2017-12-09 19:31:57 +00:00
Matthew Waters
23e2d74112 glimagesink: add pixel-aspect-ratio property on the bin 2017-12-09 19:31:57 +00:00
Matthew Waters
7b9d70944b glupload: unref the bufferpool 2017-12-09 19:31:57 +00:00
Matthew Waters
3aad6d73f1 glimagesink: forward ALL the properties on the bin 2017-12-09 19:31:57 +00:00
Matthew Waters
3d8eb44b7c gluploadelement: properly unref buffers that are the same as the input
basetransform doesn't unref equal input and output buffers
2017-12-09 19:31:57 +00:00
Matthew Waters
92f0aa9bd8 gl: get the context from basemixer/basefilter 2017-12-09 19:31:57 +00:00
Matthew Waters
51620950e4 gl: retreive the gldisplay/app gl context as soon as possible
fixes the usage of gst_gl_display_filter_gl_api
2017-12-09 19:31:57 +00:00
Matthew Waters
ae08ada8f0 gl/tests: fix deadlock on glcontext wrapped context test 2017-12-09 19:31:57 +00:00
Julien Isorce
d6e460095f glcolorconvert: cache indices in a buffer object 2017-12-09 19:31:57 +00:00
Matthew Waters
95756a5413 caopengllayersink: implement as a bin like glimagesink 2017-12-09 19:31:57 +00:00
Matthew Waters
35476a4cb4 gl/cocoa: avoid deadlock when creating context on the main thread.
Make window/view creation async so that it is possible to
gst_gl_context_create from the main thread.
2017-12-09 19:31:57 +00:00
Matthew Waters
813fb633b4 gl: store the list of contexts within gldisplay
Removes the reliance on the allocation query to propogate GL contexts.

Allows thread safely getting a context for the a specific thread.
2017-12-09 19:31:57 +00:00
Matthew Waters
2e16961ab3 glimagesink: unset the current shader after rendering
fixes gltestsrc ! glimagesink when gltestsrc doesn't use a shader
2017-12-09 19:31:57 +00:00
Matthew Waters
909b69fad4 gltestsrc: remove usage of gldownload library object 2017-12-09 19:31:57 +00:00
Matthew Waters
d44594c622 glcontext: store the thread current context 2017-12-09 19:31:57 +00:00
Matthew Waters
abe21912f5 gl: new glsrcbin element 2017-12-09 19:31:57 +00:00
Matthew Waters
b42e4ba079 glvideomixer: implement with glmixerbin
The relevant properties are forwarded to/from the containing bin
and sink pads.
2017-12-09 19:31:57 +00:00
Matthew Waters
c562a7e2d9 glmixer: remove usage of upload/download objects 2017-12-09 19:31:57 +00:00
Matthew Waters
e85c7f84db gl: new glmixerbin element 2017-12-09 19:31:57 +00:00
Matthew Waters
1b0d2b1338 glimagesink: implement as a bin
glupload ! glcolorconvert ! sink

Some properties are manually forwarded.  The rest are available using
GstChildProxy.

The two signals are forwarded as well.
2017-12-09 19:31:57 +00:00
Matthew Waters
1412e9c764 gl: new glsinkbin element
similar to glfilterbin but for sinks
2017-12-09 19:31:57 +00:00
Matthew Waters
3e608bcce7 glfilter: don't use the library upload/convert objects 2017-12-09 19:31:57 +00:00
Matthew Waters
fe36f0b065 gl: new element glfilterbin
It encapsulates a confiurable GL processing element in the
upload/colorconvert/download dance required to transparently process
the majority of GstBuffer's.
2017-12-09 19:31:57 +00:00
Matthew Waters
df50ba0491 gl: add new gldownloadelement
Simply transforms caps to/from raw/glmemory capsfeatures
2017-12-09 19:31:57 +00:00
Matthew Waters
782b343f7d gl: add a new glcolorconvert element based on the glcolorconvert library object 2017-12-09 19:31:57 +00:00
Matthew Waters
1ba38bc10a glupload: implement propose_allocation pool handling for glmemory upload 2017-12-09 19:31:56 +00:00
Matthew Waters
6b6d26fd8f gl: add a new glupload element based on the glupload library object 2017-12-09 19:31:56 +00:00
Matthew Waters
66b349f100 gl: add a new glbasemixer class below glmixer
It deals with propagating the gl display/contexts throughout the
application/pipeline
2017-12-09 19:31:56 +00:00
Matthew Waters
2ead0d97ed gl: add a new glbasefilter class below glfilter
It deals with propagating the gl display/contexts throughout the
application/pipeline
2017-12-09 19:31:56 +00:00
Matthew Waters
6d4cca89ef glutils: expose running a query on a set of src/sink pads 2017-12-09 19:31:56 +00:00
Matthew Waters
f9ac4984eb glfilter: advertise resize in the caps negotiation properly 2017-12-09 19:31:56 +00:00
Matthew Waters
1d4b82d5f8 glcolorconvert: we don't do resizing of the video frames
As we cannot do accurate texel sampling then due to the texture
coordinates being interpolated based on the output frame size.
2017-12-09 19:31:56 +00:00
Matthew Waters
39eb34eb43 gl/x11: don't XGetWindowAttributes every XEvent
fixes a deadlock in xcb where the X window may not exist.

https://bugzilla.gnome.org/show_bug.cgi?id=745633
2017-12-09 19:31:56 +00:00