Sebastian Dröge
83192bce84
videoaggregator: Move aggregated_frame and the pad buffer into the private struct
...
The aggregated_frame is now called prepared_frame and passed to the
prepare_frame and cleanup_frame virtual methods directly. For the
currently queued buffer there is a method on the video aggregator pad
now.
2018-05-05 16:32:19 +02:00
Sebastian Dröge
5add956727
glmixer: Move frame/texture mapping/unmapping into prepare/clean_frame
...
Previously we assumed that the texture ID is going to be valid even
after unmapping the frame, as it was immediately unmapped before even
being used. Now we only unmap once we're done with the texture.
2018-05-05 12:17:34 +02:00
Sebastian Dröge
10b7b13732
videoaggregator: Rename ignore-eos pad property to repeat-after-eos
...
What it does is to repeat the last frame forever after EOS, it does not
literally ignore EOS.
2018-05-04 16:46:00 +02:00
Sebastian Dröge
e34d4e9bf4
videoaggregator: Move GstChildProxy implementations into leaf classes
...
Not every subclass will want to expose the pads via the interface.
https://bugzilla.gnome.org/show_bug.cgi?id=739011
2018-05-04 16:13:16 +02:00
Xavier Claessens
83d0623293
Meson: Generate pc file for all plugins in bad
...
https://bugzilla.gnome.org/show_bug.cgi?id=794568
2018-04-25 11:08:09 +01:00
Sebastian Dröge
3b5c2049bb
gl: Rename gstglutils.h functions to prevent symbol conflicts with static linking
...
The gl plugin in -base has the same function.
2018-03-25 12:53:53 +03:00
Mathieu Duponchelle
39d408f3d6
Port to latest GstAggregator segment API
...
The aggregator segment is now exposed on the src pad
https://bugzilla.gnome.org/show_bug.cgi?id=793946
2018-03-01 15:37:06 +01:00
Sebastian Dröge
90c1124393
gl: GL_LIBS does not exist anymore but X11_LIBS does and is needed
...
In case of X11 we have to call XInitThreads().
2018-02-18 11:49:25 +02:00
Tim-Philipp Müller
b19e3d8cf3
configure: fix OpenGL API detection
...
And don't build gl mosaic element unconditionally.
2018-01-31 13:11:04 +00:00
Vincent Penquerc'h
782fb43887
glvideomixer: fix vertex_buffer leak
...
We call the base class first as this will remove the pad from
the aggregator, thus stopping misc callbacks from being called,
one of which (process_textures) will recreate the vertex_buffer
if it is destroyed
https://bugzilla.gnome.org/show_bug.cgi?id=760873
2018-01-29 09:58:00 +00:00
Tim-Philipp Müller
88c89d2f63
gl: local libs should come first in Makefile.am
...
And keep consistent order in CFLAGS and LIBS.
2017-12-23 12:53:39 +01:00
Mark Nauwelaerts
f7f694837e
gl: arrange for finding headers and libs that have moved to -base
...
In file included from ../../../gst-plugins-bad/ext/gl/gstopengl.c:47:0:
../../../gst-plugins-bad/ext/gl/gstglmixerbin.h:25:29: fatal error: gst/video/video.h: No such file or directory
2017-12-23 12:29:03 +01:00
Tim-Philipp Müller
27e1e515a4
meson: gl: fix build of openglmixers plugin
2017-12-19 17:34:50 +00:00
Tim-Philipp Müller
06e4403fdb
gl: update plugins to use GstGL from -base
2017-12-19 12:02:31 +00:00
Tim-Philipp Müller
ee589cd337
gl: most of opengl plugin has moved to -base, keep mixer bits in -bad for now
...
Since they rely on GstVideoAggregator.
Fix detection of things again, and Meson
2017-12-19 12:02:31 +00:00
Víctor Manuel Jáquez Leal
3937ed906c
gldownload: fix wrong enum
...
When compiling with clang, an enum conversion error is triggered
since GstVideoFrameFlags are not GstVideoFlags.
This patch sets GST_VIDEO_FRAME_FLAG_NONE to the added video meta.
https://bugzilla.gnome.org/show_bug.cgi?id=791251
2017-12-05 18:12:12 +01:00
Nicolas Dufresne
4515e11c39
gldownload: Add missing ifdef for dmabuf and egl
...
This fixes the build for platforms that don't support one or the other.
2017-12-02 19:28:30 -05:00
Matt Fischer
9f65c316e4
gldownload: Add dmabuf exporting
...
This patch adds code to gldownload to export the image as a
dmabuf if requested. The element now exposes memory:DMABuf as
a cap feature, and if it is selected, the element exports the
texture to an EGL image and then a dmabuf. It also implements a
fallback to system memory download in case the exportation failed.
https://bugzilla.gnome.org/show_bug.cgi?id=776927
2017-12-02 14:49:39 -05:00
Tim-Philipp Müller
d01297e115
Remove GstAggregator from -bad, moved to core
...
https://bugzilla.gnome.org/show_bug.cgi?id=739010
2017-12-02 16:14:36 +00:00
Matthew Waters
a3ce46a454
gl/caopengllayer: use public GstGLContext instead of Cocoa-specific one
...
Allows keeping the GstGLCAOpenGLLayer public but not the winsys-specific
context/display/window.
2017-11-27 15:20:28 +11:00
Mathieu Duponchelle
56fc5bef18
aggregator: Remove klass->sinkpads_type
...
This posed problems for the python bindings (and possibly others).
Instead, subclasses now use add_pad_template_with_gtype.
https://bugzilla.gnome.org/show_bug.cgi?id=789986
2017-11-22 16:52:29 +01:00
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