platform/upstream/gstreamer.git
5 years agortcpbuffer: fix function guards with side effects
Tim-Philipp Müller [Sun, 30 Dec 2018 17:26:04 +0000 (17:26 +0000)]
rtcpbuffer: fix function guards with side effects

Code in g_return_*() must not have side effects, as it
might be compiled out if -DG_DISABLE_CHECKS is used, in
which case we would read garbage off the stack.

5 years agogl: build gl mixer elements, moved from -base
Tim-Philipp Müller [Thu, 27 Dec 2018 16:35:00 +0000 (17:35 +0100)]
gl: build gl mixer elements, moved from -base

5 years agocompositor: add to build after move from -bad
Tim-Philipp Müller [Thu, 27 Dec 2018 12:34:29 +0000 (13:34 +0100)]
compositor: add to build after move from -bad

This replaces videomixer.

Fixes #138

5 years agovideo: build GstVideoAggregator which was moved from -bad
Tim-Philipp Müller [Wed, 26 Dec 2018 17:02:42 +0000 (18:02 +0100)]
video: build GstVideoAggregator which was moved from -bad

5 years agoMove GstVideoAggregator, compositor and OpenGL mixers from -bad
Tim-Philipp Müller [Fri, 28 Dec 2018 11:15:39 +0000 (12:15 +0100)]
Move GstVideoAggregator, compositor and OpenGL mixers from -bad

Merge branch 'videoaggregator-compositor-glmixers-move'

Fixes #137 and #138.

5 years agotypefindfunctions: Extend MCC typefinder to also cover version 2.0
Sebastian Dröge [Thu, 27 Dec 2018 09:41:54 +0000 (11:41 +0200)]
typefindfunctions: Extend MCC typefinder to also cover version 2.0

Both versions are basically the same, but version 2.0 also allows
60000/1001 as framerate and allows to specify the field and line number
for each payload.

Put the major version into the caps so that elements can limit via caps
negotiation which versions they can support.

5 years agoexamples/gl/gtk: Fix build on macOS
Philippe Normand [Thu, 27 Dec 2018 13:55:28 +0000 (14:55 +0100)]
examples/gl/gtk: Fix build on macOS

The gdkquartz.h include pulls into Apple Obj-C frameworks so the compiler needs
to handle the gstgtkhelper library as such.

Fixes #518

5 years agoexamples/gl: Cocoa example Meson build definitions
Philippe Normand [Sun, 23 Dec 2018 19:27:27 +0000 (20:27 +0100)]
examples/gl: Cocoa example Meson build definitions

5 years agotypefind: Add SCC and MCC files support
Jordan Petridis [Wed, 19 Dec 2018 13:18:41 +0000 (15:18 +0200)]
typefind: Add SCC and MCC files support

5 years agovideotimecode: Set the DROP_FRAME flag when parsing timecodes with a ,/; from a string
Sebastian Dröge [Mon, 17 Dec 2018 17:41:26 +0000 (19:41 +0200)]
videotimecode: Set the DROP_FRAME flag when parsing timecodes with a ,/; from a string

And also add a test for parsing a few valid and invalid timecodes

5 years agovideotimecode: Allow serializing invalid timecodes
Sebastian Dröge [Fri, 14 Dec 2018 19:24:27 +0000 (21:24 +0200)]
videotimecode: Allow serializing invalid timecodes

5 years agovideotimecode: Allow deserializing invalid timecodes
Sebastian Dröge [Fri, 14 Dec 2018 19:18:34 +0000 (21:18 +0200)]
videotimecode: Allow deserializing invalid timecodes

Timecode strings don't contain a framerate and that has to be provided
first separately before it can be converted into a valid timecode.

5 years agovideotimecode: Don't consider 0/1 a valid framerate for timecodes
Sebastian Dröge [Fri, 14 Dec 2018 19:04:36 +0000 (21:04 +0200)]
videotimecode: Don't consider 0/1 a valid framerate for timecodes

