Jan Schmidt
46260654a4
glimagesink: Always display with requested stereo display mode
...
Even if the input is monoscopic, the app might want to display
it in a different layout, to do side-by-side for VR for example,
so if the app changes the output-multiview-mode always use that.
2018-02-09 18:16:04 +11:00
Matthew Waters
fbef9220d3
gl*bin: fix transfer semantics for the create-element signal
...
We can either receive an element that is floating or not and need to
accomodate that in the signal return values. Do so by removing the
floating flag.
https://bugzilla.gnome.org/show_bug.cgi?id=792597
2018-02-09 17:15:30 +11:00
Matthew Waters
0d69b9d3cc
gldownload: remove texture-target field from dmabuf/sysmem caps
...
https://bugzilla.gnome.org/show_bug.cgi?id=792342
2018-02-09 12:33:28 +11:00
Edward Hervey
0d14819ef2
oggdemux: Handle invalid-sized packets
...
On invalid packets there is the possibility we might end up wanting
to trim/offset more than what is available.
oss-fuzz issue #5866
2018-02-01 10:51:21 +01:00
Nicolas Dufresne
17b118c120
glimagesink: Allow resetting render rectangle
...
As documented, passing -1 to x and/or y should reset the render
rectangle to the window/display size.
https://bugzilla.gnome.org/show_bug.cgi?id=792798
2018-01-30 09:58:14 +00:00
Nicolas Dufresne
3b317ea6c2
glimagesink: Add render-rectangle property
...
This allow controlling the render rectangle from gst-launch-1.0.
https://bugzilla.gnome.org/show_bug.cgi?id=792798
2018-01-30 09:58:14 +00:00
Branislav Katreniak
4f88125b3d
alsasrc: lock calls to snd_pcm_delay() with mutex as in alsasink
...
Alsasrc introduced delay_lock in commit 519f85a43e73efb8f3fb2c7be45226e
because alsa-lib is not thread safe for the same handle.
Alsasrc uses the same threading pattern, it should be locked too.
https://bugzilla.gnome.org/show_bug.cgi?id=746015
2018-01-22 20:24:00 +00:00
Edward Hervey
d36a22553b
theoradec: Check for valid width/height
...
If width or height are zero ... there's no video :)
2018-01-17 14:35:51 +01:00
Tim-Philipp Müller
2ee4ab1ebb
meson: gl: define HAVE_PNG etc. in config.h instead of c_args
...
So that the tests have access to them as well (gl-launch-lines.c)
2017-12-22 22:28:20 +01:00
Tim-Philipp Müller
0dd66648c3
gl: fix up a few more #if HAVE_FOO
...
error: "HAVE_PNG" is not defined, evaluates to 0 [-Werror=undef]
2017-12-19 16:51:24 +00:00
Tim-Philipp Müller
8227135f3b
gl: hook up to build system
...
Tests and documentation will follow separately.
The mixer elements in the opengl plugin need to stay
in -bad for now since they use GstVideoAggregator.
https://bugzilla.gnome.org/show_bug.cgi?id=754094
2017-12-19 12:01:48 +00:00
Tim-Philipp Müller
26b3955aba
gl: use #ifdef HAVE_* instead of #if HAVE_FOO
2017-12-19 12:01:41 +00:00
Tim-Philipp Müller
59fe9c9122
gl: remove GST_USE_UNSTABLE_API bits
2017-12-19 12:01:37 +00:00
Tim-Philipp Müller
729b500208
opus: remove unused build variable and define
2017-12-19 12:01:32 +00:00
Tim-Philipp Müller
cdbb261d9c
Move OpenGL library and plugin from -bad
...
Merge branch 'opengl-move'
https://bugzilla.gnome.org/show_bug.cgi?id=754094
2017-12-19 12:00:43 +00:00
Víctor Manuel Jáquez Leal
8f0bf85cfe
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-09 19:32:31 +00:00
Nicolas Dufresne
dc5dd864e6
gldownload: Add missing ifdef for dmabuf and egl
...
This fixes the build for platforms that don't support one or the other.
2017-12-09 19:32:31 +00:00
Matt Fischer
c98f92ee03
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-09 19:32:31 +00:00
Tim-Philipp Müller
b5dee0fe5b
Remove GstAggregator from -bad, moved to core
...
https://bugzilla.gnome.org/show_bug.cgi?id=739010
2017-12-09 19:32:31 +00:00
Matthew Waters
1abd0804f4
gl/caopengllayer: use public GstGLContext instead of Cocoa-specific one
...
Allows keeping the GstGLCAOpenGLLayer public but not the winsys-specific
context/display/window.
2017-12-09 19:32:31 +00:00
Mathieu Duponchelle
d5addcb352
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-12-09 19:32:31 +00:00
Matthew Waters
0063e63fe3
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-12-09 19:32:31 +00:00
Matthew Waters
5793dfe881
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-12-09 19:32:30 +00:00
Tim-Philipp Müller
77277c46f9
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-12-09 19:32:30 +00:00
Ponnam Srinivas
601e274c95
glmixer: Unmap video frame in error case
...
https://bugzilla.gnome.org/show_bug.cgi?id=788127
2017-12-09 19:32:30 +00:00
Haihua Hu
29973b7d6c
glvidemixer: need reconfigure output gemotry after caps renegotiated
2017-12-09 19:32:30 +00:00
Matthew Waters
9fbd1930b7
Revert "glvideomixer: need update output geometry after src caps reconfigure"
...
This reverts commit d6e538dc56
.
2017-12-09 19:32:30 +00:00
Haihua Hu
60eeef12a0
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-12-09 19:32:30 +00:00
Haihua Hu
4fa5c37878
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-12-09 19:32:30 +00:00
Nicolas Dufresne
707385690d
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-12-09 19:32:30 +00:00
Matthew Waters
21252d450c
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-12-09 19:32:30 +00:00
Matthew Waters
1dc074d401
gltransformation: draw with GL_TRIANGLES
...
Drawing 5 vertices with GL_TRIANGLE_STRIP will draw an extra unneeded
triangle.
2017-12-09 19:32:30 +00:00
Julien Isorce
d5563a0c06
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-12-09 19:32:30 +00:00
Julien Isorce
4952fdd956
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-12-09 19:32:29 +00:00
Jan Schmidt
632015a9e8
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-12-09 19:32:29 +00:00
Jan Schmidt
76bf415a96
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-12-09 19:32:29 +00:00
Nicolas Dufresne
e0d351c798
gl: Add dependency to gstallocators
2017-12-09 19:32:28 +00:00
Anders Jonsson
4179109ba2
gltestsrc: Fix typo (occured->occurred)
...
https://bugzilla.gnome.org/show_bug.cgi?id=782947
2017-12-09 19:32:28 +00:00
Olivier Crête
28b7954ea1
glbasemixer: Remove unused negotiated member
...
This is now all handled in GstAggregator, so this code is not
called anymore.
2017-12-09 19:32:28 +00:00
Olivier Crête
00760618df
gl*mixer: Use propose_allocation from the GstAggregator base class
...
https://bugzilla.gnome.org/show_bug.cgi?id=782918
2017-12-09 19:32:28 +00:00
Olivier Crête
5bb22d8f12
glbasemixer: Remove own decide_allocation, use GstAggregator's
...
https://bugzilla.gnome.org/show_bug.cgi?id=746529
2017-12-09 19:32:28 +00:00
Olivier Crête
7eaafa62a8
glbasemixer: Use aggregator for allocation handling
...
https://bugzilla.gnome.org/show_bug.cgi?id=746529
2017-12-09 19:32:28 +00:00
Olivier Crête
74db4fa64e
videoaggregator: Get the buffer from the pool if available
...
https://bugzilla.gnome.org/show_bug.cgi?id=746529
2017-12-09 19:32:28 +00:00
Matthew Waters
ffe51f38fc
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-12-09 19:32:28 +00:00
Nicolas Dufresne
e004cfd6fe
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-12-09 19:32:27 +00:00
Tim-Philipp Müller
7ee90afce2
glvideomixer: fix whole example launch line actually
2017-12-09 19:32:27 +00:00
Tim-Philipp Müller
c6ab669b52
glvideomixer: remove extraneous \ from example launch line in docs
2017-12-09 19:32:27 +00:00
Thibault Saunier
95ac4d5175
docs: Port all docstring to gtk-doc markdown
2017-12-09 19:32:27 +00:00
Matthew Waters
61ee2685c0
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-12-09 19:32:27 +00:00
Matthew Waters
66468b4245
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-12-09 19:32:27 +00:00