platform/upstream/gstreamer.git
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

6 years agomsdkdec: Fix latency calculation
Sreerenj Balachandran [Wed, 4 Jul 2018 02:38:04 +0000 (18:38 -0800)]
msdkdec: Fix latency calculation

Use async_depth for latency calcuation instead of
the length of Tasks array which could be NULL since we
don't do the msdk decoder init in set_format().

6 years agomsdk: Set 16 bit alignment for width
Sreerenj Balachandran [Tue, 3 Jul 2018 00:50:46 +0000 (16:50 -0800)]
msdk: Set 16 bit alignment for width

According to MediaSDK specification,
Width must be a multiple of 16 and Height must be a multiple
of 16 for progressive frame sequence and a multiple of 32 otherwise.

This patch sets a 16 bit alignment for width and 32 bit alignment
for height as default.

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

6 years agomsdkdec: avoid early destruction of frame in dynamic resolution change
Sreerenj Balachandran [Tue, 3 Jul 2018 00:50:02 +0000 (16:50 -0800)]
msdkdec: avoid early destruction of frame in dynamic resolution change

In cases where we do hard resest, the current code destroys the frame
which has new resolution bit early and this causes buffer_unmap
warnings. Keep an extra ref to the frame internally to avoid this.

6 years agomsdkdec: vc1: Fix handling of advanced profile elementary stream
Sreerenj Balachandran [Tue, 3 Jul 2018 00:49:23 +0000 (16:49 -0800)]
msdkdec: vc1: Fix handling of advanced profile elementary stream

Advanced profile elementary streams may not have codec_data
always. So make sure we don't do anything with null buffer.

6 years agomsdkdec: Fix advanced profile vc1 decode when codec_data presents
Sreerenj Balachandran [Tue, 3 Jul 2018 00:48:11 +0000 (16:48 -0800)]
msdkdec: Fix advanced profile vc1 decode when codec_data presents

The gst-msdk decoders only support packetized formats for
all codecs except VC1. For VC1, it supports codec_data for advanced
profiles and this codec_data wan't submitting to MSDK's DecodeHeader APIs.
Make sure the subclass deocders correctly configured so that
the codec_data buffers are in place in the internal adapter for
MediaSDK's DecoderHeader usage.

6 years agomsdkdec: Fix the PTS of output frames
Sreerenj Balachandran [Tue, 3 Jul 2018 00:42:20 +0000 (16:42 -0800)]
msdkdec: Fix the PTS of output frames

Currently we use the gst_video_decoder_get_oldest_frame()
to get the old pending frame to output. But this is not correct
if pts re-ordering required. This patch uses a custom made
get_old_frame() which accounts the PTS too similar to the
v4l2decoder.

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

6 years agomsdkdec: Remove dead code
Sreerenj Balachandran [Tue, 3 Jul 2018 00:41:58 +0000 (16:41 -0800)]
msdkdec: Remove dead code

We are not using any ExtendedParams for decoding.

6 years agomsdk: dec: Add dynamic-configuration change support
Sreerenj Balachandran [Tue, 3 Jul 2018 00:17:49 +0000 (16:17 -0800)]
msdk: dec: Add dynamic-configuration change support

The patch adds a serios of changes to support dynamic resolution
change and efficient utilization of resources.
Major changes:

-- Use MSDK's apis to retrieve the headers instead of only relying
on upsteram notification. For eg: avc decoder requires SEI header
information for dpb count calculation which we don't get from caps.

-- For all codecs other than VP9, we force the reset of decoder
if resoultion changes to fit with gstreamer flow. VP9 enfource
the hard reset only if the new resolution is bigger.

-- delay the src caps setting till msdk api's invokation in
handle_frame to avoid caching multiple configuration values

-- ensure pool negotiation is based on decoder's allocation_caps.

--dynamic resoluttion change use an explicit allocation_query
to reclaim the buffers before closing the decoder (thanks to v4l2dec)

--In case if we don't get upstream notification of res change (for eg,
this can can happen for vp9 frames with ivfheader where ivfparse
is not able to notify the dynamic changes), we handle the the case
based on MFX_ERR_INCOMPATIBLE_VIDEO_PARAM which is the return value
of MFXVideoDECODE_DecodeFrameAsync

