platform/upstream/gst-plugins-base.git
4 years agovideo-color: Fix unknown colorimetry checking
Arun Raghavan [Fri, 24 May 2019 14:35:08 +0000 (16:35 +0200)]
video-color: Fix unknown colorimetry checking

Also drop some deadcode #defines.

4 years agovideo-anc: Fix ADF detection when trying to extract data from vanc
Sebastian Dröge [Wed, 7 Aug 2019 10:01:07 +0000 (13:01 +0300)]
video-anc: Fix ADF detection when trying to extract data from vanc

Previously we were checking offset 1 twice, but the second check
should've been for offset 2.

4 years agogl/wayland: fix wayland event source burning CPU
Lucas Stach [Tue, 28 May 2019 15:43:25 +0000 (17:43 +0200)]
gl/wayland: fix wayland event source burning CPU

Commit c71dd72b "gl/wayland: fix glib mainloop integration" was overeager
in removing the poll result test from the check function. This caused
dispatch to be called even if no new events are available on the
Wayland connection, which in turn would wake up the glib mainloop,
causing effectively a tight loop without ever blocking on the poll.

Fixes #603

4 years agoAdd used attribute in order to make NEON detection working with -flto.
Martin Liska [Wed, 24 Jul 2019 08:12:17 +0000 (10:12 +0200)]
Add used attribute in order to make NEON detection working with -flto.

4 years agoaudioaggregator: Split getcaps() function into two
Sebastian Dröge [Thu, 18 Jul 2019 05:46:42 +0000 (08:46 +0300)]
audioaggregator: Split getcaps() function into two

One for convert pads and one for normal sink pads.

4 years agovideoaggregator: We can only convert the format if a GstVideoAggregatorConvertPad...
Sebastian Dröge [Tue, 16 Jul 2019 07:40:16 +0000 (10:40 +0300)]
videoaggregator: We can only convert the format if a GstVideoAggregatorConvertPad is used

Otherwise assume that we can at least support any framerate.

4 years agoaudioaggregator: Always take first configure pad's rate and downstream caps into...
Sebastian Dröge [Tue, 16 Jul 2019 07:34:24 +0000 (10:34 +0300)]
audioaggregator: Always take first configure pad's rate and downstream caps into account when calculating allow sink caps

While we can convert between all formats apart from the rate, we
actually need to make sure that we comply with a) the rate of the first
configured pad and b) also all the allowed rates from downstream.

4 years agoaudioaggregator: If we don't have a GstAudioAggregatorConvertPad, don't assume that...
Sebastian Dröge [Tue, 16 Jul 2019 07:02:08 +0000 (10:02 +0300)]
audioaggregator: If we don't have a GstAudioAggregatorConvertPad, don't assume that we can actually convert

4 years agoaudioaggregator: always use downstream's rate requirements
Mathieu Duponchelle [Mon, 15 Jul 2019 14:08:34 +0000 (16:08 +0200)]
audioaggregator: always use downstream's rate requirements

We were previously only fixating the rate in the getcaps
implementation when downstream was requiring a discrete value,
causing negotiation to fail when upstream was capable of rate
conversion, but not made aware that it had to occur.

Instead of fixating the rate, we can simply update our sink
template caps with whatever GValue the downstream caps are holding
as their rate field.

Allows negotiation to successfully complete with pipelines such as:

audiotestsrc ! audio/x-raw, rate=48000 ! audioresample ! audiomixer name=m ! \
audio/x-raw, rate={800, 1000} ! autoaudiosink \
audiotestsrc ! audio/x-raw, rate=44100 ! audioresample ! m.

4 years agortspconnection: data-offset increase not set
Göran Jönsson [Fri, 28 Jun 2019 05:22:17 +0000 (07:22 +0200)]
rtspconnection: data-offset increase not set

4 years agortpsconnection: Fix number of n_vectors
Göran Jönsson [Thu, 27 Jun 2019 06:04:07 +0000 (08:04 +0200)]
rtpsconnection: Fix number of n_vectors

Body_offset mean that so much data have been written.

Without this patch n_vectors somtimes  becomes one more than it should
and then there will be an vector that have a random size causing
writev_bytes to cause a "Bad address" error.

4 years agovideo-color: Add compile-time assert for ColorimetryInfo enum
Nirbheek Chauhan [Wed, 26 Jun 2019 11:35:04 +0000 (17:05 +0530)]
video-color: Add compile-time assert for ColorimetryInfo enum