It breaks all the calculations. While it can make sense during
initialization, there's very little API that can be called with such
timecodes without ending up with wrong results.

5 years agovideotimecode: Remove various unneeded checks
Sebastian Dröge [Fri, 14 Dec 2018 19:00:03 +0000 (21:00 +0200)]
videotimecode: Remove various unneeded checks

5 years agovideotimecode: Fix handling of timecodes without daily jam in gst_video_time_code_to_...
Sebastian Dröge [Fri, 14 Dec 2018 18:59:11 +0000 (20:59 +0200)]
videotimecode: Fix handling of timecodes without daily jam in gst_video_time_code_to_date_time()

So that it behaves according to documentation.

5 years agovideotimecode: Various documentation and annotation fixes
Sebastian Dröge [Fri, 14 Dec 2018 18:58:40 +0000 (20:58 +0200)]
videotimecode: Various documentation and annotation fixes

5 years agovideotimecode: Add some more guards for function parameters
Sebastian Dröge [Fri, 14 Dec 2018 16:10:23 +0000 (18:10 +0200)]
videotimecode: Add some more guards for function parameters

5 years agovideotimecode: Add API for initializing from a GDateTime with validation
Sebastian Dröge [Fri, 14 Dec 2018 15:56:45 +0000 (17:56 +0200)]
videotimecode: Add API for initializing from a GDateTime with validation

The old API would only assert or return an invalid timecode, the new API
returns a boolean or NULL. We can't change the existing API
unfortunately but can at least deprecate it.

5 years agovideotimecode: We only support 30000/1001 and 60000/1001 as drop-frame framerates
Sebastian Dröge [Fri, 14 Dec 2018 12:13:18 +0000 (14:13 +0200)]
videotimecode: We only support 30000/1001 and 60000/1001 as drop-frame framerates

24000/1001 is *not* a drop-frame framerate.

5 years agovideotimecode: Fix division by zero in timecode validation function
Sebastian Dröge [Fri, 14 Dec 2018 11:56:28 +0000 (13:56 +0200)]
videotimecode: Fix division by zero in timecode validation function

And add some comments about what exactly we're testing in the
non-trivial cases.

5 years agovideo: Add deprecation macros
Sebastian Dröge [Fri, 14 Dec 2018 11:43:22 +0000 (13:43 +0200)]
video: Add deprecation macros

5 years agotests: Disable some tests for Windows
Seungha Yang [Fri, 7 Dec 2018 12:02:45 +0000 (21:02 +0900)]
tests: Disable some tests for Windows

Disable some tests which are unstable on windows or need fix

5 years agotests: Use OS-specific seperator for whitelist
Seungha Yang [Fri, 7 Dec 2018 11:35:37 +0000 (20:35 +0900)]
tests: Use OS-specific seperator for whitelist

... instead of hardcoded ':', since G_SEARCHPATH_SEPARATOR_S
varies depending on OS (e.g., ':' for *nix and ';' for Windows).
Note that, when the seperator is not specified explicitly, Meson
will use ';' for Windows and ':' for *nix respectively.

5 years agomeson: Use join_paths() instead of '/'
Seungha Yang [Fri, 7 Dec 2018 11:30:23 +0000 (20:30 +0900)]
meson: Use join_paths() instead of '/'

Let Meson decide correct seperator such as '\' for Windows and
'/' for others

5 years agotests: Enable testing on Windows
Seungha Yang [Fri, 7 Dec 2018 11:10:10 +0000 (20:10 +0900)]
tests: Enable testing on Windows

5 years agoaudio-converter: add API to determine passthrough mode
Mathieu Duponchelle [Mon, 17 Dec 2018 12:33:56 +0000 (13:33 +0100)]
audio-converter: add API to determine passthrough mode

audioconvert's passthrough status can no longer be determined
strictly from input / output caps equality, as a mix-matrix can
now be specified.

We now call gst_base_transform_set_passthrough dynamically, based
on the return from the new gst_audio_converter_is_passthrough()
API, which takes the mix matrix into account.

