platform/upstream/gstreamer.git
6 years agodecklink: Only use drop-frame flag for 29.97 and 59.94 FPS
Vivia Nikolaidou [Tue, 28 Aug 2018 12:04:53 +0000 (15:04 +0300)]
decklink: Only use drop-frame flag for 29.97 and 59.94 FPS

Otherwise it can cause errors in gstvideotimecode.c because drop-frame
is not defined for any other frame rate (e.g. 24000/101)

https://blog.frame.io/2017/07/17/timecode-and-frame-rates/

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

6 years agoaudiobuffersplit: Fix format string warning
Johan Bjäreholt [Tue, 28 Aug 2018 07:11:32 +0000 (09:11 +0200)]
audiobuffersplit: Fix format string warning

We have a GST_DEBUG_OBJECT, which prints a guint64 with %lu which gave a
compiler warning. Used G_GUINT64_FORMAT instead.

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

6 years agokmssink: configure mode setting from video info
Philipp Zabel [Fri, 17 Aug 2018 09:12:26 +0000 (11:12 +0200)]
kmssink: configure mode setting from video info

drmModeGetFB returns -EINVAL for multi-planar framebuffers. Instead of
depending on the framebuffer dimensions to select the mode, use width
and height from GstVideoInfo, which was used to create the framebuffer
in the first place.  This enables kmssink to display multi-planar
formats such as I420 or NV12 with modesetting enabled.

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

6 years agoksvideosrc: fix device enumeration when hotplugging a camera
Jerome Laheurte [Thu, 16 Aug 2018 10:35:50 +0000 (12:35 +0200)]
ksvideosrc: fix device enumeration when hotplugging a camera

Since both audio and video capture devices declare the KSCATEGORY_CAPTURE interface,
plugging a camera that supports both could result in an audio device being mistaken
for a video one.

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

6 years agomeson: build musepack plugin
Tim-Philipp Müller [Sun, 19 Aug 2018 14:50:25 +0000 (15:50 +0100)]
meson: build musepack plugin

6 years agomusepack: remove support for the 'old' API
Tim-Philipp Müller [Sun, 19 Aug 2018 14:44:16 +0000 (15:44 +0100)]
musepack: remove support for the 'old' API

6 years agofreeverb: update for g_type_class_add_private() deprecation
Tim-Philipp Müller [Sun, 19 Aug 2018 13:39:53 +0000 (14:39 +0100)]
freeverb: update for g_type_class_add_private() deprecation

Not that the private struct is really needed here.

6 years agomeson: build neonhttpsrc
Tim-Philipp Müller [Sun, 19 Aug 2018 00:11:38 +0000 (01:11 +0100)]
meson: build neonhttpsrc

6 years agomeson: add options to disable gobject cast checks and glib asserts
Tim-Philipp Müller [Sat, 18 Aug 2018 20:32:11 +0000 (21:32 +0100)]
meson: add options to disable gobject cast checks and glib asserts

... and define G_DISABLE_DEPRECATED for development versions,
like we do in autotools.

6 years agoaudiobuffersplit: Add a gapless mode which inserts silence/drops samples on disconts
Sebastian Dröge [Fri, 17 Aug 2018 13:37:45 +0000 (16:37 +0300)]
audiobuffersplit: Add a gapless mode which inserts silence/drops samples on disconts

The output is always a continguous stream without any gaps.

6 years agoaudiobuffersplit: Always set DISCONT flag after resyncs
Sebastian Dröge [Fri, 17 Aug 2018 13:37:31 +0000 (16:37 +0300)]
audiobuffersplit: Always set DISCONT flag after resyncs

6 years agoaudiobuffersplit: Keep track of resync time separately
Sebastian Dröge [Fri, 17 Aug 2018 13:33:52 +0000 (16:33 +0300)]
audiobuffersplit: Keep track of resync time separately

If we drain after a discont, the discont time given by the stream
synchronizer is already the time after the discontinuity. But we need to
drain all pending data based on the previous discont time instead.

6 years agoaudiobuffersplit: Update output buffer size after each buffer to compensate for accum...
Sebastian Dröge [Fri, 17 Aug 2018 11:56:51 +0000 (14:56 +0300)]
audiobuffersplit: Update output buffer size after each buffer to compensate for accumulated errors

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

