Matthew Waters
bbbe9ef2ce
gltestsrc: guard stop in gl thread
...
So we don't result in a critical when we've never created the GL context:
gst_gl_context_thread_add: assertion 'GST_IS_GL_CONTEXT (context)' failed
2017-11-07 12:39:58 +11:00
Matthew Waters
c85b825bb2
gltestsrc: free in the GL thread on stop
...
Calling GL functions not on the GL thread may crash in some GL
implementations.
https://bugzilla.gnome.org/show_bug.cgi?id=789665
2017-11-06 23:21:52 +11:00
Tim-Philipp Müller
4576e0737d
gl: use new gst_element_foreach_sink_pad()
...
Instead of gst_aggregator_iterate_sinkpads() which will
soon be removed.
https://bugzilla.gnome.org/show_bug.cgi?id=785679
2017-11-02 12:47:28 +00:00
Ponnam Srinivas
4b051ea36d
glmixer: Unmap video frame in error case
...
https://bugzilla.gnome.org/show_bug.cgi?id=788127
2017-09-26 11:12:04 +03:00
Haihua Hu
379f6bd5d9
glvidemixer: need reconfigure output gemotry after caps renegotiated
2017-09-21 11:59:32 +10:00
Matthew Waters
d4c9861a6c
Revert "glvideomixer: need update output geometry after src caps reconfigure"
...
This reverts commit d6e538dc56
.
2017-09-21 11:59:22 +10:00
Haihua Hu
d6e538dc56
glvideomixer: need update output geometry after src caps reconfigure
...
Need update output geometry when sink caps changed and use
gst_structure_set to update caps if structure is fixed
https://bugzilla.gnome.org/show_bug.cgi?id=787820
2017-09-21 11:56:13 +10:00
Haihua Hu
5f4ee3909e
glimagesink: expose should do redisplay all the time
...
when using internal window, window resize should work
when pause state, but expose only do redisplay when
window_id is valid. So expose should do redisplay all
the time.
https://bugzilla.gnome.org/show_bug.cgi?id=787394
2017-09-19 12:53:30 +10:00
Nicolas Dufresne
9b2e28d91d
Request minimum buffer even if need_pool is FALSE
...
When tee is used, it will not request a pool, but still it wants to
know how many buffers are required.
https://bugzilla.gnome.org/show_bug.cgi?id=730758
2017-09-06 14:19:37 -04:00
Matthew Waters
d8bc42fb30
glutils: fix matrix operations everywhere
...
- correct the matrix multiplication
- Use column-major matrices
- reverse order of matrix multiplications
https://bugzilla.gnome.org/show_bug.cgi?id=785980
2017-08-23 15:32:10 +10:00
Matthew Waters
05a2aa33ea
gltransformation: draw with GL_TRIANGLES
...
Drawing 5 vertices with GL_TRIANGLE_STRIP will draw an extra unneeded
triangle.
2017-08-23 15:31:36 +10:00
Julien Isorce
9403af81ef
gl: fix broken build due to previous commit 2fd84a6c
...
Can reproduce after installing libgraphene-dev
Also fixes caopengllayersink.h to anticipate build error on osx.
https://bugzilla.gnome.org/show_bug.cgi?id=784779
2017-08-22 12:42:22 +01:00
Julien Isorce
2fd84a6c86
gl: do not include GL headers in public gstgl headers
...
Except for gst/gl/gstglfuncs.h
It is up to the client app to include these headers.
It is coherent with the fact that gstreamer-gl.pc does not
require any egl.pc/gles.pc. I.e. it is the responsability
of the app to search these headers within its build setup.
For example gstreamer-vaapi includes explicitly EGL/egl.h
and search for it in its configure.ac.
For example with this patch, if an app includes the headers
gst/gl/egl/gstglcontext_egl.h
gst/gl/egl/gstgldisplay_egl.h
gst/gl/egl/gstglmemoryegl.h
it will *no longer* automatically include EGL/egl.h and GLES2/gl2.h.
Which is good because the app might want to use the gstgl api only
without the need to bother about gl headers.
Also added a test: cd tests/check && make libs/gstglheaders.check
https://bugzilla.gnome.org/show_bug.cgi?id=784779
2017-08-22 10:00:19 +01:00
Jan Schmidt
f02993921c
gldownload: Micro-optimisation. Don't check output caps on every buffer
...
The output caps will only change on a set_caps() call, so check if
they contain the SystemMemory feature then and save some
per-buffer CPU.
2017-08-22 01:57:42 +10:00
Jan Schmidt
6083ad6287
glfilter: Remove hard-coded pad templates
...
Add a function to install the default RGBA pad templates,
but don't make them required so that there can be
GstGLFilter sub-classes with different input/output
caps if they want. Remove the hard-coded RGBA restriction in
the set_caps_features call, as it will be taken care
of by intersecting with the pad templates.
Update all the sub-classes to match
2017-07-12 15:50:24 +10:00
Nicolas Dufresne
7d53a5cd0a
gl: Add dependency to gstallocators
2017-06-07 11:50:30 -04:00
Anders Jonsson
f3de920b12
gltestsrc: Fix typo (occured->occurred)
...
https://bugzilla.gnome.org/show_bug.cgi?id=782947
2017-05-22 13:57:37 +02:00
Olivier Crête
1e84f90bdb
glbasemixer: Remove unused negotiated member
...
This is now all handled in GstAggregator, so this code is not
called anymore.
2017-05-21 18:31:59 +02:00
Olivier Crête
1a2df0400d
gl*mixer: Use propose_allocation from the GstAggregator base class
...
https://bugzilla.gnome.org/show_bug.cgi?id=782918
2017-05-21 18:17:54 +02:00
Olivier Crête
9897c5c80d
glbasemixer: Remove own decide_allocation, use GstAggregator's
...
https://bugzilla.gnome.org/show_bug.cgi?id=746529
2017-05-21 13:24:29 +02:00
Olivier Crête
d3c2ccb3dd
glbasemixer: Use aggregator for allocation handling
...
https://bugzilla.gnome.org/show_bug.cgi?id=746529
2017-05-21 13:24:29 +02:00
Olivier Crête
31bbfd6773
videoaggregator: Get the buffer from the pool if available
...
https://bugzilla.gnome.org/show_bug.cgi?id=746529
2017-05-21 13:24:29 +02:00
Matthew Waters
7c53043386
aggregator: add simple support for caps handling
...
Modelled off the videoaggregator caps handling as that seems the most
mature aggregtor-using implementation that has caps handling there is.
https://bugzilla.gnome.org/show_bug.cgi?id=776931
2017-05-20 16:21:17 +02:00
Nicolas Dufresne
4261692187
Remove plugin specific static build option
...
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:05:52 -04:00
Tim-Philipp Müller
6f38a0c6e1
glvideomixer: fix whole example launch line actually
2017-05-07 11:47:40 +01:00
Tim-Philipp Müller
7d274958f8
glvideomixer: remove extraneous \ from example launch line in docs
2017-05-07 11:42:34 +01:00
Thibault Saunier
78022a6e0c
docs: Port all docstring to gtk-doc markdown
2017-04-12 12:57:57 -03:00
Matthew Waters
efc015f27d
gl: GL_ARRAY_BUFFER is not a part of VAO state
...
As a result we need to bind it on every draw in order to have the
correct state in the GL state machine.
2017-03-14 14:15:00 +11:00
Matthew Waters
956c4d0bde
gl/format: use our own GL format enum's instead of gstvideo's
...
They can describe in more detail (such as component sizes) the requested format.
2017-03-13 21:10:58 +11:00
Nick Kallen
82c132aa50
applemedia/gl: Fix compile issues for OSX
...
https://bugzilla.gnome.org/show_bug.cgi?id=778333
2017-03-08 15:23:42 +02:00
Nick Kallen
46bbc60d24
applemedia/gl: Update code to use ARC
...
All code interacting with Objective-C objects should now use Automated
Reference Counting rather than manual memory management or Garbage
Collection. Because ARC prohibits C-structs from containing
references to Objective-C objects, all such fields are now typed
'gpointer'. Setting and gettings Objective-C fields on such a
struct now uses explicit __bridge_* calls to tell ARC about
object lifetimes.
https://bugzilla.gnome.org/show_bug.cgi?id=777847
2017-03-07 13:37:07 +02:00
Sebastian Dröge
0661a5aded
gltestsrc: Fix potential NULL pointer dereference if we fail without GError
...
Which can happen here if we just propagate an error that happened
elsewhere, e.g. FBO failed.
CID 1364604
2017-02-28 15:23:55 +02:00
Sebastian Dröge
a064590912
glvideomixer/compositor: Correctly error out if calculating DAR fails
...
CID 1320700
2017-02-28 13:06:41 +02:00
Sebastian Dröge
92bb56d137
gl: Rename gst_gl_get_affine_transformation_meta_as_ndc_ext() to prevent symbol conflict
...
The same symbol also exists in libgstgl, although marked as private and
internal. This has no effect when doing static linking and there's a
symbol conflict.
2017-02-28 10:55:10 +02:00
Juan Pablo Ugarte
ef739e726f
GstGLSinkBin: fixed sink property leak
...
No need to keep an extra reference to sink since an indirect one is added by gst_bin_add()
https://bugzilla.gnome.org/show_bug.cgi?id=778452
2017-02-14 12:16:44 +02:00
Matthew Waters
7bcc44778a
glmixer: ensure caps are writable after intersection
...
gst_caps_intersect () may return an increased reference of one of the
input caps.
Fixes critical in the simple-launch-lines test:
Unexpected critical/warning: gst_caps_set_features: assertion 'IS_WRITABLE (caps)' failed
2017-01-18 15:07:48 +11:00
Matthew Waters
03b539bdfc
gl: update sys dependants for function removals
...
4315a4b54d
forgot to change the androidmedia/videotoolbox/caopengllayer
sources as required.
2017-01-13 13:01:28 +11:00
Matthew Waters
6919b4ca66
glutils: document functions
2017-01-13 11:20:51 +11:00
Matthew Waters
4de388278a
glutils: privatise matrix multiplication/videoaffinetransformation retrieval
2017-01-13 11:20:51 +11:00
Matthew Waters
4315a4b54d
gl/utils: also take care of the local GL context in query functions
...
Simplifies a deduplicates a lot of code in elements retrieving/setting
the local OpenGL context.
2017-01-13 11:20:51 +11:00
Matthew Waters
3fba290979
glutils: remove trivial helper function
...
gst_gl_caps_replace_all_caps_features() is only used in two places and can
be trivially reproduced.
2017-01-13 11:20:51 +11:00
Matthew Waters
a4024b61cf
gl: remove custom control binding proxy
...
Use the existing GstProxyControlBinding instead.
2017-01-10 13:57:37 +11:00
Haihua Hu
b1fd1d34bd
gl/effects: use non-PBO GLMemory for internal textures
...
middle textures in gleffects do not need to use GstGLMemoryPBO as they
aren't transfering data to/from the GPU. This will cost too much DMA
memory and cause performance issue. Change the allocator to use non-PBO
GstGLMemory.
https://bugzilla.gnome.org/show_bug.cgi?id=776072
2016-12-16 00:02:47 +11:00
Sebastian Dröge
5e3157098a
glvideomixer: Reject multiview video
...
glvideomixer does not support it currently and it needs special support
for handling this correctly, and is rather non-trivial to implement for
all formats.
2016-12-14 15:53:41 +02:00
Sebastian Dröge
5c99f9cf37
gst: Don't declare variables inside the for loop header
...
This is a C99 feature.
2016-12-13 22:39:01 +02:00
Florent Thiéry
a0558d6e85
gldownload: fix element description (was "OpenGL uploader")
2016-11-25 16:52:35 +11:00
Matthew Waters
e9b4dfa550
gl: remove empty BUGS file
...
We use bugzilla for bug tracking
2016-11-16 16:41:59 +11:00
Matthew Waters
6b06a4274c
gl/build: add missing build files
...
3f7b549881
was incomplete :(
2016-11-10 20:34:53 +11:00
Matthew Waters
3f7b549881
gl/utils: move gen_shader() to the plugin and remove del_shader()
...
gst_gl_context_del_shader() can be replaced by a g_object_unref().
gst_gl_context_gen_shader() should be replaced by using GstGLSLStage.
2016-11-10 20:11:03 +11:00
Matthew Waters
01fa90c1e7
glwindow: remove is_running() function
...
It isn't necessary in correctly written programs.
2016-11-10 20:05:45 +11:00