-- calculate the minimum surfaces to be preallocated based on
msdk suggestion, downstream requirement, async depth and scratch surface
count for smooth display.

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

6 years agoplayer: Avoid trying to join the player thread from itself
Roland Jon [Mon, 2 Jul 2018 11:09:19 +0000 (19:09 +0800)]
player: Avoid trying to join the player thread from itself

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

6 years agowebrtc: Explicitly initialise mutex and condition
Jan Schmidt [Sun, 1 Jul 2018 00:44:45 +0000 (10:44 +1000)]
webrtc: Explicitly initialise mutex and condition

Fixes random crashes when an allocated webrtcbin isn't
given fresh 0-filled memory in its allocation. It works
mostly because GMutex and GCond are automatically initialised
in that case.

6 years agowebrtc: Move the transportsendbin pad block removal
Jan Schmidt [Fri, 29 Jun 2018 14:56:29 +0000 (00:56 +1000)]
webrtc: Move the transportsendbin pad block removal

Move freeing of the pad blocks back to before we call the
GstBin state change function, as there's something racy
going on on the build server otherwise, where the pads don't
unblock during downward state changes.

This is a bit of a stab in the dark, since I can't recreate
the build server failure locally.

6 years agoaomenc: Handle 8 bit_depth images with AOM_IMG_FMT_HIGHBITDEPTH enabled
Sean-Der [Wed, 27 Jun 2018 09:48:00 +0000 (09:48 +0000)]
aomenc: Handle 8 bit_depth images with AOM_IMG_FMT_HIGHBITDEPTH enabled

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

6 years agoaomenc: Add support for 10/12bit decoding
Sean-Der [Wed, 27 Jun 2018 09:44:00 +0000 (09:44 +0000)]
aomenc: Add support for 10/12bit decoding

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

6 years agoivfparse: Add the AV01 FOURCC for parsing AV1 IVFs
Georg Ottinger [Tue, 26 Jun 2018 15:45:36 +0000 (17:45 +0200)]
ivfparse: Add the AV01 FOURCC for parsing AV1 IVFs

Adds AV01 FOURCC to the list of allowed media files, in order to allow
parsing the IVF Container holding AV1 content.
At a later point dynamic resolution change can be supported - therefore
the sequence header OBU and frame header OBU of AV1 file must be parsed,
which can be done in future with the help of gst-lib gstav1parse.

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

6 years agomeson: Add fallback for openh264 dependency
Thibault Saunier [Thu, 28 Jun 2018 19:21:12 +0000 (15:21 -0400)]
meson: Add fallback for openh264 dependency

6 years agowebrtc: Clean up pad block allocs on dispose.
Jan Schmidt [Wed, 27 Jun 2018 12:42:12 +0000 (22:42 +1000)]
webrtc: Clean up pad block allocs on dispose.

Release references in pad blocks and release the memory in the
dispose function too, in case the state change doesn't get
run (because calling the parent state change fails).

6 years agowebrtc: Don't deadlock on block pads on shutdown
Jan Schmidt [Tue, 26 Jun 2018 17:05:55 +0000 (03:05 +1000)]
webrtc: Don't deadlock on block pads on shutdown

When changing state downward, we can't set pads
to inactive if they are blocked, it will deadlock
trying to acquire the streaming lock.

Just calling the parent state change function
will do the correct things to unblock probes and
set the pad inactive, so let it do that and
remove the probes after the parent state change
function has run

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

6 years agowinks: Update for g_type_class_add_private() deprecation in recent GLib
Tim-Philipp Müller [Sat, 23 Jun 2018 22:17:26 +0000 (00:17 +0200)]
winks: Update for g_type_class_add_private() deprecation in recent GLib

Untested

6 years agomsdk: Update for g_type_class_add_private() deprecation in recent GLib
Tim-Philipp Müller [Sat, 23 Jun 2018 22:17:26 +0000 (00:17 +0200)]
msdk: Update for g_type_class_add_private() deprecation in recent GLib

Untested.

6 years agolibs: Update for g_type_class_add_private() deprecation in recent GLib
Tim-Philipp Müller [Sat, 23 Jun 2018 22:17:26 +0000 (00:17 +0200)]
libs: Update for g_type_class_add_private() deprecation in recent GLib