A comment is not sufficient because this will break when
cherry-picking or backporting commits.

4 years agoaudiodecoder: Fix leak on failed audio gaps
Doug Nazar [Wed, 26 Jun 2019 07:39:54 +0000 (03:39 -0400)]
audiodecoder: Fix leak on failed audio gaps

If we fail to process the gap event we need to unref the event or
we end up with a leak.

4 years agoglupload: Keep track of cached EGLImage texture format
Philippe Normand [Sun, 23 Jun 2019 10:34:49 +0000 (11:34 +0100)]
glupload: Keep track of cached EGLImage texture format

This patch fixes the following critical warning:

CRITICAL **: 11:33:32.843: Unknown GL format 0x0 provided

It would happen during the setup of a second pipeline involving the DMABuf
uploader, typically with a v4l2src element. The warning was raised because the
uploader had a cached EGLImage already filled but the formats were not
synchronized accordingly.

4 years agoplaysink: Set ts-offset to text sink.
Song Bing [Mon, 17 Jun 2019 23:46:21 +0000 (16:46 -0700)]
playsink: Set ts-offset to text sink.

Find right text sink to set the ts-offset.

4 years agomeson.build: use join_paths() on prefix
Håvard Graff [Tue, 10 Oct 2017 13:45:14 +0000 (15:45 +0200)]
meson.build: use join_paths() on prefix

So that "/" are correct on Windows.

4 years agocompositor: Copy frames as-is when possible
Nirbheek Chauhan [Thu, 13 Jun 2019 21:02:50 +0000 (02:32 +0530)]
compositor: Copy frames as-is when possible

The blend functions for alpha formats need to do more work than just
doing a memcpy, so we can do a memcpy when we know that a blend is not
actually needed.

1080p AYUV ! compositor background=transparent ! fakesink - 56% faster

Specifically, when we don't draw the background and the first pad we
draw completely covers the output frame, we can just copy it as-is.
The rest of the pads (if any) will get composited on top normally.

4 years agocompositor: fix compiler warning due to c99-ism
Tim-Philipp Müller [Mon, 24 Jun 2019 09:44:29 +0000 (09:44 +0000)]
compositor: fix compiler warning due to c99-ism

4 years agocompositor: Sprinkle some const in prototypes
Nirbheek Chauhan [Thu, 13 Jun 2019 15:00:03 +0000 (20:30 +0530)]
compositor: Sprinkle some const in prototypes

These helper functions don't edit the rectangles passed in.

4 years agocompositor: Skip background if transparent and obscured
Nirbheek Chauhan [Sun, 26 May 2019 15:47:20 +0000 (17:47 +0200)]
compositor: Skip background if transparent and obscured

If the background is transparent and obscured by a pad that may or may
not have alpha, we can still skip drawing it entirely

AYUV 1080p ! compositor background=transparent ! fakesink - 75% faster

4 years agocompositor: Skip the background when not visible
Nirbheek Chauhan [Sun, 26 May 2019 15:30:12 +0000 (17:30 +0200)]
compositor: Skip the background when not visible

We don't need to waste time drawing the background when one of the
pads completely covers the output and there's no alpha on the pad or
in the video format. Speedups:

I420 1080p ! compositor ! fakesink - 72% faster
I420 1080p ! compositor background=black ! fakesink - 45% faster

4 years agocompositor: Don't log per-frame under GST_INFO
Nirbheek Chauhan [Sun, 26 May 2019 16:28:18 +0000 (18:28 +0200)]
compositor: Don't log per-frame under GST_INFO

4 years agocompositor: Factor-out rectangle-obscuring check
Nirbheek Chauhan [Sun, 26 May 2019 15:29:23 +0000 (17:29 +0200)]
compositor: Factor-out rectangle-obscuring check

We're going to use this for checking if one of the pads obscures the
background.

4 years agocompositor: Add some comments, remove outdated ones
Nirbheek Chauhan [Sun, 26 May 2019 13:23:25 +0000 (15:23 +0200)]
compositor: Add some comments, remove outdated ones

4 years agocompositor: Remove unused function argument
Nirbheek Chauhan [Sun, 26 May 2019 13:23:06 +0000 (15:23 +0200)]
compositor: Remove unused function argument