5 years agoaudioconvert: disable passthrough_on_same_caps
Mathieu Duponchelle [Sun, 16 Dec 2018 20:19:18 +0000 (21:19 +0100)]
audioconvert: disable passthrough_on_same_caps

Now that audioconvert exposes a mix-matrix property, input and
output caps may be equal, but the mix-matrix still needs to be
applied.

Fixes #521

5 years agovideo-converter: Remove unused variable/calculation
Edward Hervey [Mon, 17 Dec 2018 08:21:57 +0000 (09:21 +0100)]
video-converter: Remove unused variable/calculation

Since the refactoring in cdd86d025a7c2e1c00e7a86731168793e6104276
calculating the stride was no longer needed in setup_scale.

5 years agovideodecoder: Remove dead assignment
Edward Hervey [Mon, 17 Dec 2018 08:10:36 +0000 (09:10 +0100)]
videodecoder: Remove dead assignment

structure is never used afterwards

5 years agosdpmessage: Remove dead assignment
Edward Hervey [Mon, 17 Dec 2018 08:07:26 +0000 (09:07 +0100)]
sdpmessage: Remove dead assignment

p is overridden before being used (as the for() loop iterator)

5 years agosdpmessage: Remove dead assignment
Edward Hervey [Mon, 17 Dec 2018 08:03:36 +0000 (09:03 +0100)]
sdpmessage: Remove dead assignment

The presence of `key-mgmt` attribute will set the mikey appropriately.
We therefore don't need to check the return value (which will
be overwritten afterwards).

5 years agortspconnection: Properly exit infinite loop
Edward Hervey [Mon, 17 Dec 2018 07:58:21 +0000 (08:58 +0100)]
rtspconnection: Properly exit infinite loop

In the unlikeliness the builder state is invalid, exit the
top-level while(TRUE) loop.

5 years agoaudiobasesink: Remove dead assignment
Edward Hervey [Mon, 17 Dec 2018 07:50:44 +0000 (08:50 +0100)]
audiobasesink: Remove dead assignment

out_samples is set and used in the 'no_align' block.
Dead assignment since 3e312e6e162638d8e07f0edb3859980dabb089da

5 years agocodec-utils: Don't leak bytewriter data
Edward Hervey [Sun, 16 Dec 2018 10:14:47 +0000 (11:14 +0100)]
codec-utils: Don't leak bytewriter data

In error cases, don't forget to reset it.

5 years agortp: fix g-i warnings
Tim-Philipp Müller [Sun, 16 Dec 2018 23:15:57 +0000 (23:15 +0000)]
rtp: fix g-i warnings

Use same variable name in function declaration as in function
definition and gtk-doc/g-i blurb.

5 years agovideo-anc: Add API for converting GstVideoCaptionType from/to GstCaps
Sebastian Dröge [Tue, 11 Dec 2018 12:10:36 +0000 (14:10 +0200)]
video-anc: Add API for converting GstVideoCaptionType from/to GstCaps

5 years agovideo-anc: Replace GST_VIDEO_CAPTION_TYPE_CEA608_IN_CEA708_RAW with CEA608_S334_1A
Sebastian Dröge [Mon, 10 Dec 2018 13:55:49 +0000 (15:55 +0200)]
video-anc: Replace GST_VIDEO_CAPTION_TYPE_CEA608_IN_CEA708_RAW with CEA608_S334_1A

CEA608_IN_CEA708_RAW is the same format as CEA708_RAW. It's only
difference is that it must contain only CEA608 and a format like this
does not exist in practice. In practice every element that handles raw
cc_data triplets must check each triplet for their actual content and
handle them accordingly.

For CC-only streams a parser could signal the existence of CEA608 and/or
CEA708 inside the caps but for metas this can only potentially be
signalled via the ALLOCATION query for negotiation purposes.

A separate format for this is not very useful and instead it should be a
format qualifier.

CEA608_S334_1A is the format defined by SMPTE S334-1 Annex A and which
is used for transferring CEA608 over SDI instead of CEA708 CDP packets.