6 years agoavwait: Start video and audio together if audio starts late
Vivia Nikolaidou [Thu, 16 Aug 2018 14:47:55 +0000 (17:47 +0300)]
avwait: Start video and audio together if audio starts late

Also add test to meson

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

6 years agomeson: host_system is 'ios' when building for iOS
Nirbheek Chauhan [Thu, 16 Aug 2018 21:29:26 +0000 (02:59 +0530)]
meson: host_system is 'ios' when building for iOS

The cross file sets this value, and we use 'ios' in Cerbero.

6 years agomeson: Add an option for tests
Nirbheek Chauhan [Thu, 16 Aug 2018 20:19:07 +0000 (01:49 +0530)]
meson: Add an option for tests

This is needed because we don't always have gstreamer-check available,
for instance inside Cerbero on iOS.

6 years agodashdemux: Always create the adapter
Nicolas Dufresne [Thu, 16 Aug 2018 19:21:00 +0000 (15:21 -0400)]
dashdemux: Always create the adapter

Worst case it will be empty. This fixes a crash when the base class
calls data_received() when the stream is neither is_isobmff or
has_isoff_ondemand_profile.

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

6 years agocompositor: Define crossfade-ratio to have range [0.0,1.0]
Sebastian Dröge [Thu, 16 Aug 2018 14:07:06 +0000 (17:07 +0300)]
compositor: Define crossfade-ratio to have range [0.0,1.0]

Previously negative values had the same effect as 0.0, which was
confusing.

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

6 years agocurlhhtpsrc: avoid invalid memory references
Wim Taymans [Thu, 16 Aug 2018 09:42:25 +0000 (11:42 +0200)]
curlhhtpsrc: avoid invalid memory references

gst_curl_http_src_remove_queue_item() can free qelement and then
we get an invalid memory reference when we do qelement->next a
couple of lines below. Take the next pointer earlier so that we can
safely free.

6 years agorfbdecoder: don't free decoder data
Wim Taymans [Thu, 16 Aug 2018 09:20:54 +0000 (11:20 +0200)]
rfbdecoder: don't free decoder data

The decoder data is freed when we read more data.

6 years agovideoaggregator: Make sure to hold object lock while iterating sink pads
Sebastian Dröge [Thu, 16 Aug 2018 07:02:42 +0000 (10:02 +0300)]
videoaggregator: Make sure to hold object lock while iterating sink pads

They might otherwise just change while we iterate.

6 years agomeson: Define HAVE_OSX on macOS and iOS
Nirbheek Chauhan [Wed, 15 Aug 2018 14:14:17 +0000 (19:44 +0530)]
meson: Define HAVE_OSX on macOS and iOS

Needed by the shm, ladspa, and lv2 plugins. Same as Autotools.

6 years agomeson: Fix shm librt dep check on macOS, iOS, and *BSD
Nirbheek Chauhan [Wed, 15 Aug 2018 14:04:31 +0000 (19:34 +0530)]
meson: Fix shm librt dep check on macOS, iOS, and *BSD

6 years agomakefile: opencv: Fix header names in noinst_HEADERS
Nicolas Dufresne [Tue, 14 Aug 2018 19:59:52 +0000 (15:59 -0400)]
makefile: opencv: Fix header names in noinst_HEADERS

This should fix missing gstcameracalibrate.h and gstcameraundistort.h
missing into generated tarballs.

6 years agomeson: Add an option for the applemedia plugin
Nirbheek Chauhan [Tue, 14 Aug 2018 14:18:28 +0000 (19:48 +0530)]
meson: Add an option for the applemedia plugin

6 years agoassrender: fix multiple subtitles on screen simultaneously
Michael Drake [Wed, 18 Jul 2018 10:11:17 +0000 (11:11 +0100)]
assrender: fix multiple subtitles on screen simultaneously

This fixes an issue with SSA/ASS subtitles, where subtitles
would fail to appear if there was already a subtitle on screen.

This was because `struct _GstAssRender` had a single
`GstBuffer *subtitle_pending` member.  This meant that
the assrender context could only be aware of one subtitle
at a time.

This patch changes the subtitle_pending member to a
linked list of pending subtitles.

The `gst_ass_render_chain_text` function no longer needs
to care about whether there are already subtitles pending,
it simply appends new subtitles to the list.