4 years agortspconnection: Start CSeq at 1
Eike Hein [Tue, 11 Jun 2019 19:45:09 +0000 (04:45 +0900)]
rtspconnection: Start CSeq at 1

RFC 7826 recommends (but does not require) starting at 0,
but at least one known server implementation fails to copy
request sequence numbers <1 into responses due to an
incorrect null check.

The server known to exhibit this behavior is the Parrot
Streaming Server, serving video from their UAV devices.
A fix has been submitted upstream as well:
https://github.com/Parrot-Developers/librtsp/pull/2

The Parrot developers are known to have tested with LibVLC.
In WireShark debugging, LibVLC appears to start with a CSeq
of 2, which is likely why this bug went unnoticed.

This reverts 487595a7d6e2d, which set this to 0 citing the
RFC. The switch to 0 was thus a recent one; it's therefore
possible server implementors relied on the previous
GStreamer client behavior in their tests as well.

Fixes #624.

4 years agoviv-fb: fix build break for GST_GL_API
Haihua Hu [Mon, 3 Jun 2019 07:51:02 +0000 (15:51 +0800)]
viv-fb: fix build break for GST_GL_API

Need include config.h in gstglwindow_viv_fb_egl.c

4 years agogl/tests: fix shader creation tests part 2
Matthew Waters [Fri, 7 Jun 2019 16:57:37 +0000 (02:57 +1000)]
gl/tests: fix shader creation tests part 2

Continuation of 4fd7a2c783e96e5ebec513f8fd178ba34b2a527f

We check the availability of the high precision floats in GLSL shaders
which involves an OpenGL call and thus is required to be executed on the
OpenGL thread.

The tests were not respecting that and could fail on more strict
drivers.

Tests update for 675415bf2ea9ddc75ea5e5b6eae9ae942c19d6dc
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/590

4 years agogl/tests: fix shader creation tests
Matthew Waters [Fri, 7 Jun 2019 10:51:39 +0000 (20:51 +1000)]
gl/tests: fix shader creation tests

We check the availability of the high precision floats in GLSL shaders
which involves an OpenGL call and thus is required to be executed on the
OpenGL thread.

The tests were not respecting that and could fail on more strict
drivers.

Tests update for 675415bf2ea9ddc75ea5e5b6eae9ae942c19d6dc
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/590

4 years agowayland: set the event queue also for the xdg_wm_base object
Fernando Herrrera [Wed, 5 Jun 2019 12:25:34 +0000 (13:25 +0100)]
wayland: set the event queue also for the xdg_wm_base object

4 years agoAdded GI annotation for gstvideoaffinetransformationmeta apply_matrix
Daniel Klamt [Tue, 28 May 2019 15:04:51 +0000 (17:04 +0200)]
Added GI annotation for gstvideoaffinetransformationmeta apply_matrix

The problem is that Gobject Introspections does not understand the const
gfloat matrix[16] as an matrix but as an array of gfloasts but as just
one gfloat.

To fix this i added the annotation to the parameter
descriptions.

4 years agocompositor: Replace shift and conv opcodes by convh in BGRA SOURCE operator
Sebastian Dröge [Fri, 24 May 2019 13:54:50 +0000 (15:54 +0200)]
compositor: Replace shift and conv opcodes by convh in BGRA SOURCE operator

Potentially speeds up processing a bit.

4 years agocompositor: Remove unneeded left shift for ARGB/AYUV SOURCE operator
Sebastian Dröge [Fri, 24 May 2019 13:53:55 +0000 (15:53 +0200)]
compositor: Remove unneeded left shift for ARGB/AYUV SOURCE operator

The alpha value is already in the lower 8 bits from the beginning in
this case.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/610

4 years agoalsasrc: Don't use driver timestamp if it's zero
Georg Lippitsch [Mon, 26 Feb 2018 13:25:40 +0000 (14:25 +0100)]
alsasrc: Don't use driver timestamp if it's zero

Some alsa interfaces don't provide timestamps and thus always set the timestamp to zero.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/453

4 years agogloverlaycompositor: fix crash if buffer doesn't have video meta
Guillaume Desmottes [Tue, 14 May 2019 11:34:13 +0000 (13:34 +0200)]
gloverlaycompositor: fix crash if buffer doesn't have video meta

Fix #501