5 years agogl/wayland: destroy wl_shell instance at finalize
Niels De Graef [Fri, 14 Dec 2018 13:07:47 +0000 (14:07 +0100)]
gl/wayland: destroy wl_shell instance at finalize

5 years agotests: examples: gl: gtk: Disabled on MacOS X
Justin Kim [Fri, 14 Dec 2018 03:04:43 +0000 (12:04 +0900)]
tests: examples: gl: gtk: Disabled on MacOS X

It fails to build on MacOS X. This example should be disabled
until fixed.

Issue: #518

5 years agoexamples: gl: generic: recordgraphic: Use gst/gl/gstglfuncs.h
Justin Kim [Fri, 14 Dec 2018 03:03:07 +0000 (12:03 +0900)]
examples: gl: generic: recordgraphic: Use gst/gl/gstglfuncs.h

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

5 years agogl/meson: Add OpenGL dependency by OSX way
Justin Kim [Fri, 14 Dec 2018 03:02:36 +0000 (12:02 +0900)]
gl/meson: Add OpenGL dependency by OSX way

Otherwise, it fails to link with the message below:

```
ld: can't map file, errno=22 file '...'
```
https://gitlab.freedesktop.org/gstreamer/gst-build/issues/13

5 years agortcpbuffer: Validate the length of RTCP packets
Olivier Crête [Thu, 13 Dec 2018 16:20:03 +0000 (11:20 -0500)]
rtcpbuffer: Validate the length of RTCP packets

5 years agortcpbuffer: add support XR packet parsing
Justin Kim [Wed, 1 Nov 2017 01:54:06 +0000 (10:54 +0900)]
rtcpbuffer: add support XR packet parsing

According to RFC3611, the extended report blocks in XR packet can
have variable length. To visit each block, the iterator should look
into block header. Once XR type is extracted, users can parse the
detailed information by given functions.

Loss/Duplicate RLE
The Loss RLE and the Duplicate RLE have same format so
they can share parsers. For unit test, randomly generated
pseudo packet is used.

Packet Receipt Times
The packet receipt times report block has a list of receipt
times which are in [begin_seq, end_seq).

Receiver Reference Time paser for XR packet
The receiver reference time has ntptime which is 64 bit type.

DLRR
The DLRR report block consists of sub-blocks which has ssrc, last RR,
and delay since last RR. The number of sub-blocks should be calculated
from block length.

Statistics Summary
The Statistics Summary report block provides fixed length
information.

VoIP Metrics
VoIP Metrics consists of several metrics even though they are in
a report block. Data retrieving functions are added per metrics.

https://bugzilla.gnome.org/show_bug.cgi?id=789822

5 years agoglupload: dmabuf: use out_info to create allocation params for non-direct dmabuf...
Philipp Zabel [Wed, 12 Dec 2018 14:48:09 +0000 (15:48 +0100)]
glupload: dmabuf: use out_info to create allocation params for non-direct dmabuf uploads as well

Non-direct dmabuf uploads, just as direct dmabuf uploads, create EGL
images and thus GL textures of the same width as the imported image.
The input dmabuf line stride is not relevant to the resulting texture
in both cases.

This fixes the case where non-direct uploads of input dmabufs with line
stride larger than the width will for example cause glcolorconvert to
sample only the left part (width * bytes per pixel / stride) of the
image, causing a horizontally stretched and cropped output image.

5 years agoglmemory: normalize the internal format we pass into glTex* functions
Matthew Waters [Wed, 12 Dec 2018 12:25:58 +0000 (23:25 +1100)]
glmemory: normalize the internal format we pass into glTex* functions

Passing unsized formats sometimes breaks on embedded platforms

Take 2 at 694e30f858ebddae8c39cf934ff1b21ba7aa08e7,
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/49

5 years agoRevert "glformat: return sized formats in from_video_info"
Matthew Waters [Wed, 12 Dec 2018 12:14:56 +0000 (23:14 +1100)]
Revert "glformat: return sized formats in from_video_info"