The `gst_ass_render_chain_video` function has been modified
to handle the list of pending subtitles.

Finally, the `gst_ass_render_pop_text` function has been
modified to pop the entire list of pending subtitles.

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

6 years agocheck: update gitignore
Víctor Manuel Jáquez Leal [Tue, 14 Aug 2018 11:53:00 +0000 (13:53 +0200)]
check: update gitignore

6 years agoclosedcaption: comment out unused function
Víctor Manuel Jáquez Leal [Tue, 14 Aug 2018 10:42:02 +0000 (12:42 +0200)]
closedcaption: comment out unused function

When compiling with clang-6 this error raises:

raw_decoder.c:411:1: error: unused function 'cpr1204_crc'
[-Werror,-Wunused-function]

This patch only comments it out.

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

6 years agoclosedcaption: avoid implicit convertion of enums
Víctor Manuel Jáquez Leal [Tue, 14 Aug 2018 10:36:53 +0000 (12:36 +0200)]
closedcaption: avoid implicit convertion of enums

When compiling with clang-6 this error pops out:

raw_decoder.c:1011:62: error: implicit conversion from enumeration
type 'const vbi_modulation' to different enumeration type
'vbi3_modulation' [-Werror,-Wenum-conversion]

This is because function vbi3_bit_slicer_set_params() sets
vbi3_modulation as enum type parameter, nonetheless vbi_modulation
enum is passed. Both enums looks semantically equal, thus the fix is a
simple cast.

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

6 years agomeson: Add gnustl dep for webrtcdsp on Android
Nirbheek Chauhan [Fri, 10 Aug 2018 22:42:46 +0000 (04:12 +0530)]
meson: Add gnustl dep for webrtcdsp on Android

Needed for C++ headers. Without this, webrtcdsp can't find <algorithm>

6 years agomeson: fix install dir for generated header files
Bastian Köcher [Fri, 10 Aug 2018 11:57:47 +0000 (12:57 +0100)]
meson: fix install dir for generated header files

Nixos installs into a non-standard includedir, so need
to take account of the 'includedir' option instead of
just hard-coding 'include' here.

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

6 years agowasapi: Fix build with Windows 8.1 SDK
Nirbheek Chauhan [Tue, 7 Aug 2018 19:01:51 +0000 (00:31 +0530)]
wasapi: Fix build with Windows 8.1 SDK

With the Windows 8.1 SDK, the v1 of the AUDCLNT_STREAMOPTIONS enum is
defined which only has NONE and RAW, so it's not only defined when
AudioClient3 is available.

Add a meson check for the symbol. This is not needed for Autotools
because there we build against the MinGW audioclient.h which is still
at v1 of the AudioClient interface.

6 years agotests/check/Makefile.am: add GST_AUDIO_CFLAGS also on the planar audio adapter unit...
George Kiagiadakis [Fri, 3 Aug 2018 12:23:24 +0000 (15:23 +0300)]
tests/check/Makefile.am: add GST_AUDIO_CFLAGS also on the planar audio adapter unit test

6 years agobadaudio: Fix typo, ADUIO vs AUDIO
Nicolas Dufresne [Fri, 3 Aug 2018 12:16:19 +0000 (08:16 -0400)]
badaudio: Fix typo, ADUIO vs AUDIO

6 years agoGstPlanarAudioAdapter: Add audio library in Makefile.am
Nicolas Dufresne [Fri, 3 Aug 2018 11:57:50 +0000 (07:57 -0400)]
GstPlanarAudioAdapter: Add audio library in Makefile.am

This fixes a build regression.

6 years agowebrtcdsp: Avoid redefinition of GST_USE_UNSTABLE_API
Nicolas Dufresne [Fri, 3 Aug 2018 11:57:02 +0000 (07:57 -0400)]
webrtcdsp: Avoid redefinition of GST_USE_UNSTABLE_API

6 years agowebrtcdsp: add support for using F32/non-interleaved buffers
George Kiagiadakis [Mon, 19 Feb 2018 16:30:13 +0000 (18:30 +0200)]
webrtcdsp: add support for using F32/non-interleaved buffers

This is the native format that is in use by the webrtc audio processing
library internally, so this avoids internal {de,}interleaving and
format conversion (S16->F32 and back)

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