4 years agomeson: Don't try to find gio-unix on Windows
Seungha Yang [Sun, 12 May 2019 09:33:32 +0000 (18:33 +0900)]
meson: Don't try to find gio-unix on Windows

4 years agoglshader: fix default external-oes shaders
Matthew Waters [Tue, 7 May 2019 08:36:01 +0000 (18:36 +1000)]
glshader: fix default external-oes shaders

In glsl, #extension directives need to before other non-preprocesser
directives.  We were placing the precision qualifier before that.  Fix
by moving the #extension to the first line in the shader.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/601

4 years agosubparse: fix pushing WebVTT cue when last is not an empty line
Antonio Ospite [Mon, 6 May 2019 10:48:49 +0000 (12:48 +0200)]
subparse: fix pushing WebVTT cue when last is not an empty line

If the last WebVTT cue does not have an empty line after it, or if it
does not end with a newline at all, it does not get pushed out and it
won't be displayed.

gst_sub_parse_sink_event() already handles the issue for other subtitle
formats, enable handling it for GST_SUB_PARSE_FORMAT_VTT too.

While at it also add a test for this case.

4 years agotest: add subparse test for SRT subtitles with no newline at the end
Antonio Ospite [Mon, 6 May 2019 11:23:22 +0000 (13:23 +0200)]
test: add subparse test for SRT subtitles with no newline at the end

Add a test to verify that SRT subtitles work even if the last chunk does
not have an empty line after it.

4 years agoMissing "android" choice in gl_winsys
Xavier Claessens [Fri, 3 May 2019 18:31:03 +0000 (14:31 -0400)]
Missing "android" choice in gl_winsys

4 years agovideo test: Keep BE test inline with LE test
A. Wilcox [Wed, 1 May 2019 16:25:31 +0000 (11:25 -0500)]
video test: Keep BE test inline with LE test

4 years agoid3tag: Correctly validate the year from v1 tags before passing to GstDateTime
Sebastian Dröge [Fri, 26 Apr 2019 06:44:07 +0000 (09:44 +0300)]
id3tag: Correctly validate the year from v1 tags before passing to GstDateTime

By using strtoul(), invalid values will get mapped to MAXULONG and we
would have to check errno. They won't get mapped to 0.

To solve this, use the signed g_ascii_strtoll(). This will map errors to
0 or G_MAXINT64 or G_MININT64, and the valid range for GstDateTime is >
0 and <= 9999 so we can directly check for this here.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/384

4 years agogl/wayland: Don't prefix wl_shell struct field
Niels De Graef [Wed, 24 Apr 2019 08:41:24 +0000 (10:41 +0200)]
gl/wayland: Don't prefix wl_shell struct field

As part of commit 808e7127, we prefixed the `GstWlWindow`'s `shell`
field with wl_, to differentiate it from the other types of shells a
Wayland compositor might support. However, this is apparently a struct
that we expose to our users, so changing it means we have an API break.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/592

4 years agoeglimage: Add compatibility define for DRM_FORMAT_NV24
Sebastian Dröge [Tue, 23 Apr 2019 14:10:47 +0000 (17:10 +0300)]
eglimage: Add compatibility define for DRM_FORMAT_NV24

4 years agogl: Add various missing Since: 1.16 markers
Sebastian Dröge [Tue, 23 Apr 2019 11:31:45 +0000 (14:31 +0300)]
gl: Add various missing Since: 1.16 markers

And add some missing function documentation.

4 years agovideoaggregator: Add Since: 1.16 markers to all public structs
Sebastian Dröge [Tue, 23 Apr 2019 11:42:03 +0000 (14:42 +0300)]
videoaggregator: Add Since: 1.16 markers to all public structs

4 years agovideo-anc: Add Since: 1.16 marker
Sebastian Dröge [Tue, 23 Apr 2019 11:42:17 +0000 (14:42 +0300)]
video-anc: Add Since: 1.16 marker

4 years agoaudioaggregator: Add Since: 1.14 markers to all public structs
Sebastian Dröge [Tue, 23 Apr 2019 11:52:28 +0000 (14:52 +0300)]
audioaggregator: Add Since: 1.14 markers to all public structs

4 years agolibs: Fix various Since markers
Sebastian Dröge [Tue, 23 Apr 2019 12:05:43 +0000 (15:05 +0300)]
libs: Fix various Since markers