6 years agovideoaggregator: Update for g_type_class_add_private() deprecation in recent GLib
Tim-Philipp Müller [Sat, 23 Jun 2018 22:17:26 +0000 (00:17 +0200)]
videoaggregator: Update for g_type_class_add_private() deprecation in recent GLib

6 years agogl: Update for g_type_class_add_private() deprecation in recent GLib
Tim-Philipp Müller [Sat, 23 Jun 2018 22:17:26 +0000 (00:17 +0200)]
gl: Update for g_type_class_add_private() deprecation in recent GLib

6 years agovulkan: Update for g_type_class_add_private() deprecation in recent GLib
Tim-Philipp Müller [Sat, 23 Jun 2018 22:17:26 +0000 (00:17 +0200)]
vulkan: Update for g_type_class_add_private() deprecation in recent GLib

6 years agosoundtouch: Update for g_type_class_add_private() deprecation in recent GLib
Tim-Philipp Müller [Sat, 23 Jun 2018 22:17:26 +0000 (00:17 +0200)]
soundtouch: Update for g_type_class_add_private() deprecation in recent GLib

6 years agodtls: Update for g_type_class_add_private() deprecation in recent GLib
Tim-Philipp Müller [Sat, 23 Jun 2018 22:17:26 +0000 (00:17 +0200)]
dtls: Update for g_type_class_add_private() deprecation in recent GLib

6 years agowebrtc: Update for g_type_class_add_private() deprecation in recent GLib
Tim-Philipp Müller [Sat, 23 Jun 2018 22:17:26 +0000 (00:17 +0200)]
webrtc: Update for g_type_class_add_private() deprecation in recent GLib

6 years agouvch264src: get rid of unnecessary private struct
Tim-Philipp Müller [Sat, 23 Jun 2018 22:07:59 +0000 (00:07 +0200)]
uvch264src: get rid of unnecessary private struct

6 years agojpegformat: get rid of unnecessary private structs
Tim-Philipp Müller [Sat, 23 Jun 2018 21:51:37 +0000 (23:51 +0200)]
jpegformat: get rid of unnecessary private structs

6 years agoext/closedcaption/misc.h: Transform into UTF-8
Olivier Crête [Thu, 21 Jun 2018 12:49:01 +0000 (08:49 -0400)]
ext/closedcaption/misc.h: Transform into UTF-8

6 years agodecklink: Fix warning about HRESULT not being unsigned int
Nirbheek Chauhan [Wed, 20 Jun 2018 06:08:17 +0000 (11:38 +0530)]
decklink: Fix warning about HRESULT not being unsigned int

6 years agotsdemux: Don't set invalid seqnum on segment event
Nicolas Dufresne [Tue, 19 Jun 2018 03:06:18 +0000 (23:06 -0400)]
tsdemux: Don't set invalid seqnum on segment event

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

6 years agopitch: remove trailing whitespaces from previous commit
Mathieu Duponchelle [Mon, 18 Jun 2018 21:42:04 +0000 (23:42 +0200)]
pitch: remove trailing whitespaces from previous commit

6 years agopitch: Flush only if there are unprocessed samples
Suhas Nayak [Mon, 18 Jun 2018 02:09:10 +0000 (07:39 +0530)]
pitch: Flush only if there are unprocessed samples

Otherwise we end up trying to flush before
sample rate of SoundTouch is set

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

6 years agotests: Make sure to provide the KEY_UNIT flag always together with the SNAP flags...
Sebastian Dröge [Mon, 18 Jun 2018 09:18:07 +0000 (12:18 +0300)]
tests: Make sure to provide the KEY_UNIT flag always together with the SNAP flags in seeks

SNAP flags alone make no sense and nowadays cause warnings.

6 years agopitch: preserve seek event seqnums
Mathieu Duponchelle [Sat, 16 Jun 2018 16:23:41 +0000 (18:23 +0200)]
pitch: preserve seek event seqnums

This was wreaking havoc when used with a downstream audiomixer.

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

6 years agopitch: fix latency reporting
Mathieu Duponchelle [Sat, 16 Jun 2018 16:21:58 +0000 (18:21 +0200)]
pitch: fix latency reporting

