Commit graph

3526 commits

Author SHA1 Message Date
Tim-Philipp Müller 50aa1622e1 vorbisdec: fix leak of header buffers
handle_header_buffer() does no take ownership of
the buffer passed.

Fixes leaks in various unit tests.
2019-03-06 09:14:46 +00:00
Matthew Waters 675415bf2e gl: try to use highp precision where supported
The use of mediump as a specifier in GLSL shaders will have limited
resolution and when used as texture coordinates may become inaccurate
over texture sizes of 1024.
2019-02-28 17:26:32 +11:00
Nirbheek Chauhan b5c44dd47e meson: Remove outdated msvc-specific disabling code
This was done ages ago when the meson build files were newly added
but now we do the appropriate disabling in Cerbero instead since this
does not apply to gst-build.

https://gitlab.freedesktop.org/gstreamer/cerbero/issues/121
2019-02-21 19:19:09 +05:30
Nicolas Dufresne 32d8ed7a86 glimagesink: Don't call set_property helper in get_property 2019-02-15 21:47:56 +00:00
Sebastian Dröge 33680a3800 glcolorbalance: Copy caps in transform_internal_caps()
We don't get ownership of the caps that are passed in, and doing so
causes crashes at a later time.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/546
2019-01-24 10:15:31 +02:00
Nicolas Dufresne d64a4b7a69 Revert "alsa: Implement a DeviceProvider"
This reverts commit 69c3c31608.

All devices have the same name, they are duplicated with pulseaudio one
and the provided does not respond to HW being plugged/unplugged. I think
it's not ready for 1.16.
2019-01-18 11:39:02 -05:00
Thibault Saunier 69c3c31608 alsa: Implement a DeviceProvider
Removing gstalsadeviceprobe.[ch] as it was a relique from the 0.10
century.
2019-01-18 10:18:54 -03:00
Sebastian Dröge acc098a736 gl: Only unbind buffers/vertex attrib arrays if we can't directly bind the vertex array to 0
Binding the vertex array to 0 will unbind everything else already.

In the previous order older versions of the Intel GL driver caused
errors to be printed for every single call when disabling the vertex
attrib arrays after binding the vertex array to 0.
2019-01-16 14:09:18 +02:00
Víctor Manuel Jáquez Leal b1df1000b1 glsinkbin: validate property in internal sink
It might be the case that glgsinkbin would try to set a property to
its internal sink which doesn't exist in it, leading to a glib's
warning. For example, when playsink sets 'force-aspect-ratio' property
and glsinkbin has, as internal sink, appsink, which doesn't handle
that property.

The patch validates the incoming property to forward to internal sink
if it exists in the internal sink and both properties has the same
type.
2019-01-12 15:11:25 +01:00
Tim-Philipp Müller 4d603b00d7 Fix some typos in code comments
And don't use gtk-doc chunk markers for internal functions.
2019-01-11 11:27:11 +00:00
Andoni Morales Alastruey a52ad2078a gl: fix build with more recent versions of MinGW 2019-01-07 10:17:25 +00:00
Tim-Philipp Müller 56688ce078 gl: build gl mixer elements, moved from -base 2018-12-28 12:16:25 +01:00
Tim-Philipp Müller f11571f398 Move GstVideoAggregator, compositor and OpenGL mixers from -bad
Merge branch 'videoaggregator-compositor-glmixers-move'

Fixes #137 and #138.
2018-12-28 12:15:39 +01:00
Jan Alexander Steffens (heftig) 0bec36d5fa oggmux: Fix a maybe-uninitialized warning
Arch Linux, GCC 8.2.1+20181127, CFLAGS='-Og -g3'
2018-12-05 21:08:33 +00:00
Nicolas Dufresne 42a031edbe gldeinterlace: Indentation fix 2018-12-05 12:13:07 -05:00
Freyr666 7e92aa5bca opengl: gldeinterlace: remove interlace-mode from srcpad's caps
This fixes output caps format, so the output frames are not interlaced anymore
2018-11-30 02:09:50 +00:00
Philippe Normand d5f2b5dcfa gltestsrc: Run context query only during decide_allocation
Running the context query in _start and during the NULL->READY state transition
can fail because downstream elements might not be able to answer and thus the
source element would not be able to reuse downstream GLContext and GLDisplay.