4 years agovideo-anc: Handle SD formats correctly
Sebastian Dröge [Mon, 22 Apr 2019 14:06:09 +0000 (17:06 +0300)]
video-anc: Handle SD formats correctly

VANC is stored linearly in SD formats instead of separating the Y and YV
components from each other and having first all Y and then all UV
values.

4 years agovideo-anc: Add DID16 value for SMPTE 2016-3 AFD/Bar data
Sebastian Dröge [Mon, 22 Apr 2019 15:33:20 +0000 (18:33 +0300)]
video-anc: Add DID16 value for SMPTE 2016-3 AFD/Bar data

5 years agoci: use template from 1.16 branch
Tim-Philipp Müller [Thu, 2 May 2019 11:35:19 +0000 (12:35 +0100)]
ci: use template from 1.16 branch

5 years agoRelease 1.16.0
Tim-Philipp Müller [Thu, 18 Apr 2019 23:19:55 +0000 (00:19 +0100)]
Release 1.16.0

5 years agoUpdate docs
Tim-Philipp Müller [Thu, 18 Apr 2019 23:19:55 +0000 (00:19 +0100)]
Update docs

5 years agoUpdate translations
Tim-Philipp Müller [Thu, 18 Apr 2019 23:19:53 +0000 (00:19 +0100)]
Update translations

5 years agoglupload: prevent segfault when updating caps
Michael Tretter [Wed, 23 Jan 2019 11:50:40 +0000 (12:50 +0100)]
glupload: prevent segfault when updating caps

When the glupload element renegotiates the caps, set_caps will reset the
method_impl to NULL, but the method will be kept. transform_caps tries
to use the method_impl to transform the caps, because a method is set,
but will segfault.

5 years agoRelease 1.15.90
Tim-Philipp Müller [Wed, 10 Apr 2019 23:23:25 +0000 (00:23 +0100)]
Release 1.15.90

5 years agoUpdate docs
Tim-Philipp Müller [Wed, 10 Apr 2019 23:23:24 +0000 (00:23 +0100)]
Update docs

5 years agovideo-anc: revert "add support for Bar and AFD meta-data"
Aaron Boxer [Wed, 10 Apr 2019 20:09:19 +0000 (16:09 -0400)]
video-anc: revert "add support for Bar and AFD meta-data"

This reverts commit 8759c368515464193b0b1e119667f64c214d2c49.
GstMeta may not be the appropriate vehicle for this information

5 years agosdp: mikey: Add missing Since marker
Nicolas Dufresne [Wed, 10 Apr 2019 19:08:02 +0000 (15:08 -0400)]
sdp: mikey: Add missing Since marker

Two new enums value where added without a since mark, adding it.

  @GST_MIKEY_ENC_AES_GCM_128
  @GST_MIKEY_SP_SRTP_AEAD_AUTH_TAG_LEN

5 years agortspconnection: CSeq initial value set to 0
Kristofer Bjorkstrom [Wed, 10 Apr 2019 06:45:53 +0000 (08:45 +0200)]
rtspconnection: CSeq initial value set to 0

RFC 7826: "it is RECOMMENDED to start at 0.

5 years agortspconnection: CSeq validation
Kristofer Bjorkstrom [Tue, 2 Apr 2019 08:01:47 +0000 (10:01 +0200)]
rtspconnection: CSeq validation

Make rtspconnection a little more strict to RFC2326.
Make sure that CSeq is in every RTSP message and that CSeq is valid.

Also break the build_next loop if any parsing fails, By acting on
the builder->status code.

5 years agomikey: Add support for GCM (RFC 7714)
Ulf Olsson [Wed, 3 Apr 2019 06:51:16 +0000 (08:51 +0200)]
mikey: Add support for GCM (RFC 7714)

The MIKEY details can be found in RFC 7714 section "14.3. MIKEY"

5 years agoencoding-target: Lower down some debugging
Thibault Saunier [Tue, 26 Mar 2019 13:12:55 +0000 (10:12 -0300)]
encoding-target: Lower down some debugging

We do try to load target with 'random' string internally to load EncodingProfiles

5 years agodecodebin: Protect ->source with the object lock
Thibault Saunier [Mon, 25 Mar 2019 22:11:54 +0000 (19:11 -0300)]
decodebin: Protect ->source with the object lock

As expected by the property getter.