6 years agoGstPlanarAudioAdapter: copy pts, dts and offset tracking from GstAdapter
George Kiagiadakis [Mon, 19 Feb 2018 09:48:01 +0000 (11:48 +0200)]
GstPlanarAudioAdapter: copy pts, dts and offset tracking from GstAdapter

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

6 years agolibs: audio: add new GstPlanarAudioAdapter class
George Kiagiadakis [Fri, 16 Feb 2018 13:55:45 +0000 (15:55 +0200)]
libs: audio: add new GstPlanarAudioAdapter class

This is a GstAdapter, but for planar audio buffers.

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

6 years agomeson: enable applemedia
Alessandro Decina [Fri, 21 Jul 2017 07:53:11 +0000 (17:53 +1000)]
meson: enable applemedia

6 years agorsvg: Also accept </svg:svg> as ending tag
Thibault Saunier [Fri, 3 Aug 2018 01:05:24 +0000 (21:05 -0400)]
rsvg: Also accept </svg:svg> as ending tag

Some SVG files created by inkscape use that, such as:
https://gitlab.gnome.org/GNOME/pitivi/uploads/8dd8d9d988b5eb6cc38f871196caac6f/Titel-Tafel3.2_anim.svg

This is a first patch for https://bugzilla.gnome.org/show_bug.cgi?id=796909
but it is not enough to support animated gifs.

6 years agoopencv: Fixup include to follow new standard
Nicolas Dufresne [Thu, 2 Aug 2018 15:19:07 +0000 (11:19 -0400)]
opencv: Fixup include to follow new standard

This uses the new path for OpenCV headers. OpenCV now have
master headers files per modules, which reduce the amount of
required includes. Note that HIGHGUI was included to get the
imgcodecs includes, which I fixed, though the master header is
missing the C headers, so I included that directly. All the
image stuff should be ported to C++ eventually. Finally, this
patch also update the header checks to reflect the modules that
are really being used.

6 years agoopencv: Updated to use new header path
Nicolas Dufresne [Thu, 2 Aug 2018 15:03:47 +0000 (11:03 -0400)]
opencv: Updated to use new header path

6 years agoopencv: Bump requirement to 3.0.0+
Nicolas Dufresne [Thu, 2 Aug 2018 14:39:14 +0000 (10:39 -0400)]
opencv: Bump requirement to 3.0.0+

And removes all the ifdef code to support the 2.X APIs.

6 years agoceaccoverlay: Initialize debug category
Sebastian Dröge [Thu, 2 Aug 2018 13:18:12 +0000 (16:18 +0300)]
ceaccoverlay: Initialize debug category

6 years agowasapisrc: Correctly disable provide-clock
Nirbheek Chauhan [Thu, 2 Aug 2018 12:54:02 +0000 (18:24 +0530)]
wasapisrc: Correctly disable provide-clock

`#ifdef` will, of course, evaluate to 1 in this case. We want `#if`.

6 years agocameracalibrtate: Fix opencv2 core.hpp path
Nicolas Dufresne [Thu, 2 Aug 2018 12:13:08 +0000 (08:13 -0400)]
cameracalibrtate: Fix opencv2 core.hpp path

This is to support older release of OpenCV2

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

6 years agowasapisink: fix regression in shared mode segment size
Christoph Reiter [Sun, 27 May 2018 12:31:55 +0000 (14:31 +0200)]
wasapisink: fix regression in shared mode segment size

In commit fd806628a8 (839cc3926 in the stable branch) I changed the
segment size to match exactly the buffer size.  I missed that this is
only valid in exclusive mode and in shared mode the buffer size is
a multiple of the device period.

Revert the logic for the shared mode.

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

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

6 years agoopencv: new cameracalibrate and cameraundistort elements
Philippe Renon [Mon, 16 Oct 2017 20:29:01 +0000 (22:29 +0200)]
opencv: new cameracalibrate and cameraundistort elements

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

6 years agoavwait: Don't wait if audio_running_time_to_wait_for is NONE
Vivia Nikolaidou [Wed, 1 Aug 2018 12:11:09 +0000 (15:11 +0300)]
avwait: Don't wait if audio_running_time_to_wait_for is NONE

The case is properly handled a few lines below by dropping the buffer.
We shouldn't perpetually block the audio chain function until the
target-timecode is reached.

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