This broke videotestsrc ! video/x-raw,format=NV12 ! glimagesink on
the desktop

Reverts: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/49
This reverts commit 694e30f858ebddae8c39cf934ff1b21ba7aa08e7.

5 years agovideo-overlay-composition: Optimize premultiplication/unpremultiplication loops
Sebastian Dröge [Fri, 7 Dec 2018 17:13:59 +0000 (19:13 +0200)]
video-overlay-composition: Optimize premultiplication/unpremultiplication loops

Pull in video frame fields into local variables. Without this the
compiler must assume that they could've changed on every use and read
them from memory again.

This reduces the inner loop from 6 memory reads per pixels to 4, and the
number of writes stays at 3.

5 years agortspconnection: Replace Auth header instead of append
Per Forlin [Fri, 30 Nov 2018 12:37:26 +0000 (13:37 +0100)]
rtspconnection: Replace Auth header instead of append

gst_rtsp_connection_send() adds the Authorization header to the request.
If this function is being called multiple times with the same request
it will add one more Authorization header every time.

To fix to this issue do not append a new Authorization header on
top of an existing ones. Remove any existing Authorization headers first
and then add the new one.

Fixes gst-plugins-good#425

5 years agooggmux: Fix a maybe-uninitialized warning
Jan Alexander Steffens (heftig) [Wed, 5 Dec 2018 09:35:33 +0000 (10:35 +0100)]
oggmux: Fix a maybe-uninitialized warning

Arch Linux, GCC 8.2.1+20181127, CFLAGS='-Og -g3'

5 years agotypefind: Fix a maybe-uninitialized warning
Jan Alexander Steffens (heftig) [Wed, 5 Dec 2018 09:35:33 +0000 (10:35 +0100)]
typefind: Fix a maybe-uninitialized warning

Arch Linux, GCC 8.2.1+20181127, CFLAGS='-Og -g3'

5 years agoAutomatic update of common submodule
Thibault Saunier [Wed, 5 Dec 2018 20:24:06 +0000 (17:24 -0300)]
Automatic update of common submodule

From cd1dee0 to 59cb678

5 years agogldeinterlace: Indentation fix
Nicolas Dufresne [Wed, 5 Dec 2018 17:11:25 +0000 (12:11 -0500)]
gldeinterlace: Indentation fix

5 years agogl: window-gbm: Restore CRTC on close
Nicolas Dufresne [Sun, 2 Dec 2018 01:45:31 +0000 (20:45 -0500)]
gl: window-gbm: Restore CRTC on close

This simply try and restore the state of the CRTC when the window
is closed. This is a bit cosmetic, but it allow resuming fbcon
when we exit.

5 years agogl: window-gbm: Remove unused private class member
Nicolas Dufresne [Sun, 2 Dec 2018 01:41:10 +0000 (20:41 -0500)]
gl: window-gbm: Remove unused private class member

The display class member is not used, not set and rather
confusing.

5 years agogl: window-gbm: Remove unneeded extra function
Nicolas Dufresne [Sun, 2 Dec 2018 01:30:16 +0000 (20:30 -0500)]
gl: window-gbm: Remove unneeded extra function

The cleanup function was only called in _close() which was only
calling that function. This indirection didn't make much sense.

5 years agovideo: add Y410 pixel format.
Wangfei [Fri, 23 Nov 2018 06:40:27 +0000 (14:40 +0800)]
video: add Y410 pixel format.

This pixel format is packed format with 4:4:4 sample. And 10
available bits of Y/U/V and 2 available bits of alpha stored
in 4 Bytes.

Format defined in:
https://docs.microsoft.com/en-us/windows/desktop/medfound/10-bit-and-16-bit-yuv-video-formats

5 years agogl/gbm: Add GST_GL_GBM_DRM_CONNECTOR environment variable
Carlos Rafael Giani [Wed, 3 Oct 2018 22:27:42 +0000 (00:27 +0200)]
gl/gbm: Add GST_GL_GBM_DRM_CONNECTOR environment variable