Basically there are cases where we can be getting the source from
any thread and in another thread bring back the element from PAUSED
to READY, which leads to a critical warning (or worse).

The only place where we use `->source` outside the property getter is
the change_state function so the current way of setting/reading it
should be safe.

5 years agovideo-info: explain in logs why colorimetry are rejected
Guillaume Desmottes [Mon, 25 Mar 2019 12:49:39 +0000 (13:49 +0100)]
video-info: explain in logs why colorimetry are rejected

It wasn't clear from the logs why some colorimetry format were rejected.

5 years agogstvideometa: fix annotation
Mathieu Duponchelle [Mon, 8 Apr 2019 19:52:52 +0000 (21:52 +0200)]
gstvideometa: fix annotation

5 years agourisourcebin: don't set watermarks when download
Víctor Manuel Jáquez Leal [Wed, 3 Apr 2019 16:52:50 +0000 (18:52 +0200)]
urisourcebin: don't set watermarks when download

downloadbuffer element doesn't handle the properties low-watermark and
high-watermark, those are handled by queue2.

Currently hi and low watermarks are set regardless queue2 or
downloadbuffer are used. Thus, when the later is set, a warning is
raised.

This patch sets the watermark properties first, if no download.

5 years agovideo-anc: fix g-i complaints
Tim-Philipp Müller [Sun, 7 Apr 2019 21:08:37 +0000 (22:08 +0100)]
video-anc: fix g-i complaints

video-anc.h:100: Error: GstVideo: identifier not found on the first line:
 *  Active Format Description (AFD) support
   ^
video-anc.h:207: Error: GstVideo: identifier not found on the first line:
 *  Bar data support
   ^
video-anc.h:228: Warning: GstVideo: "@top_bar_flag" parameter unexpected at this location:
 * @top_bar_flag : flag indicating presence of top bar field
    ^

5 years agovideo-anc: add support for Bar and AFD meta-data
Aaron Boxer [Sun, 7 Apr 2019 17:29:15 +0000 (13:29 -0400)]
video-anc: add support for Bar and AFD meta-data

5 years agobasepayload: Expose onvif-no-rate-control property
Mathieu Duponchelle [Mon, 19 Nov 2018 22:42:14 +0000 (23:42 +0100)]
basepayload: Expose onvif-no-rate-control property

The ONVIF spec mandates that when Rate-Control=no, the RTP timestamps
match the original sampling times, as opposed to the intended playback
time.

5 years agortspdefs: Add Onvif Rate-Control header
Mathieu Duponchelle [Mon, 19 Nov 2018 22:40:14 +0000 (23:40 +0100)]
rtspdefs: Add Onvif Rate-Control header

5 years agortspdefs: Add Onvif Frames header
Mathieu Duponchelle [Mon, 12 Nov 2018 19:11:59 +0000 (20:11 +0100)]
rtspdefs: Add Onvif Frames header

5 years agoexamples/gl/sdl: only build on glx/wgl systems
Matthew Waters [Thu, 4 Apr 2019 12:15:50 +0000 (23:15 +1100)]
examples/gl/sdl: only build on glx/wgl systems

The code will not work anywhere else.

FIxes https://gitlab.freedesktop.org/gstreamer/gst-build/issues/22

5 years agovideo: add BGR10A2_LE pixel format
Haihao Xiang [Fri, 15 Mar 2019 05:06:53 +0000 (13:06 +0800)]
video: add BGR10A2_LE pixel format

This pixel format is a packed 4:4:4 RGB with alpha channel (B-G-R-A),
R/G/B channel has 10 bits and alpha channel is the MSB 2 bits.

5 years agogstvideometa: do not emit criticals when adding timecode metas
Mathieu Duponchelle [Wed, 3 Apr 2019 15:34:00 +0000 (17:34 +0200)]
gstvideometa: do not emit criticals when adding timecode metas

This is inconsistent with other add_meta methods such as
gst_buffer_add_video_meta , which will return NULL without
logging when gst_video_info_set_format fails.

It is up to the caller to check the return value of the
function, and log if appropriate.

5 years agodiscoverer: set 30 second for long-running tests
Aaron Boxer [Mon, 1 Apr 2019 16:06:02 +0000 (12:06 -0400)]
discoverer: set 30 second for long-running tests