6 years agomeson: Add option for winks plugin
Nirbheek Chauhan [Tue, 31 Jul 2018 22:13:31 +0000 (03:43 +0530)]
meson: Add option for winks plugin

This was accidentally missed.

6 years agosrt: Allow the host name "localhost"
Seungha Yang [Sun, 29 Jul 2018 11:55:26 +0000 (20:55 +0900)]
srt: Allow the host name "localhost"

Add support "srt://localhost:port" style uri, and change the
default host to "localhost"

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

6 years agosrtclientsink: Fix SRT socket option setting
Seungha Yang [Sat, 28 Jul 2018 06:59:04 +0000 (15:59 +0900)]
srtclientsink: Fix SRT socket option setting

SRTClientSink is sender

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

6 years agosrt: Do not ignore SRT socket error event
Seungha Yang [Fri, 27 Jul 2018 06:04:29 +0000 (15:04 +0900)]
srt: Do not ignore SRT socket error event

... and set SRT_EPOLL_IN flag if the client is not sender
(i.e., source element) since waiting readable event for
srt_recvmsg() makes more sense.

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

6 years agosrtbasesrc: Use GstBaseSrc's timestamp impl.
Seungha Yang [Fri, 27 Jul 2018 04:23:43 +0000 (13:23 +0900)]
srtbasesrc: Use GstBaseSrc's timestamp impl.

... instead of doing it ourselves. Otherwise, we should add more
logic here (such as checking GstClock and etc) which was already provided by
GstBaseSrc.

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

6 years agosrt: Add "const" keyword to a function argument
Seungha Yang [Wed, 25 Jul 2018 01:44:20 +0000 (10:44 +0900)]
srt: Add "const" keyword to a function argument

Given "passphrase" shouldn't be modified

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

6 years agosrt: Remove duplicated code for setting server socket
Seungha Yang [Fri, 20 Jul 2018 07:02:26 +0000 (16:02 +0900)]
srt: Remove duplicated code for setting server socket

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

6 years agosrt: Fix signal args mismatch
Seungha Yang [Sat, 28 Jul 2018 09:06:08 +0000 (18:06 +0900)]
srt: Fix signal args mismatch

client-added and client-{removed,closed} signals were defined
to be emitted with two arguments (socket fd and address)

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

6 years agosrtserversrc: Emit client-closed signal in _stop()
Seungha Yang [Wed, 25 Jul 2018 08:36:03 +0000 (17:36 +0900)]
srtserversrc: Emit client-closed signal in _stop()

... instead of client-added

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

6 years agosrtclientsink: Do not leak string
Seungha Yang [Wed, 25 Jul 2018 06:16:32 +0000 (15:16 +0900)]
srtclientsink: Do not leak string

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

6 years agosrtclient: Fix bind-port and rendez-vous property getter
Seungha Yang [Mon, 23 Jul 2018 05:28:05 +0000 (14:28 +0900)]
srtclient: Fix bind-port and rendez-vous property getter

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

6 years agosrt: Reduce useless call depth
Seungha Yang [Fri, 20 Jul 2018 05:05:32 +0000 (14:05 +0900)]
srt: Reduce useless call depth

Providing simplified _client_connect() is not required for now.

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

6 years agosrt: Remove white space
Seungha Yang [Fri, 20 Jul 2018 03:10:21 +0000 (12:10 +0900)]
srt: Remove white space

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

6 years agojpegparse: Generate timestamp if framerate is known
Nicolas Dufresne [Sat, 28 Jul 2018 03:00:53 +0000 (23:00 -0400)]
jpegparse: Generate timestamp if framerate is known

This change allow setting timestamp on streams that would otherwise have
no timestamp. This is useful to make a video from bunch of JPEG files. An
example of such pipeline would be:

gst-launch-1.0 multifilesrc location=%05d.jpeg caps=image/jpeg,framerate=30/1 \
               ! jpegparse ! fakesink silent=0 -v

6 years agomeson: mjpegtools_api should be 20K for mplex too
Nicolas Dufresne [Sat, 28 Jul 2018 02:36:40 +0000 (22:36 -0400)]
meson: mjpegtools_api should be 20K for mplex too

This error was duplicated.

6 years agomeson: mjpegtools_api should have been 20K not 2K
Nicolas Dufresne [Sat, 28 Jul 2018 02:33:47 +0000 (22:33 -0400)]
meson: mjpegtools_api should have been 20K not 2K