If multiple DRM connectors are connected, currently the first one is
picked. Improve this by adding an environment variable that allows for
choosing a connector by name. The connector name has been made so they
are compatible with modetest/modeprint DRM utilities.

Related to #490

5 years agogl/gbm: Improve logging output
Carlos Rafael Giani [Wed, 3 Oct 2018 22:22:02 +0000 (00:22 +0200)]
gl/gbm: Improve logging output

* List all connectors, modes, and encoders, even after picking one
* Add missing DRM_MODE_CONNECTOR_DPI string for logging and improve
  existing strings
* Make sure the names matches modetest/modeprint from DRM utilities

Related to #490

5 years agovideo: convertframe: Shut down pipeline asynchronously via the thread pool
Sebastian Dröge [Fri, 30 Nov 2018 10:40:19 +0000 (12:40 +0200)]
video: convertframe: Shut down pipeline asynchronously via the thread pool

If we use the main loop it might happen that the caller (e.g. our unit
test) already shut down the loop once the result was received and in
that case the pipeline would never ever be shut down (and our unit test
would hang).

5 years agovideo: Split the success and error convert_frame_async() test into two tests
Sebastian Dröge [Fri, 30 Nov 2018 10:39:43 +0000 (12:39 +0200)]
video: Split the success and error convert_frame_async() test into two tests

To make it more obvious which of the two is actually failing.

5 years agoaudio-convert: Fix endianness conversion function init
Marouen Ghodhbane [Thu, 29 Nov 2018 11:55:28 +0000 (12:55 +0100)]
audio-convert: Fix endianness conversion function init

Endianness conversion should be based on the sample width instead of the
sample depth.

Fixes #510

5 years agoglformat: return sized formats in from_video_info
Matthew Waters [Fri, 30 Nov 2018 06:50:14 +0000 (17:50 +1100)]
glformat: return sized formats in from_video_info

Fixes green output on e.g. Android when converting between YUV->RGBA

5 years agoopengl: gldeinterlace: remove interlace-mode from srcpad's caps
Freyr666 [Fri, 23 Nov 2018 13:41:38 +0000 (16:41 +0300)]
opengl: gldeinterlace: remove interlace-mode from srcpad's caps

This fixes output caps format, so the output frames are not interlaced anymore

5 years agogltestsrc: Run context query only during decide_allocation
Philippe Normand [Wed, 28 Nov 2018 11:13:39 +0000 (11:13 +0000)]
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.

5 years agovideo: fix typo in GstVideoCaptionType docs
Tim-Philipp Müller [Thu, 29 Nov 2018 20:51:18 +0000 (20:51 +0000)]
video: fix typo in GstVideoCaptionType docs

5 years agogl/meson: Allow for the use of libGL as well as OpenGL
Matthew Waters [Wed, 28 Nov 2018 09:46:05 +0000 (20:46 +1100)]
gl/meson: Allow for the use of libGL as well as OpenGL

OpenGL.framework and libGL are two different providers of a GL
implementation that can be linked into an application together.

5 years agovideo-anc: G_GNUC_CHECK_VERSION was added in GLib 2.42
Sebastian Dröge [Mon, 26 Nov 2018 10:29:41 +0000 (11:29 +0100)]
video-anc: G_GNUC_CHECK_VERSION was added in GLib 2.42

Define our own version if compiling with older versions. We currently
only require GLib 2.40.

5 years agogst-gl: Remove duplicate declarations
Maciej Wolny [Mon, 19 Nov 2018 15:09:25 +0000 (15:09 +0000)]
gst-gl: Remove duplicate declarations

This causes 'redefinition of typedef ...' errors on GCC 4.5.3

5 years agoRun gst-indent through the files
Jordan Petridis [Wed, 28 Nov 2018 03:51:53 +0000 (05:51 +0200)]
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