5 years agodiscoverer: async_timeout_cb: don't clean up timeout_source
Aaron Boxer [Mon, 1 Apr 2019 15:10:21 +0000 (11:10 -0400)]
discoverer: async_timeout_cb: don't clean up timeout_source

discoverer_collect() already does this. So, the second
unref triggers an assert.

5 years agodiscoverer: fix a race bug in disco test
Aaron Boxer [Mon, 1 Apr 2019 13:53:19 +0000 (09:53 -0400)]
discoverer: fix a race bug in disco test

5 years agotests: rtpmeta: Avoid C99 declaration in 'for' loop
Jimmy Ohn [Mon, 1 Apr 2019 13:34:28 +0000 (22:34 +0900)]
tests: rtpmeta: Avoid C99 declaration in 'for' loop

Avoid C99 declaration in for loop

5 years agotools: gst-play: Update man page
Seungha Yang [Sun, 31 Mar 2019 08:39:07 +0000 (17:39 +0900)]
tools: gst-play: Update man page

Add some missing option descriptions including the newly introduced one by
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/185

5 years agogst-play: Add wait-on-eos option for image file playback
Seungha Yang [Fri, 29 Mar 2019 04:17:55 +0000 (13:17 +0900)]
gst-play: Add wait-on-eos option for image file playback

Since gst-play is stopping playback on EOS message, image file playback
is almost impossible until now. Not only for image file, this option
seems to helpful if an user wants to see the last frame.

5 years agogluploadelement: Fix caps leak
Seungha Yang [Fri, 29 Mar 2019 03:42:45 +0000 (12:42 +0900)]
gluploadelement: Fix caps leak

gst_event_new_caps() does not take ownership of the caps

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/885

5 years agovideo: fix unpack_Y410
Haihao Xiang [Mon, 25 Mar 2019 07:05:48 +0000 (15:05 +0800)]
video: fix unpack_Y410

It should handle data starting from x

5 years agovideo: fix unpack_Y210
Haihao Xiang [Mon, 25 Mar 2019 06:07:08 +0000 (14:07 +0800)]
video: fix unpack_Y210

It should handle data starting from x and width may be an odd

5 years agovideo-info: check if alternate caps has the feature as well
Guillaume Desmottes [Tue, 11 Dec 2018 10:37:36 +0000 (11:37 +0100)]
video-info: check if alternate caps has the feature as well

It's invalid to have a 'interlace-mode=alternate' without the Interlaced caps
feature as well.
Modify gst_video_info_from_caps() to reject such case so we can easily
spot them in bugged elements.

5 years agovideo-info: handle 'field-order' in alternate mode
Guillaume Desmottes [Thu, 22 Nov 2018 11:13:06 +0000 (12:13 +0100)]
video-info: handle 'field-order' in alternate mode

The alternate interlace mode may also use the 'field-order' field in caps.

5 years agodecodebin2: fix pad leak and problem with GWeakRef code
Tim-Philipp Müller [Sun, 24 Mar 2019 20:45:03 +0000 (20:45 +0000)]
decodebin2: fix pad leak and problem with GWeakRef code

Follow-up to !160 and commit 6a99ad2c.

Firstly, don't leak the sinkpad. g_weak_ref_get() returns
a strong reference (unless it returns NULL), so that must
be unrefed, as detected by the playbin-complex and
discoverer unit tests.

Next, if we do that we get invalid memory access when the
final pad ref is dropped a few lines below after the
request pad is released. The reason for this is that
GWeakRefs are not movable once they're in use, because
their address will be stored inside the object. In this
case the GWeakRef was embedded inside the GstDemuxerPad
struct which in turn was embedded inside the GArray data
section, and when the GArray gets resized, the structs
move. Just KISS and use a list with individual allocations
for each DemuxerPad instead.

5 years agotests: video: speed up test_video_color_convert
Tim-Philipp Müller [Sat, 23 Mar 2019 12:27:24 +0000 (12:27 +0000)]
tests: video: speed up test_video_color_convert

This test takes a long time. It tests ca. 8900 conversion
combinations, and then it also runs each conversion for
at least 100ms in order to come up with some kind of benchmark.

Remove the benchmarking from the unit test, we have a separate
benchmarking tool for that now.

Also split the conversions into groups and run those as
separate checks, which allows better parallelisation at
the runner level (normal runs and when using valgrind).