This issue happened specifically when trying to use gltestsrc in playbin.
2018-11-30 01:55:34 +00:00
Jordan Petridis 2229d53f60
Run gst-indent through the files
This is required before we enabled an indent test in the CI.

https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
2018-11-28 05:51:53 +02:00
Michael Olbrich b006ef97fc gluploadelement: try to avoid dropping buffers
Without this, a buffer is dropped if glupload indicates that it is
necessary to reconfigure.
Avoid this by explicitly reconfiguring immediately and uploading the buffer
again.

https://bugzilla.gnome.org/show_bug.cgi?id=783521
2018-10-30 12:25:08 +01:00
Sebastian Dröge e0dee7f4c1 oggdemux: Answer POSITION query 2018-10-17 19:44:22 +03:00
Matthew Waters a164d86804 Revert "Revert "gl: use correct blend functions for unpremultiplied alpha""
This reverts commit 452d90a88c.

This was actually correct. sorry for the noise!
2018-10-05 01:21:01 +10:00
Matthew Waters 89c14c955b glvideomixer: fix the default blend modes for unpremultipled alpha
Alpha in GStreamer is unpremultiplied
2018-10-05 01:18:59 +10:00
Matthew Waters 6e591403a7 glimagesink: make multiview none equivalent to mono
Fixes the internal viewconvert to not scale buffers for output with the
following pipeline:

gltestsrc ! glimagesink

It also fixes overlay composition with a resized output with an OpenGL
upstream:

gltestsrc ! timeoverlay ! glimagesink
2018-10-05 00:48:58 +10:00
Matthew Waters 452d90a88c Revert "gl: use correct blend functions for unpremultiplied alpha"
This reverts commit 779d028f27.
2018-10-05 00:03:09 +10:00
Matthew Waters 779d028f27 gl: use correct blend functions for unpremultiplied alpha
Fallback to the closest but incorrect values we had before if we can't
do this correctly.
2018-10-04 23:43:19 +10:00
Matthew Waters d9992ba1b7 gl/meson: fix wrong overlay filename 2018-10-04 16:45:34 +10:00
Matthew Waters 2f88e2ae16 glmixerbin: add gloverlaycompositor to each input stream
Flattens the overlay compositions into the stream before the mixer will
mix them.

https://bugzilla.gnome.org/show_bug.cgi?id=759867
2018-10-04 14:32:14 +10:00
Matthew Waters 57f07fcbd4 glimagesink: only update the output info iff there's a valid display_rect
Attempting to use the MAX(1, display_rect) would result in the overlay
composition attempting to draw into 1x1 buffer and calculate some
grossly incorrect sizes.

previously failing case:
gltestsrc ! textoverlay text=GStreamer ! glimagesinkelement
2018-10-04 14:28:35 +10:00
Matthew Waters f960beaa98 gl: add a new overlay compositor element
Flattens all the overlays from the GstVideoOverlayCompositionMeta into
the video stream.

https://bugzilla.gnome.org/show_bug.cgi?id=759867
2018-10-04 14:28:35 +10:00
Sebastian Dröge b37c08ecb5 glstereomix: Fix build after deprecating misnamed GST_TYPE_GL_STEREO_DOWNMIX_MODE_TYPE 2018-10-03 16:00:23 +03:00
Sebastian Dröge c5b78fdc93 gl: Rename GST_TYPE_GL_STEREO_DOWNMIX GType macro everywhere
The old one still exists but behind GST_DISABLE_DEPRECATED
2018-10-03 14:49:32 +03:00
Sebastian Dröge 1d271f9a15 basetextoverlay: Append our rectangle to the upstream composition, not the other way around
Upstream is supposed to be painted first, and only then our rectangle.
2018-10-01 19:21:12 +03:00
Sebastian Dröge e9579466a3 basetextoverlay: Minor cleanup of negotiation functions 2018-10-01 19:21:09 +03:00
Sebastian Dröge b59fcdc789 glmixerbin: "latency" property on aggregator is uint64, not int64
Also update the property description and range with aggregator's values.
2018-09-24 23:26:52 +03:00
Matthew Waters f757da1160 glvideomixer: fix constant alpha enum value for constant alpha 2018-09-21 19:45:13 +10:00
Sebastian Dröge 55ec47f555 vorbisdec: Initialize decoder directly once we have the 3 headers
... instead of waiting for the first non-header buffer.