5 years agoopengl: gbm: Adds missing unrefs for gl context and drm node release in finalizer
Freyr666 [Fri, 23 Nov 2018 13:30:30 +0000 (16:30 +0300)]
opengl: gbm: Adds missing unrefs for gl context and drm node release in finalizer

This adds a few missing gst_object_unref calls for the opengl context in
gstglwindow_gbm_egl.c, as well as the missing close call for the
drm node fd in gst_gl_display_gbm_finalize.

5 years agoconvertframe: Error out directly in the sync variant if the state change to PAUSED...
Sebastian Dröge [Fri, 23 Nov 2018 11:25:43 +0000 (13:25 +0200)]
convertframe: Error out directly in the sync variant if the state change to PAUSED failed

5 years agoconvertframe: Only go to PAUSED state for the async variant
Sebastian Dröge [Fri, 23 Nov 2018 11:22:44 +0000 (13:22 +0200)]
convertframe: Only go to PAUSED state for the async variant

We only care for the pre-roll sample.

5 years agoconvertframe: Error out directly if changing the pipeline state to PLAYING failed
Sebastian Dröge [Fri, 23 Nov 2018 11:21:23 +0000 (13:21 +0200)]
convertframe: Error out directly if changing the pipeline state to PLAYING failed

5 years agoconvertframe: Use refcounting for the context
Sebastian Dröge [Fri, 23 Nov 2018 11:16:43 +0000 (13:16 +0200)]
convertframe: Use refcounting for the context

While this creates a circular reference between the pipeline and the
context, this ensures that the context stays alive for as long as any
callbacks could be called on it. The circular reference is broken once
the conversion is finished (or error, or timeout), which will then cause
everything to be freed.

Previously it was possible that a callback could be called on the
context right after it was freed already.

Also use only a single context structure, the second structure does not
simplify anything and duplicates storage.

5 years agogl: libs: glib might not define G_HAVE_ISO_VARARGS
Víctor Manuel Jáquez Leal [Thu, 22 Nov 2018 10:10:53 +0000 (11:10 +0100)]
gl: libs: glib might not define G_HAVE_ISO_VARARGS

This will fix the compiler warning
"G_HAVE_ISO_VARARGS" is not defined, evaluates to 0 [-Wundef]

5 years agoCheck for zlib header
Xavier Claessens [Wed, 21 Nov 2018 20:08:42 +0000 (15:08 -0500)]
Check for zlib header

5 years agoDisable gl examples when we don't have OpenGL
Xavier Claessens [Wed, 21 Nov 2018 21:12:20 +0000 (16:12 -0500)]
Disable gl examples when we don't have OpenGL

5 years agoFix zlib detection when there is no pkg-config file
Xavier Claessens [Mon, 19 Nov 2018 21:31:20 +0000 (16:31 -0500)]
Fix zlib detection when there is no pkg-config file

5 years agoaudiodecoder: add API for setting caps on the source pad
Tomasz Andrzejak [Tue, 13 Nov 2018 16:40:23 +0000 (17:40 +0100)]
audiodecoder: add API for setting caps on the source pad

This patch adds API in the audio decoder base class for setting the arbitrary
caps on the source pad.  Previously only caps converted from audio info were
possible.  This is particularly useful when subclass wants to set caps features
for audio decoder producing metadata.

5 years agogl: Fix subclassing of GstGLContextEGL
Xavier Claessens [Wed, 17 Oct 2018 19:58:40 +0000 (15:58 -0400)]
gl: Fix subclassing of GstGLContextEGL

5 years agovideo-format: Move Y210 format declaration to avoid ABI break
Philippe Normand [Thu, 15 Nov 2018 09:28:11 +0000 (11:28 +0200)]
video-format: Move Y210 format declaration to avoid ABI break

The Y210 format was added in the middle of the formats enum and list,
introducing an ABI break.

This issue was detected thanks to the gstreamer-rs test harness.

5 years agortpbasepayload: Update current seqnum for buffer lists
Linus Svensson [Tue, 16 Oct 2018 10:31:57 +0000 (12:31 +0200)]
rtpbasepayload: Update current seqnum for buffer lists