When max is GST_CLOCK_TIME_NONE in the query, it should not
be set in the query handler, this otherwise could lead to
impossible situations, where the minimum latency ended up
greater than the maximum.

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

6 years agopitch: Fix single input buffer followed by EOS
Mathieu Duponchelle [Sat, 16 Jun 2018 16:19:39 +0000 (18:19 +0200)]
pitch: Fix single input buffer followed by EOS

The flush function immediately returned when pitch->next_buffer_offset
was 0.

This is clearly wrong, as next_buffer_offset can be 0 when a single
input buffer has been received, and no output buffer has been produced
before receiving EOS.

Simply remove that condition.

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

6 years agovideoaggregator: Fix string leak
Seungha Yang [Fri, 15 Jun 2018 13:48:42 +0000 (22:48 +0900)]
videoaggregator: Fix string leak

gst_video_colorimetry_to_string() returns allocated memory which
must be freed.

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

6 years agoandroidmedia: Invert the transform matrix from the decoder
Jan Schmidt [Tue, 6 Mar 2018 13:07:29 +0000 (00:07 +1100)]
androidmedia: Invert the transform matrix from the decoder

The transform from mediacodec applies to the texture coords, but
GStreamer affine meta applies to the video geometry, which is the
opposite - so invert it to get display correct for decoders
that require transforming

6 years agovulkaninstance: add missing precondition to _open()
Matthew Waters [Thu, 8 Feb 2018 06:02:17 +0000 (17:02 +1100)]
vulkaninstance: add missing precondition to _open()

6 years agotsdemux: Don't query duration if program isn't active
Edward Hervey [Tue, 12 Jun 2018 09:14:25 +0000 (11:14 +0200)]
tsdemux: Don't query duration if program isn't active

6 years agogst_webrtc_session_description_new: fix annotations
Mathieu Duponchelle [Mon, 11 Jun 2018 16:34:24 +0000 (18:34 +0200)]
gst_webrtc_session_description_new: fix annotations

6 years agovideoaggregator: log an ERROR if we're going to return a flow error
Tim-Philipp Müller [Mon, 11 Jun 2018 12:48:09 +0000 (13:48 +0100)]
videoaggregator: log an ERROR if we're going to return a flow error

6 years agomsdk: vpp: remove mfxExtVPPDoUse from vpp filters.
Wang,Fei [Thu, 7 Jun 2018 23:31:54 +0000 (15:31 -0800)]
msdk: vpp: remove mfxExtVPPDoUse from vpp filters.

According to msdk spec, there are two ways to enable filters:
1: Filters can be enabled by adding a filter ID
to mfxExtVPPDoUse. In this case, default filter parameters are used
2: Add filter configuration structures directly to mfxVideoParam.

Using 1 with 2 is optional but legal. Unfortunately it won't work
with some specific use cases like Detail/EdgeEnhancement.
Let's stick with option2 which works fine for all VPP operations.

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

6 years agomsdk: vpp: set passthrough from set_caps method for code clarity
Sreerenj Balachandran [Thu, 7 Jun 2018 23:30:23 +0000 (15:30 -0800)]
msdk: vpp: set passthrough from set_caps method for code clarity

Call passthrough setting method from set_caps so that
msdk initialize subroutine looks more clear.

6 years agomskd: vpp: error out gracefully instead of segfaulting if Init failed
Sreerenj Balachandran [Thu, 7 Jun 2018 23:29:29 +0000 (15:29 -0800)]
mskd: vpp: error out gracefully instead of segfaulting if Init failed

Since we do the MSDK initializing in set_caps(), a FALSE
return may still cause the invokation of set_caps() again
and this will leads to buffer allocation and other mess-up.
So make sure the msdk initialized correctly before trying
to do any buffer allocation.

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

6 years agomsdk: vpp: Add filters to VideoParm before doing the Query
Sreerenj Balachandran [Thu, 7 Jun 2018 23:28:44 +0000 (15:28 -0800)]
msdk: vpp: Add filters to VideoParm before doing the Query

Make sure all the enabled filter structures are added in the
mfxVideoParm before doing the VPPQuery so that msdk
can do the input param validation

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