This was miss-ported when the options got added. The requires version was
properly set to 2000 before.

6 years agomeson: Generate bluez.h instead of bluez-interface.h
Nicolas Dufresne [Sat, 28 Jul 2018 02:17:56 +0000 (22:17 -0400)]
meson: Generate bluez.h instead of bluez-interface.h

This is a recent regression, the meson code was ported to use the meson
gnome module helpers, but the generated file was changed to
bluez-interface.h.

6 years agoAdd feature options for almost all plugins
Nirbheek Chauhan [Fri, 27 Jul 2018 13:29:23 +0000 (18:59 +0530)]
Add feature options for almost all plugins

The only plugins remaining are those that haven't been ported to Meson
yet, and msdk. Also, the tests are still automagic.

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

6 years agomeson: Add feature options for many plugins
Nirbheek Chauhan [Wed, 25 Jul 2018 11:42:00 +0000 (17:12 +0530)]
meson: Add feature options for many plugins

The rest will be converted later, these are necessary for gst-build to
set options correctly.

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

6 years agoav1enc: Implement latency setting
Olivier Crête [Thu, 26 Jul 2018 15:19:41 +0000 (11:19 -0400)]
av1enc: Implement latency setting

6 years agoav1enc: Propagate flags from encoder to GstBuffer
Olivier Crête [Thu, 26 Jul 2018 14:48:34 +0000 (10:48 -0400)]
av1enc: Propagate flags from encoder to GstBuffer

6 years agoav1enc: Implement finish for EOS
Olivier Crête [Thu, 26 Jul 2018 13:55:48 +0000 (09:55 -0400)]
av1enc: Implement finish for EOS

Call the encode function repeatedly until nothing comes out.

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

6 years agoav1enc: Return downstream error from push
Olivier Crête [Thu, 26 Jul 2018 13:49:02 +0000 (09:49 -0400)]
av1enc: Return downstream error from push

6 years agocompositor: Don't leak all buffers while crossfading and not all pads are crossfading
Sebastian Dröge [Wed, 25 Jul 2018 21:20:02 +0000 (00:20 +0300)]
compositor: Don't leak all buffers while crossfading and not all pads are crossfading

6 years agokmssink: Add support for mxsfb-drm driver
Gary Bisson [Wed, 25 Jul 2018 11:44:48 +0000 (13:44 +0200)]
kmssink: Add support for mxsfb-drm driver

The mxsfb-drm driver has been added to the kernel long ago and will now
be the default display driver for NXP i.MX28, i.MX6SX and i.MX7D
processors so now is a good time to add it to kmssink.

Also, this is used in the upcoming i.MX8MQ and i.MX8MM processors.

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

6 years agowaylandsink: relaxed wl_shell check and added zwp_fullscreen_shell.
Matteo Valdina [Tue, 10 Jul 2018 01:20:59 +0000 (20:20 -0500)]
waylandsink: relaxed wl_shell check and added zwp_fullscreen_shell.

Relaxed the wl_shell interface constrains, so application that
pass via GstContext the wl_surface can use waylandsink in a
compositor without wl_surface and zwp_fullscreen_shell.

Added support for zwp_fullscreen_shell.

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

6 years agoavwait: Add recording property
Vivia Nikolaidou [Thu, 19 Jul 2018 15:34:40 +0000 (18:34 +0300)]
avwait: Add recording property

It works like a valve in front of the actual avwait. When recording ==
TRUE, other rules are then examined. When recording == FALSE, nothing is
passing through.

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

6 years agocompositor: Use 255 as maximum alpha instead of 256
Sebastian Dröge [Fri, 20 Jul 2018 13:25:02 +0000 (16:25 +0300)]
compositor: Use 255 as maximum alpha instead of 256

255 will easily become 0 in the blending function as they expect
the maximum value to be 255.

Can be reproduce with

gst-launch-1.0 videotestsrc pattern=ball ! c.sink_0 \
               videotestsrc pattern=snow ! c.sink_1 \
               compositor name=c \
                 sink_0::zorder=0 sink_1::zorder=1 sink_0::crossfade-ratio=0.5 \
                 background=black ! \
               videoconvert ! xvimagesink

