Sjoerd Simons [Fri, 9 Nov 2018 08:32:49 +0000 (09:32 +0100)]
glupload: dmabuf: be explicit about gl formats used
Rather then letting gst_gl_memory_setup_buffer guess the GL format used
for an eglimage after importing a dmabuf be explicit about it. This
fixes issues where dmabuf import may have used another format then
gst_gl_format_from_video_info would guess on the basis of the available
GL extensions.
In particular on etnaviv the gst_gl_format_from_video_info would
assuming a luminance + alpha GL format is used for YUY2, but the dmabuf
import will always use RG88. Which causes images to end up somewhat pink when
displayed on the screen.
Sjoerd Simons [Fri, 9 Nov 2018 09:30:06 +0000 (10:30 +0100)]
gl/egl: Determine correct format on dmabuf import
When importing an egl image from dmabuf gst_gl_format_from_video_info
was used to work what the result GL format will be. Unfortunately that
will only work if the conventional format and the choosen DRM fourcc for
the format match up.
On etnaviv platforms there is no support for GL_EXT_texture_rg, so the
GL format chosen for YUY2 ends up being GST_GL_LUMINANCE_ALPHA. However
DRM does not do luminance + alpha as it's a legacy GL thing, so the
dmabuf import ends up using DRM_FORMAT_GR88.
To fix this, tie the DRM_FORMAT and the GL format together so they
always match up.
Edward Hervey [Fri, 9 Nov 2018 11:22:31 +0000 (12:22 +0100)]
urisourcebin: Avoid potential unitialized/wrong bitrate value
Only calculate and set the bitrate if all conditions are met.
Edward Hervey [Wed, 7 Nov 2018 15:28:28 +0000 (16:28 +0100)]
urisourcebin: Fix previous commit
rebase wasn't correct :)
Matthew Waters [Mon, 30 Jul 2018 07:56:18 +0000 (17:56 +1000)]
tests/urisourcebin: add get/set watermark test
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/60
Matthew Waters [Mon, 30 Jul 2018 04:57:23 +0000 (14:57 +1000)]
urisourcebin: add a statistics property for queueing
It contains the minimum/maximum/average byte and time levels of the
queues inside this urisourcebin
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/60
Matthew Waters [Mon, 30 Jul 2018 04:56:40 +0000 (14:56 +1000)]
uisourcebin: update forwarded properties on change
Allows changing queueing properties at runtime
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/60
Matthew Waters [Mon, 30 Jul 2018 04:48:35 +0000 (14:48 +1000)]
urisourcebin: add low/high-watermark properties
These are forwarded to the contained queues.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/60
Matthew Waters [Mon, 23 Jul 2018 04:14:32 +0000 (14:14 +1000)]
urisourcebin: limit the byte size of the queue based on the buffer-size
Use the bitrate advertised by queue2 to determine the limits to
set across possibly multiple queue2/downloadbuffer elements. e.g.
with two queue2's and a max-bytes based on the ratio of the
bitrate/cumulative_bitrate multiplied by the buffer_size set on urisourcebin.
This allows finer grained control over the buffer used by all the queue
elements inside urisourcebin. Instead of a maximum of
n_streams*buffer_size being used, only buffer_size will be used however
we will fallback to n_streams*buffer_size if one of the queue2's does
not have bitrate information.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/60
Matthew Waters [Wed, 27 Jun 2018 10:17:08 +0000 (20:17 +1000)]
urisourcebin: remove unused instance variable streams
Edward Hervey [Mon, 5 Nov 2018 11:00:55 +0000 (12:00 +0100)]
examples: Fix libgstvideo linking
Use the local libgstvideo (and not the system wide one)
Sebastian Dröge [Sun, 4 Nov 2018 19:17:28 +0000 (21:17 +0200)]
audio: const gpointer is not the same as gconstpointer/const void *
See https://bugzilla.gnome.org/show_bug.cgi?id=664491
Matthew Waters [Mon, 5 Nov 2018 05:35:12 +0000 (05:35 +0000)]
Update common submodule location without /git/ directory
Haihao Xiang [Mon, 5 Nov 2018 04:06:15 +0000 (12:06 +0800)]
Clone the code from gitlab
This fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/503
Sebastian Dröge [Thu, 1 Nov 2018 17:19:51 +0000 (19:19 +0200)]
video-anc: Add unit tests for VBI parsing
https://bugzilla.gnome.org/show_bug.cgi?id=797363
Sebastian Dröge [Thu, 1 Nov 2018 17:19:03 +0000 (19:19 +0200)]
video-anc: Fix bounds checks when parsing VBI data
We were reading more bytes than we allocated.
https://bugzilla.gnome.org/show_bug.cgi?id=797363
Nicolas Dufresne [Wed, 31 Oct 2018 18:30:14 +0000 (18:30 +0000)]
glupload: Only renegotiate if the caps are incompatible
There is new code that ensures that we renegotiate after an
uploader transition if the negotiated caps have changed.
The problem is that the raw uploader will not really try and
fixate the input caps, but instead of return a subset with the
only the supported target texture.
This had two effect, raw uploads was always done renegotiated
once and the raw upload unit test was now failing as it didn't
expect a renegotiation.
As it's a valid check, simply relax the gst_caps_is_equal() check
and use a gst_caps_is_subset() instead.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Nicolas Dufresne [Wed, 31 Oct 2018 18:26:42 +0000 (18:26 +0000)]
glupload: Do prepend the preferred caps
The direct dmabuf upload does color conversion, so when it transforms
the caps, it replaces the format with all formats found through the
format query. When this uploader can't be used, it makes the upstream
source pick a unsupported format.
To fix this, we only append the caps with a list of format. So the
source will only pick one of these formats if the downstream preferred
format is not supported. A negotiation failure after this would be
normal.
This fixes pipelines without a glcolorconvert element.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Nicolas Dufresne [Wed, 31 Oct 2018 18:24:33 +0000 (18:24 +0000)]
glupload-test: Don't use gboolean to store enums
The unit test makes mixed usage of ret value. Sometimes its does
stores an enum and at other moment a boolean. Also fix test
using boolean instead of the correct enum value.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Philippe Normand [Sun, 28 Oct 2018 14:46:15 +0000 (14:46 +0000)]
examples/playback-test: New entry for text-offset updates
https://bugzilla.gnome.org/show_bug.cgi?id=797134
Philippe Normand [Sun, 28 Oct 2018 14:45:26 +0000 (14:45 +0000)]
playbin3: New text-offset property
This new property controls the synchronisation offset between the text and video
streams. Positive values make the text ahead of the video and negative values
make the text go behind the video.
https://bugzilla.gnome.org/show_bug.cgi?id=797134
Philippe Normand [Sun, 28 Oct 2018 14:43:01 +0000 (14:43 +0000)]
playbin: New text-offset property
This new property controls the synchronisation offset between the text and video
streams. Positive values make the text ahead of the video and negative values
make the text go behind the video.
https://bugzilla.gnome.org/show_bug.cgi?id=797134
Philippe Normand [Sun, 28 Oct 2018 14:42:31 +0000 (14:42 +0000)]
playsink: Add text-offset property
When the playsink contains a text chain this property controls the
synchronisation of the subtitles and video by controlling the underlying
subtitleoverlay::subtitle-ts-offset property.
https://bugzilla.gnome.org/show_bug.cgi?id=797134
Philippe Normand [Sun, 28 Oct 2018 14:35:17 +0000 (14:35 +0000)]
subtitleoverlay: Add a subtitle-ts-offset property
This property controls the synchronisation offset between text and video in
nanoseconds, by updating the parser src pad offset.
https://bugzilla.gnome.org/show_bug.cgi?id=797134
Wangfei [Tue, 9 Oct 2018 07:25:37 +0000 (15:25 +0800)]
video: add Y210 pixel format.
This pixel format is packed format with 4:2:2 sample and 10
available bits of each channel.
https://bugzilla.gnome.org/show_bug.cgi?id=797267
Philipp Zabel [Wed, 17 Oct 2018 15:22:10 +0000 (17:22 +0200)]
glupload: dmabuf-direct: report driver limitations to debug log
Report in the DEBUG log if the driver does not support importing a given
format with linear modifiers non-externally.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Philipp Zabel [Wed, 17 Oct 2018 15:11:20 +0000 (17:11 +0200)]
glupload: dmabuf-direct: query formats before modifiers
The EXT_image_dma_buf_import_modifiers extension [1] states regarding
eglQueryDmaBufModifiersEXT:
The format must be one of those returned by the
eglQueryDmaBufFormatsEXT command.
To comply with this requirement eglQueryDmaBufFormatsEXT must be called
before eglQueryDmaBufModifiersEXT.
[1] https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Philipp Zabel [Wed, 17 Oct 2018 15:09:26 +0000 (17:09 +0200)]
glupload: debug output from dmabuf and dmabuf_direct upload transform_caps
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Philipp Zabel [Wed, 17 Oct 2018 13:47:07 +0000 (15:47 +0200)]
glupload: calculate DRM fourcc once for direct dmabuf upload
Calculate DRM fourcc and report to the DEBUG log about it only once
instead of three times in gst_egl_image_from_dmabuf_direct().
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Michael Olbrich [Thu, 5 Jul 2018 08:17:27 +0000 (10:17 +0200)]
glupload: Implement direct dmabuf uploader
The idea is that some GPUs (like the Vivante series) can actually
perform the YUV->RGB conversion internally, so no custom conversion
shaders are needed. To make use of this feature, we need an additional
uploader that can import DMABUF FDs and also directly pass the pixel
format, relying on the GPU to do the conversion.
Based on patches from Nicolas Dufresne <nicolas.dufresne@collabora.com> and
Carlos Rafael Giani <dv@pseudoterminal.org>.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Michael Olbrich [Wed, 4 Jul 2018 07:29:57 +0000 (09:29 +0200)]
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
Michael Olbrich [Wed, 4 Jul 2018 07:21:00 +0000 (09:21 +0200)]
glupload: handle upload methods with different caps
If a upload method is selected then use it exclusively in transform_caps().
Also, reconfigure if the current caps don't match the current upload
method.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Michael Olbrich [Thu, 5 Jul 2018 13:17:30 +0000 (15:17 +0200)]
glupload: allow system memory for dmabuf in transform_caps
This should not be necessary, but currently not all plugins that provide
dmabuf memory announce this with caps features, e.g. v4l2.
The static caps already contain the system memory. It didn't break before
because other upload methods provide the necessary transformation.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Michael Olbrich [Wed, 4 Jul 2018 07:17:11 +0000 (09:17 +0200)]
glupload: try to use the last method after reconfigure
Reconfigure will trigger a set_caps which clears the upload method.
Remember the method in this case and start with it.
Wrap around once to try all methods if necessary.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Michael Olbrich [Tue, 30 Oct 2018 11:25:02 +0000 (12:25 +0100)]
gl/egl: Add gst_egl_image_from_dmabuf_direct() function
The colorspace conversion happens during the upload so the necessary hints
must be provided to ensure that the conversion works correctly.
At least the Mesa Intel driver will create a texture without error but
produces an incorrect result. Use eglQueryDmaBufModifiersEXT() to check if
non-external upload is supported for the given format.
Based on a patch from Carlos Rafael Giani <dv@pseudoterminal.org>.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Nicolas Dufresne [Wed, 7 Jun 2017 16:00:08 +0000 (18:00 +0200)]
glmemory: Fix n_wrapped_pointers usage
gst_gl_memory_setup_buffer() was not properly using the number
of pointers to wrapped. This also fixes the validation, as we
only support 1 wrapper per view, or num_planes * views wrapper.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Johan Bjäreholt [Mon, 29 Oct 2018 08:18:35 +0000 (09:18 +0100)]
overlaycomposition: Fix implicit use of memset
https://bugzilla.gnome.org/show_bug.cgi?id=797353
Sebastian Dröge [Sun, 28 Oct 2018 17:41:38 +0000 (17:41 +0000)]
overlaycomposition: Add plugin inspect file
Philippe Normand [Sun, 28 Oct 2018 17:21:08 +0000 (17:21 +0000)]
examples: overlaycomposition: Fix Meson build
Sebastian Dröge [Mon, 1 Oct 2018 15:10:34 +0000 (18:10 +0300)]
overlaycomposition: New element that allows applications to draw GstVideoOverlayComposition on a stream
https://bugzilla.gnome.org/show_bug.cgi?id=797234
Sebastian Dröge [Wed, 8 Aug 2018 15:35:08 +0000 (17:35 +0200)]
parsebin: Add missing locks/unlocks of the chain mutex
Before freeing pending pads it is required to hold the mutex, that's
what is protecting the list of pending pads in other places.
https://bugzilla.gnome.org/show_bug.cgi?id=796935
Edward Hervey [Sat, 27 Oct 2018 13:48:13 +0000 (15:48 +0200)]
tests: Solidify tcp connection check
The previous failure was a timeout which was due to the sending pipeline
pushing test buffer *before* the remote client was accepted. We would
therefore never get the buffer on the other side.
While the client socket would indeed appear as "connected", this doesn't
mean that the remote server side did "accept" it (which is where we then
add it to the list of remote parties to which data will be sent).
The problem isn't with the element implementation, but to the nature of
TCP 3-way handshake.
In order to make the test reliable, wait for the sink to have accepted
the remote client (by checking the number of handles) before sending out
test buffers.
Roland Jon [Tue, 24 Jul 2018 10:40:36 +0000 (18:40 +0800)]
decodebin3: fix eos event leak
https://bugzilla.gnome.org/show_bug.cgi?id=796860
Sebastian Dröge [Wed, 17 Oct 2018 16:43:51 +0000 (19:43 +0300)]
oggdemux: Answer POSITION query
Seungha Yang [Thu, 27 Sep 2018 12:21:14 +0000 (21:21 +0900)]
meson: Replace empty configuration_data() with copy keyword
Use 'copy' keyword to avoid meson warning message.
Note that 'copy' keyword in configure_file() is available
since meson 0.47.0
https://bugzilla.gnome.org/show_bug.cgi?id=797298
Nirbheek Chauhan [Mon, 15 Oct 2018 14:15:46 +0000 (19:45 +0530)]
videometa: Log map errors with GST_ERROR, not DEBUG
Otherwise it's very easy to miss them when gst_video_frame_map() fails
Mathieu Duponchelle [Wed, 10 Oct 2018 21:15:49 +0000 (23:15 +0200)]
rtspconnection: do not duplicate authentication headers
rtsp_connection_send takes care of adding those already,
and some reverse proxies such as nginx will reject the request
altogether if the Authorization header is present twice,
even with the same value.
https://bugzilla.gnome.org/show_bug.cgi?id=797272
Stian Selnes [Wed, 10 Oct 2018 18:16:12 +0000 (14:16 -0400)]
rtpbasepayload: rtpbasedepayload: Add source-info property
Add a source-info property that will read/write meta to the buffers
about RTP source information. The GstRTPSourceMeta can be used to
transport information about the origin of a buffer, e.g. the sources
that is included in a mixed audio buffer.
A new function gst_rtp_base_payload_allocate_output_buffer() is added
for payloaders to use to allocate the output RTP buffer with the correct
number of CSRCs according to the meta and fill it.
RTPSourceMeta does not make sense on RTP buffers since the information
is in the RTP header. So the payloader will strip the meta from the
output buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=761947
Tim-Philipp Müller [Mon, 8 Oct 2018 00:07:45 +0000 (01:07 +0100)]
meson: use new 'python' module instead of deprecated
https://github.com/mesonbuild/meson/pull/4169
Tim-Philipp Müller [Sun, 7 Oct 2018 18:09:24 +0000 (19:09 +0100)]
examples: gl: remove bitrotten clutter examples
https://bugzilla.gnome.org/show_bug.cgi?id=797173
George Kiagiadakis [Fri, 5 Oct 2018 12:37:45 +0000 (15:37 +0300)]
tests: audioconvert: test caps fixate with layout conversion
https://bugzilla.gnome.org/show_bug.cgi?id=797225
Matej Knopp [Sat, 29 Sep 2018 08:39:46 +0000 (10:39 +0200)]
audioconvert: remove layout from structure when fixating caps
otherwise caps intersection always fails when converting non-interleaved to interleaved audio
https://bugzilla.gnome.org/show_bug.cgi?id=797225
Matthew Waters [Thu, 4 Oct 2018 15:19:29 +0000 (01:19 +1000)]
Revert "Revert "gl: use correct blend functions for unpremultiplied alpha""
This reverts commit
452d90a88c6e68a3daa38e02213782836788236a.
This was actually correct. sorry for the noise!
Matthew Waters [Thu, 4 Oct 2018 14:48:58 +0000 (00:48 +1000)]
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
Matthew Waters [Thu, 4 Oct 2018 14:03:09 +0000 (00:03 +1000)]
Revert "gl: use correct blend functions for unpremultiplied alpha"
This reverts commit
779d028f27b7bc6eb7abe841fe2cda97de3be983.
Matthew Waters [Thu, 4 Oct 2018 13:43:19 +0000 (23:43 +1000)]
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.
Matthew Waters [Thu, 4 Oct 2018 13:23:03 +0000 (23:23 +1000)]
gl/overlaycompositor: don't force unpremultiplied alpha
Remove testing code from
23159365618409011745b554b4ad371700961121
Matthew Waters [Thu, 4 Oct 2018 13:02:05 +0000 (23:02 +1000)]
gl/overlaycompositor: support both (un)premultiplied alpha
Using the correct blend modes for each case or converting to
premultipled in the very unlikely case that separate blend modes are
unavailable on ancient opengl hardware.
Sebastian Dröge [Thu, 4 Oct 2018 11:50:43 +0000 (14:50 +0300)]
gl: GstGLAPI should be gst_gl_api_ in lower-case
Sebastian Dröge [Thu, 4 Oct 2018 10:38:59 +0000 (13:38 +0300)]
glviewconvert: Add backwards compatibility gst_gl_stereo_downmix_mode_get_type()
It's proper new name is gst_gl_stereo_downmix_get_type().
Sebastian Dröge [Thu, 4 Oct 2018 10:33:30 +0000 (13:33 +0300)]
gl: Add gl-enumtypes.[ch] to CLEANFILES
Sebastian Dröge [Thu, 4 Oct 2018 08:36:09 +0000 (11:36 +0300)]
video-overlay-composition: Correctly mark GstVideoOverlayFormatFlags as flags
And register a GType for it.
Matthew Waters [Thu, 4 Oct 2018 06:45:34 +0000 (16:45 +1000)]
gl/meson: fix wrong overlay filename
Matthew Waters [Fri, 28 Sep 2018 02:09:16 +0000 (12:09 +1000)]
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
Matthew Waters [Thu, 27 Sep 2018 03:35:15 +0000 (13:35 +1000)]
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
Matthew Waters [Thu, 27 Sep 2018 03:31:09 +0000 (13:31 +1000)]
gl/overlaycompositor: add support for flipping the output
This is required to use gloverlaycompositor outside of glimagesink where
the output is not automatically flipped
Matthew Waters [Thu, 27 Sep 2018 03:30:35 +0000 (13:30 +1000)]
gl/overlaycompositor: handle ANY caps features gracefully
Matthew Waters [Thu, 27 Sep 2018 03:29:03 +0000 (13:29 +1000)]
glfilter: don't complete overwrite caps features from the subclass
We can get away with ensuring that the memory:GLMemory caps feature is
present in the output caps
Sebastian Dröge [Wed, 3 Oct 2018 20:27:32 +0000 (23:27 +0300)]
gl: Add gl-enumtypes.h to nodist_HEADERS
Sebastian Dröge [Wed, 3 Oct 2018 20:17:56 +0000 (23:17 +0300)]
glviewconvert: Create an anonymous enum for GstGLStereoDownmix
Older glib-mkenums completely fails to parse it otherwise.
Sebastian Dröge [Wed, 3 Oct 2018 11:49:32 +0000 (14:49 +0300)]
gl: Rename GST_TYPE_GL_STEREO_DOWNMIX GType macro everywhere
The old one still exists but behind GST_DISABLE_DEPRECATED
Sebastian Dröge [Wed, 3 Oct 2018 10:06:42 +0000 (13:06 +0300)]
gl: Generate enum GTypes via glib-mkenums
https://bugzilla.gnome.org/show_bug.cgi?id=797240
https://bugzilla.gnome.org/show_bug.cgi?id=797144
Sebastian Dröge [Tue, 2 Oct 2018 18:01:31 +0000 (21:01 +0300)]
glsl: Fix error quark string to be more consistent
Sebastian Dröge [Tue, 2 Oct 2018 17:59:01 +0000 (20:59 +0300)]
glbasememory: Fix error quark string and move documentation to the right place
Thiago Santos [Tue, 2 Oct 2018 00:51:26 +0000 (17:51 -0700)]
encoding-profile: set_restriction should accept null as valid
It was checking for GST_IS_CAPS only and that would fail if the new
restriction caps was NULL and its documentation says it accepts NULL as
valid input.
Sebastian Dröge [Mon, 1 Oct 2018 16:13:39 +0000 (19:13 +0300)]
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.
Sebastian Dröge [Mon, 1 Oct 2018 15:27:22 +0000 (18:27 +0300)]
basetextoverlay: Minor cleanup of negotiation functions
Sebastian Dröge [Mon, 1 Oct 2018 09:17:42 +0000 (12:17 +0300)]
video-overlay-composition: Handle miniobject writability correctly
By tracking parents and using the proper GstMiniObject API for detecting
writability instead of just the reference count.
https://bugzilla.gnome.org/show_bug.cgi?id=797230
Sebastian Dröge [Sat, 29 Sep 2018 08:26:27 +0000 (11:26 +0300)]
video: Fix annotations for gst_buffer_add_video_meta_full()
Edward Hervey [Thu, 27 Sep 2018 13:03:10 +0000 (15:03 +0200)]
tagdemux: Use upstream GST_EVENT_STREAM_START if present
If we have an upstream GST_EVENT_STREAM_START, use that one instead
of creating a new one which could be completely different from the
upstream one and drop information (like the stream flags and stream
object).
Only create a new event if we don't already have one from upstream
https://bugzilla.gnome.org/show_bug.cgi?id=797215
Matthew Waters [Wed, 26 Sep 2018 03:22:14 +0000 (13:22 +1000)]
glviewconvert: wait and set the gl sync meta on buffers
This may be a cause of out-of-place frames when transforming multiview
buffers.
Sebastian Dröge [Tue, 25 Sep 2018 13:56:24 +0000 (16:56 +0300)]
glviewconvert: Copy composition meta from the primary buffer to both outputs
Without this, glviewconvert (and thus glimagesink) will drop all overlay
composition metas.
Sebastian Dröge [Tue, 25 Sep 2018 13:56:07 +0000 (16:56 +0300)]
glcolorconvert: Don't copy overlay composition meta over to NULL outbufs
Nirbheek Chauhan [Mon, 24 Sep 2018 13:55:28 +0000 (19:25 +0530)]
gstaudioutilsprivate: Fix warnings while setting thread priority
Also use G_OS_WIN32 instead of _WIN32 for clarity.
Tim-Philipp Müller [Sat, 28 Apr 2018 13:50:11 +0000 (14:50 +0100)]
libs: fix API export/import and 'inconsistent linkage' on MSVC
For each lib we build export its own API in headers when we're
building it, otherwise import the API from the headers.
This fixes linker warnings on Windows when building with MSVC.
The problem was that we had defined all GST_*_API decorators
unconditionally to GST_EXPORT. This was intentional and only
supposed to be temporary, but caused linker warnings because
we tell the linker that we want to export all symbols even
those from externall DLLs, and when the linker notices that
they were in external DLLS and not present locally it warns.
What we need to do when building each library is: export
the library's own symbols and import all other symbols. To
this end we define e.g. BUILDING_GST_FOO and then we define
the GST_FOO_API decorator either to export or to import
symbols depending on whether BUILDING_GST_FOO is set or not.
That way external users of each library API automatically
get the import.
While we're at it, add new GST_API_EXPORT in config.h and use
that for GST_*_API decorators instead of GST_EXPORT.
The right export define depends on the toolchain and whether
we're using -fvisibility=hidden or not, so it's better to set it
to the right thing directly than hard-coding a compiler whitelist
in the public header.
We put the export define into config.h instead of passing it via the
command line to the compiler because it might contain spaces and brackets
and in the autotools scenario we'd have to pass that through multiple
layers of plumbing and Makefile/shell escaping and we're just not going
to be *that* lucky.
The export define is only used if we're compiling our lib, not by external
users of the lib headers, so it's not a problem to put it into config.h
Also, this means all .c files of libs need to include config.h
to get the export marker defined, so fix up a few that didn't
include config.h.
This commit depends on a common submodule commit that makes gst-glib-gen.mak
add an #include "config.h" to generated enum/marshal .c files for the
autotools build.
https://bugzilla.gnome.org/show_bug.cgi?id=797185
Seungha Yang [Fri, 21 Sep 2018 13:31:33 +0000 (22:31 +0900)]
meson: Specify encoding to UTF-8 when building with MSVC
Fix build on some non-US locale Windows systems
Error:
gst-plugins-base/tools/gst-device-monitor.c(278): error C2001
https://bugzilla.gnome.org/show_bug.cgi?id=797186
Sebastian Dröge [Fri, 21 Sep 2018 08:29:42 +0000 (11:29 +0300)]
gl/win32: Use g_io_channel_win32_new_messages() instead of our custom GSource
Removes some unneeded code duplication between here and GLib.
https://bugzilla.gnome.org/show_bug.cgi?id=797184
Sebastian Dröge [Thu, 20 Sep 2018 11:04:39 +0000 (14:04 +0300)]
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
Tim-Philipp Müller [Wed, 19 Sep 2018 22:43:10 +0000 (23:43 +0100)]
examples: gl: generic: recordgraphic: fix build with MSVC
Johan Bjäreholt [Wed, 27 Jun 2018 08:34:09 +0000 (10:34 +0200)]
Removed unused GST_CAT_PERFORMANCE
https://bugzilla.gnome.org/show_bug.cgi?id=797175
Tim-Philipp Müller [Wed, 19 Sep 2018 10:42:14 +0000 (11:42 +0100)]
meson: add glib-checks option to disable API guards and such
We want this enabled by default, also in releases, but people
may want to disable this for performance-critical workloads or
on embedded devices.
Tim-Philipp Müller [Wed, 19 Sep 2018 10:34:37 +0000 (11:34 +0100)]
meson: fix missing closing bracket in option descriptions
Tim-Philipp Müller [Wed, 19 Sep 2018 10:16:17 +0000 (11:16 +0100)]
meson: add clutter gl examples to Meson build
Tim-Philipp Müller [Wed, 19 Sep 2018 09:52:40 +0000 (10:52 +0100)]
examples: gl: remove old and broken vs solution files
Tim-Philipp Müller [Wed, 19 Sep 2018 09:49:56 +0000 (10:49 +0100)]
meson: add generic gl examples to Meson build
Víctor Manuel Jáquez Leal [Mon, 17 Sep 2018 16:36:03 +0000 (18:36 +0200)]
gl/egl: fix annotation for gst_egl_image_new_wrapped()
https://bugzilla.gnome.org/show_bug.cgi?id=797158
Víctor Manuel Jáquez Leal [Mon, 17 Sep 2018 15:45:42 +0000 (17:45 +0200)]
gl: meson: add missing headers for gir generations
There are a lot of symbols in GstGL-1.0.gir generated by automake that
are not when it is generated by meson, because a lot of headers were
not included in meson's gir generation.
https://bugzilla.gnome.org/show_bug.cgi?id=797158
Matthew Waters [Mon, 3 Sep 2018 06:20:33 +0000 (16:20 +1000)]
gl/build: don't pass OpenGL headers to GIR
g-ir-scanner does not have a good enough C parser to parse the GL system
headers
Matthew Waters [Mon, 3 Sep 2018 06:06:45 +0000 (16:06 +1000)]
glshader: macro out all the extremely similar uniform setting
Víctor Manuel Jáquez Leal [Fri, 14 Sep 2018 12:12:40 +0000 (14:12 +0200)]
glviewconvert: fix GEnumValue declaration
The purpose of value_name in GEnumValue structure is to express in
text format the name of the enum, not a description of the value, so
it can be use later for the gir file generation.
https://bugzilla.gnome.org/show_bug.cgi?id=797144