The current sequence number will be the one from the first RTP buffer
when a buffer list is pushed, but should be the last one.

Fixes #495

5 years agomeson: Cleanup old FIXMEs that relied on meson bugfixes
Nirbheek Chauhan [Sun, 28 Oct 2018 13:47:04 +0000 (13:47 +0000)]
meson: Cleanup old FIXMEs that relied on meson bugfixes

5 years agovideo-anc: Add test for VBI encoder
Sebastian Dröge [Wed, 7 Nov 2018 14:45:21 +0000 (16:45 +0200)]
video-anc: Add test for VBI encoder

5 years agovideo-anc: Implement a VBI encoder
Sebastian Dröge [Wed, 7 Nov 2018 13:12:13 +0000 (15:12 +0200)]
video-anc: Implement a VBI encoder

This allows writing out data from caption meta and similar to VBI

5 years agovideo-anc: Add comment about our assumption of the ADF user data format
Sebastian Dröge [Fri, 9 Nov 2018 08:54:57 +0000 (10:54 +0200)]
video-anc: Add comment about our assumption of the ADF user data format

We assume here the same data format for the user data as for the
DID/SDID: 10 bits with parity in the upper 2 bits. In theory some
standards could define this differently and even have full 10 bits of
user data but there does not seem to be a single such standard after
all these years.

5 years agovideo-anc: Add support for parsing composite ADF and check the packets' checksum
Sebastian Dröge [Thu, 8 Nov 2018 16:15:58 +0000 (18:15 +0200)]
video-anc: Add support for parsing composite ADF and check the packets' checksum

And add the checksum to the data we test in the unit test.

5 years agovideo-anc: Fix documentation about SDID_block_number field
Sebastian Dröge [Wed, 7 Nov 2018 12:20:19 +0000 (14:20 +0200)]
video-anc: Fix documentation about SDID_block_number field

It was giving type 2 for both variants.

5 years agovideo-anc: Add invalid-argument guards to public GstVideoVBIParser API
Sebastian Dröge [Wed, 7 Nov 2018 11:58:17 +0000 (13:58 +0200)]
video-anc: Add invalid-argument guards to public GstVideoVBIParser API

5 years agoAdd Gitlab CI configuration
Jordan Petridis [Mon, 12 Nov 2018 11:55:24 +0000 (13:55 +0200)]
Add Gitlab CI configuration

This commit adds a .gitlab-ci.yml file, which uses a feature
to fetch the config from a centralized repository. The intent is
to have all the gstreamer modules use the same configuration.

The configuration is currently hosted at the gst-ci repository
under the gitlab/ci_template.yml path.

Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29

5 years agogl: Make sure that GST_GLSL_PROFILE_ANY gets the correct value in introspection
Sebastian Dröge [Sun, 11 Nov 2018 06:52:27 +0000 (08:52 +0200)]
gl: Make sure that GST_GLSL_PROFILE_ANY gets the correct value in introspection

Currently in Python it would become a signed 64 bit value but should
actually be an unsigned 32 bit value with all bits set.

This is the same problem as with GST_MESSAGE_TYPE_ANY.

See https://bugzilla.gnome.org/show_bug.cgi?id=732633

5 years agoglupload: dmabuf: be explicit about gl formats used
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.

5 years agogl/egl: Determine correct format on dmabuf import
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.

5 years agourisourcebin: Avoid potential unitialized/wrong bitrate value
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.

5 years agourisourcebin: Fix previous commit
Edward Hervey [Wed, 7 Nov 2018 15:28:28 +0000 (16:28 +0100)]
urisourcebin: Fix previous commit

rebase wasn't correct :)

5 years agotests/urisourcebin: add get/set watermark test
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

5 years agourisourcebin: add a statistics property for queueing
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

5 years agouisourcebin: update forwarded properties on change
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

5 years agourisourcebin: add low/high-watermark properties
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

5 years agourisourcebin: limit the byte size of the queue based on the buffer-size
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