crossfade-ratio +/- 0.001 makes it work correctly and the same happens
at e.g. 0.25, 0.75, N*0.0625

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

6 years agoladspa: Only scan LADSPA subdir APPDATA and COMMONPROGRAMFILES
Jan Schmidt [Sun, 22 Jul 2018 00:34:06 +0000 (10:34 +1000)]
ladspa: Only scan LADSPA subdir APPDATA and COMMONPROGRAMFILES

Don't scan the entire APPDATA and COMMONPROGRAMFILES
path tree, just the LADSPA sub-directory inside them, if any.

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

6 years agoladspa: Don't try and load every file as a plugin
Jan Schmidt [Sat, 21 Jul 2018 23:52:23 +0000 (09:52 +1000)]
ladspa: Don't try and load every file as a plugin

When scanning paths for LADSPA plugins, don't try and load
every random file as a module, as g_module_open ends up throwing
errors on Windows.

Use a G_MODULE_SUFFIX and GST_EXTRA_MODULE_SUFFIX suffix check as
we do for GStreamer plugins.

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

6 years agowebrtc: fix memory leak
Sam Gigliotti [Wed, 18 Jul 2018 13:26:17 +0000 (14:26 +0100)]
webrtc: fix memory leak

When it parses SDP, it doesn't free the error object.

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

6 years agocompositor: Update conversion info in property setter
Seungha Yang [Wed, 18 Jul 2018 11:05:26 +0000 (20:05 +0900)]
compositor: Update conversion info in property setter

... not in getter. Otherwise, video-converter will not be updated
with new width/height

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

6 years agocurlhttpsink: Support for multipart/form-data Content-Type
Jonathan Karlsson [Mon, 18 Jun 2018 11:01:50 +0000 (13:01 +0200)]
curlhttpsink: Support for multipart/form-data Content-Type

Add support to set multipart/form-data as Content-Type by sending a
caps event to the curlhttpsink with a field named "boundary".

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

6 years agowebrtc: Add some ssrc to caps in the unit test.
Jan Schmidt [Sun, 15 Jul 2018 13:05:26 +0000 (23:05 +1000)]
webrtc: Add some ssrc to caps in the unit test.

The unit test uses incomplete caps to test webrtcbin,
causing some weirdness generating RTX stream mappings.

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

6 years agowebrtc: Add a warning in sdp_media_from_transceiver()
Jan Schmidt [Sat, 14 Jul 2018 13:15:02 +0000 (23:15 +1000)]
webrtc: Add a warning in sdp_media_from_transceiver()

When generating caps with no ssrc, at least throw a
warning instead of using an uninitialised stack variable

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

6 years agowebrtc: Fix memory leak
Jan Schmidt [Sat, 14 Jul 2018 13:05:53 +0000 (23:05 +1000)]
webrtc: Fix memory leak

Fix a leaked string when building RTX info.

6 years agowebrtc: Clean up and fix transportsendbin
Jan Schmidt [Sat, 14 Jul 2018 13:04:30 +0000 (23:04 +1000)]
webrtc: Clean up and fix transportsendbin

Refactor transportsendbin, and change the way
pads are blocked on dtlssrtpenc so that they
don't interfere with state changes.

As well as being easier to read, this fixes
spurious failures shutting down webrtcbin
if DTLS negotiation hasn't completed yet.

6 years agowebrtc: Move dtlssrtpenc state management
Jan Schmidt [Sat, 14 Jul 2018 13:02:05 +0000 (23:02 +1000)]
webrtc: Move dtlssrtpenc state management

Move the errant piece of dtlssrtpenc state change
management from dtlstransport in the Webrtc libs,
into the transportsendbin that does the rest of
the element management so it's all in one place.

6 years agowebrtc/dtlstransport: Add more debug. Rename category
Jan Schmidt [Mon, 2 Jul 2018 09:55:41 +0000 (19:55 +1000)]
webrtc/dtlstransport: Add more debug. Rename category

Rename the dtlstransport debug category to webrtcdtlstransport.

6 years agoopencv: Fix build for opencv >= 3.4.2
Thibault Saunier [Fri, 13 Jul 2018 18:42:28 +0000 (14:42 -0400)]
opencv: Fix build for opencv >= 3.4.2

The `CV_RGB` macro is now in `imgproc.hpp`.