5 years agotests: video: reduce debug log spam
Tim-Philipp Müller [Sat, 23 Mar 2019 12:25:37 +0000 (12:25 +0000)]
tests: video: reduce debug log spam

This shouldn't be logged at info level.

5 years agotests: icles: add video conversion benchmark
Tim-Philipp Müller [Sat, 23 Mar 2019 12:24:04 +0000 (12:24 +0000)]
tests: icles: add video conversion benchmark

Split out the benchmarking code from the unit test
and make it a bit more useful.

5 years agogl: suppress some g-i warnings
Tim-Philipp Müller [Sat, 23 Mar 2019 23:46:28 +0000 (23:46 +0000)]
gl: suppress some g-i warnings

gst_gl_memory_setup_buffer() was marked as introspectable=0
anyway, so might just as well mark it as '(skip)' and suppress
the warning. Reason is the (element-type gpointer) on wrapped_data.

gstglmemory.c:1426: Warning: GstGL: gst_gl_memory_setup_buffer: argument wrapped_data: Missing (element-type) annotation
gstglmemory.c:1426: Warning: GstGL: gst_gl_memory_setup_buffer: argument wrapped_data: Missing (element-type) annotation

egl/gstegl.h:40: Warning: GstGL: symbol='EGL_EGLEXT_PROTOTYPES': Unknown namespace for symbol 'EGL_EGLEXT_PROTOTYPES'

5 years agomeson: gl: don't pass generated xdg shell header and source file to g-i
Tim-Philipp Müller [Sat, 23 Mar 2019 21:51:37 +0000 (21:51 +0000)]
meson: gl: don't pass generated xdg shell header and source file to g-i

They're private, g-i doesn't need to know about them.
Avoids lots of spammy g-i warnings.

5 years agoaudiometa: fix g-i warning
Tim-Philipp Müller [Sat, 23 Mar 2019 20:08:56 +0000 (20:08 +0000)]
audiometa: fix g-i warning

gstaudiometa.c:382: Warning: GstAudio: gst_buffer_add_audio_meta: return value: Invalid non-constant return of bare structure or union; register as boxed type or (skip)

5 years agog-i: pass --quiet to g-ir-scanner
Tim-Philipp Müller [Sat, 23 Mar 2019 18:47:57 +0000 (18:47 +0000)]
g-i: pass --quiet to g-ir-scanner

This suppresses the annoying 'g-ir-scanner: link: cc ..' output
that we get even if everything works just fine.

We still get g-ir-scanner warnings and compiler warnings if
we pass this option.

5 years agortspconnection: Remove unneeded bytes_written >= 0 conditions
Sebastian Dröge [Fri, 22 Mar 2019 08:28:16 +0000 (10:28 +0200)]
rtspconnection: Remove unneeded bytes_written >= 0 conditions

It's unsigned and always >= 0.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/569

5 years agovideo: update orc generated files for new functions
Haihao Xiang [Thu, 21 Mar 2019 04:35:06 +0000 (12:35 +0800)]
video: update orc generated files for new functions

5 years agoglimagesink: add support for VUYA format
Haihao Xiang [Wed, 20 Mar 2019 07:52:53 +0000 (15:52 +0800)]
glimagesink: add support for VUYA format

5 years agovideo: add VUYA pixel format
Haihao Xiang [Fri, 15 Mar 2019 05:13:52 +0000 (13:13 +0800)]
video: add VUYA pixel format

AYUV in gstreamer was defined in A-Y-U-V order in memory[1], however
Microsoft defined another AYUV format in V-U-Y-A order in memory[2]. Add
VUYA format for the latter in order to distinguish the two formats

[1] https://gstreamer.freedesktop.org/documentation/design/mediatype-video-raw.html#formats
[2] https://docs.microsoft.com/en-us/windows/desktop/medfound/recommended-8-bit-yuv-formats-for-video-rendering#ayuv)

5 years agortcpbuffer: test for len instead of type
Josep Torra [Thu, 21 Mar 2019 16:50:34 +0000 (17:50 +0100)]
rtcpbuffer: test for len instead of type

The function rtcp_packet_min_length() returns a length for each known type
and -1 for unknown types. This change fixes the test accordingly and silences
the following warning.

gstrtcpbuffer.c:567:12: error: comparison of constant -1 with expression of type 'GstRTCPType' is always false
      [-Werror,-Wtautological-constant-out-of-range-compare]
  if (type == -1)