Also drop non-identification headers arriving after initialization or
before the identification header. We don't do anything with them and
they would just accumulate.

https://bugzilla.gnome.org/show_bug.cgi?id=796980
2018-09-21 11:48:40 +03:00
Sebastian Dröge 05d0c72a59 glvideomixer: Fix typo in property description 2018-09-19 10:28:56 +03:00
Nicolas Dufresne 46f47416fe Revert "gluploadelement: try to avoid dropping buffers"
This reverts commit 75f2532da7.
2018-09-13 20:02:34 -04:00
Marcos Kintschner e05e8117e7 opusenc: fix segmentation fault at x86 version
The argument 0x0 is interpreted by the x86 compiler as a 32-bit int, but
it is consumed as a 64-bit uint causing a segmentation fault. We need to
explicit cast it to guint64 in order for the va_list to be built correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=797092
2018-09-13 20:00:02 -04:00
Michael Olbrich 75f2532da7 gluploadelement: try to avoid dropping buffers
Without this, a buffer is dropped if glupload indicates that it is
necessary to reconfigure.
Avoid this by explicitly reconfiguring immediately and uploading the buffer
again.

https://bugzilla.gnome.org/show_bug.cgi?id=783521
2018-09-10 23:29:10 -04:00
Nirbheek Chauhan 41b7a65b81 meson: Add an option for the 'Tremor' Vorbis implementation
It makes sense to control it explicitly to allow us to enable it on
platforms that don't have hardware floating-point, and to allow people
to enable the 'vorbis' plugin without having to also provide the
Tremor dependency which is useless on most devices.
2018-09-10 22:22:16 +05:30
Matthew Waters 43f0b75e55 gl/meson: add build for iOS 2018-08-31 12:23:40 +10:00
Sebastian Dröge 0619168e2a vorbisdec: Always handle in-band header packets once the first non-header packet arrives
And clean up any old pending headers if we receive a new identification
header, or if we receive a new set of headers via caps.

Otherwise it might happen that we receive one or more header but not
all, and then afterwards all headers again, and libvorbis does not like
getting headers passed multiple times and would error out.

It only makes sense to pass the very latest headers to the decoder at
the time we can actually make use of them.

https://bugzilla.gnome.org/show_bug.cgi?id=796980
2018-08-28 17:47:09 +03:00
Sebastian Dröge 2ace14f613 pango: Create one context per instance and remove class mutex
PangoCairo is thread-safe as long as the context and fontmap are not
shared between threads. Previously each subclass had its own context and
a class mutex for this reason, but apart from hurting performance this
was also not completely safe yet: the same fontmap might've been used by
different classes from different threads as the thread-default fontmap
(at time of class initialization) was used.
2018-08-27 15:41:31 +03:00
Sebastian Dröge 6024b8e46b oggdemux: Ensure that no pad values are set when setting up the mapper
Otherwise we might have arbitrary values set that are used later and can
cause undefined behaviour, as found by ossfuzz.
2018-08-27 11:07:47 +03:00
Tim-Philipp Müller c1cf04f67f glcolorscale: fix compiler warning
gstglcolorscale.c(173): warning C4098: 'gst_gl_colorscale_gl_stop': 'void' function returning a value
2018-08-26 11:16:23 +02:00
Tim-Philipp Müller e89aa2af6a meson: remove obsolete FIXME 2018-08-16 11:35:33 +01:00
Tim-Philipp Müller cec90050b0 meson: gl: find libjpeg via pkg-config
This effectively (but optionally) requires libjpeg-turbo which
ships with a .pc file and is what pretty much everyone these days
uses anyway for libjpeg, so shouldn't be a problem hopefully.

https://bugzilla.gnome.org/show_bug.cgi?id=796947
2018-08-16 11:09:51 +01:00
Tim-Philipp Müller 4ec1ba433d meson: add option for opengl and the misc optional gl plugin deps
Finer control over the opengl integration library dependencies
is already implemented via the gl_api, gl_platform, and gl_winsys
options.

https://bugzilla.gnome.org/show_bug.cgi?id=796947
2018-08-16 10:56:58 +01:00
Alessandro Decina 06b8792a5f gl/meson: OSX support (CGL and Cocoa)
[Matthew Waters]: minor additions such as -fobjc-arc and relying on
dependency rather than cc.find_library()
2018-08-03 12:53:10 +10:00