Fixes:

    ../subprojects/gst-plugins-bad/ext/opencv/gsthanddetect.cpp:497:40: error: ‘CV_RGB’ was not declared in this scope
            cvCircle (img, center, radius, CV_RGB (0, 0, 200), 1, 8, 0);
                                        ^~~~~~

6 years agofind_codec_preferences: use received caps
Mathieu Duponchelle [Sat, 7 Jul 2018 01:40:49 +0000 (03:40 +0200)]
find_codec_preferences: use received caps

When negotiation is triggered by receiving caps on our sink pad
probes, we could encounter a race condition where need-negotiation
is emitted and the application requires the creation of an offer
before the current caps were actually updated.

This led to retrieving incomplete caps when creating the offer,
using find_codec_preferences -> pad_get_current_caps.

Instead, as we save the caps in the probe callback anyway, it is better
and thread safe to use these if they were set.

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

6 years agoglvideomixer: fix default placement when different sized output
Matthew Waters [Thu, 12 Jul 2018 02:48:39 +0000 (12:48 +1000)]
glvideomixer: fix default placement when different sized output

i.e. when expanding from 320x240 to 800x600, the resulting frame should
appear in the top left corner, not the middle.

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

6 years agoglvideomixer: Moves the objects to zero on z axis
Daniel Klamt [Wed, 25 Apr 2018 14:36:21 +0000 (16:36 +0200)]
glvideomixer: Moves the objects to zero on z axis

Matches the output from a similar glimagesink pipeline when
rotating from an upstream gltransformation passed through
the affine transformation meta with xpos/ypos being set.

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

6 years agoglvideomixer: Fix coding style
Nicolas Dufresne [Tue, 10 Jul 2018 13:45:31 +0000 (09:45 -0400)]
glvideomixer: Fix coding style

6 years agoglvideomixer: Add missing string.h include
Nicolas Dufresne [Tue, 10 Jul 2018 13:42:47 +0000 (09:42 -0400)]
glvideomixer: Add missing string.h include

6 years agodecklink: keep the internal time we send to decklink always increasing
Matthew Waters [Sun, 8 Jul 2018 14:54:04 +0000 (09:54 -0500)]
decklink: keep the internal time we send to decklink always increasing

Otherwise decklink seems to hold onto the latest frame and may cause a
flash in the output if the played sequence has a framerate less than the
video output.

Scenario is play for N seconds, pause, flushing seek to some other position,
play again.  Each of the play sequences would normally start at 0 with
the decklink time.  As a result, the latest frame from the previous sequence
is kept alive waiting for it's timestamp to pass before either dropping
(if a subsequent frame in the new sequence overrides it) or displayed
causing the out of place frame to be displayed.

This is also supported by the debug logs from the decklink video sink
element where a ScheduledFrameCompleted() callback would not occur for
the frame until the above had happened.

It was timing related as to whether the frame was displayed based
on the decklink refresh cycle (which seems to be 16ms here),
when the frame was scheduled by the sink and the difference between
the 'time since vblank' of the two play requests (and thus start times
of scheduled playback).

6 years agogl/utils: fix matrix conversion for column majorness
Matthew Waters [Tue, 10 Jul 2018 10:12:15 +0000 (20:12 +1000)]
gl/utils: fix matrix conversion for column majorness

Companion to
https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=e4bf9ed8f060021151cd57e2b00493ed696cb47b
https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=16cba63d43f319ac33bc993eca2b1b51679727b3

6 years agoMoved the pad offset and aspect ratio to a matrix so it will be added in view space...
Daniel Klamt [Wed, 25 Apr 2018 14:39:34 +0000 (16:39 +0200)]
Moved the pad offset and aspect ratio to a matrix so it will be added in view space and not in world space

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

6 years agoclosedcaption: Fix compilation on older compilers
Arun Raghavan [Mon, 9 Jul 2018 01:10:29 +0000 (06:40 +0530)]
closedcaption: Fix compilation on older compilers

For when -std=c99 (or later) is not the default.

6 years agobluez: Expose transport volume as a property on avdtpsrc
Arun Raghavan [Mon, 9 Jul 2018 01:10:24 +0000 (06:40 +0530)]
bluez: Expose transport volume as a property on avdtpsrc

This can be handy if we want to track Bluetooth volume changes from the
device, or if we want to set it.

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