platform/upstream/gst-plugins-base.git
6 years agooggstream: Use proper type for sample calculation
Edward Hervey [Sun, 5 Nov 2017 11:16:13 +0000 (12:16 +0100)]
oggstream: Use proper type for sample calculation

If we are going to return a (potentially) 64bit integer, don't use
a 32bit one for calculation, otherwise we could end up exceeding
the maximum size of a 32bit int.

6 years agooggstream: More fixes for invalid granuleshift
Edward Hervey [Sun, 5 Nov 2017 11:15:33 +0000 (12:15 +0100)]
oggstream: More fixes for invalid granuleshift

Don't use granuleshift if it wasn't set

6 years agodiscoverer: Don't switch to PLAYING if we saw an error
Edward Hervey [Sat, 4 Nov 2017 18:48:13 +0000 (19:48 +0100)]
discoverer: Don't switch to PLAYING if we saw an error

If we saw an error on the bus, we can't be guaranteed that element will
function properly anyway. Avoids weird state change races also

6 years agoRevert "discoverer: Avoid race of adding elements while stopping"
Edward Hervey [Sat, 4 Nov 2017 18:08:40 +0000 (19:08 +0100)]
Revert "discoverer: Avoid race of adding elements while stopping"

This reverts commit 9a8cb299702c6e8c01b5f4a366f7cffc6b13f97a.

The problem is deeper down the stack

6 years agortcpbuffer: fix left shift override
Edward Hervey [Sat, 4 Nov 2017 15:56:10 +0000 (16:56 +0100)]
rtcpbuffer: fix left shift override

Needs to be cast to the target type

6 years agodiscoverer: Avoid race of adding elements while stopping
Edward Hervey [Sat, 4 Nov 2017 15:13:06 +0000 (16:13 +0100)]
discoverer: Avoid race of adding elements while stopping

This would result in a lot of warnings regarding elements not being
in NULL state when removed, or even leaked elements.

Instead make sure we take the lock and check whether we are processing
or not before allocating or adding anything to the pipeline

6 years agovideotestsrc: Fix undefined left shift
Edward Hervey [Sat, 4 Nov 2017 11:19:46 +0000 (12:19 +0100)]
videotestsrc: Fix undefined left shift

Cast value to target type

6 years agovideo-converter: Fix undefined left shift
Edward Hervey [Sat, 4 Nov 2017 11:18:39 +0000 (12:18 +0100)]
video-converter: Fix undefined left shift

Cast value to target type

6 years agooggstream: Fix default granuleshift usage
Edward Hervey [Sat, 4 Nov 2017 10:29:52 +0000 (11:29 +0100)]
oggstream: Fix default granuleshift usage

For stream mappers that don't set a specific granuleshift, it will
have the default value of -1.

Protect the code for that and return the granule value as-is

6 years agooggdemux: Protect against invalid granule positions
Edward Hervey [Sat, 4 Nov 2017 10:28:47 +0000 (11:28 +0100)]
oggdemux: Protect against invalid granule positions

Only valid values are -1, 0 or positive values. Anything else is
most likely corrupted data streams

6 years agocodecutils: improve input validation in opus header parsing
Mathieu Duponchelle [Fri, 3 Nov 2017 16:20:44 +0000 (17:20 +0100)]
codecutils: improve input validation in opus header parsing

Invalid input files do not warrant assertions. Instead
output error messages and let the error bubble up.

6 years agosdpmessage: add_attribute accepts NULL value
Justin Kim [Wed, 1 Nov 2017 02:23:17 +0000 (11:23 +0900)]
sdpmessage: add_attribute accepts NULL value

The attribute can be defined without value regardless session-level
or media-level.
Although `gst_sdp_message_insert_attribute` can be used to set NULL,
it would be easier if `gst_sdp_message_add_attribute` accepts NULL.

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

6 years agotypefind: Fix out-of-bound read in PNM typefinder
Edward Hervey [Thu, 2 Nov 2017 14:14:49 +0000 (15:14 +0100)]
typefind: Fix out-of-bound read in PNM typefinder

6 years agovorbistag: Fix previous comment
Edward Hervey [Thu, 2 Nov 2017 09:40:37 +0000 (10:40 +0100)]
vorbistag: Fix previous comment

We already NULL-ended the string, don't use the bogus cur_size

6 years agotypefindfunctions: fix off-by-one in webvtt typefinder
Tim-Philipp Müller [Thu, 2 Nov 2017 09:05:47 +0000 (09:05 +0000)]
typefindfunctions: fix off-by-one in webvtt typefinder

We're also checking the byte after the WEBVTT magic.

6 years agoriff-media: Handle strf_data being NULL
Edward Hervey [Thu, 2 Nov 2017 08:19:21 +0000 (09:19 +0100)]
riff-media: Handle strf_data being NULL

Instead of trying to get the size of a NULL buffer :)

6 years agovorbistag: Check whether tag name is valid
Edward Hervey [Thu, 2 Nov 2017 07:18:26 +0000 (08:18 +0100)]
vorbistag: Check whether tag name is valid

In the same way we check before whether the content of the tag
is UTF-8

6 years agodiscoverer: Check return values
Edward Hervey [Thu, 2 Nov 2017 07:04:27 +0000 (08:04 +0100)]
discoverer: Check return values

The target pad of a ghostpad could have gone (due to shutdown taking
place for example). Check for it's existence before doing anything
with it.

6 years agodecodebin2: Recheck shutdown behaviour in error case
Edward Hervey [Thu, 2 Nov 2017 06:55:16 +0000 (07:55 +0100)]
decodebin2: Recheck shutdown behaviour in error case

If we can expose the main chain, recheck whether we are shutting
down or not.

decodebin2 might have been set to READY/NULL during the attempt
to expose, which would cause it to fail ... but it is not a fatal
issue.

6 years agodiscoverer: Uniquely name elements
Edward Hervey [Thu, 2 Nov 2017 06:18:17 +0000 (07:18 +0100)]
discoverer: Uniquely name elements

Helps identifying actual queue/fakesink usage. There seems to be
a race in discoverer, this should help track it down.

6 years agooggdemux: Only track time for initialized streams
Edward Hervey [Wed, 1 Nov 2017 17:26:20 +0000 (18:26 +0100)]
oggdemux: Only track time for initialized streams

in push-mode we only can track time (or most operations on streams
for that matter) if the underlying GstOggMap was properly initialized.

6 years agooggstream: Add a default GstOggMap
Edward Hervey [Wed, 1 Nov 2017 17:24:11 +0000 (18:24 +0100)]
oggstream: Add a default GstOggMap

Since the default value of a GstOggPad.map.map was 0 ... we would
end up using wrong functions from mappers() if the stream wasn't
initialized yet.

Instead of that, use a default blank/empty first entry.

6 years agortspconnection: Allow setting a custom accept-certificate function for manually check...
Sebastian Dröge [Mon, 17 Jul 2017 14:07:26 +0000 (17:07 +0300)]
rtspconnection: Allow setting a custom accept-certificate function for manually checking a TLS certificate for validity

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

6 years agoogmparse: Ensure we don't create bogus fractions
Edward Hervey [Wed, 1 Nov 2017 10:19:58 +0000 (11:19 +0100)]
ogmparse: Ensure we don't create bogus fractions

The clamping of the fraction denominator was bogus (it needs to
be >0)

6 years agooggdemux: Fix chain leak in push mode
Edward Hervey [Wed, 1 Nov 2017 10:18:12 +0000 (11:18 +0100)]
oggdemux: Fix chain leak in push mode

In some corner cases we end up with the building chain not being
properly tracked (and therefore not properly freed).

Add a FIXME so it can later be fixed, but for now just fix the leak

6 years agovorbistag: Fix leak in error case
Edward Hervey [Wed, 1 Nov 2017 09:53:54 +0000 (10:53 +0100)]
vorbistag: Fix leak in error case

Don't leak the vendor_string on error cases

6 years agoogmparse: Error out if we can't figure out the format
Edward Hervey [Wed, 1 Nov 2017 09:31:28 +0000 (10:31 +0100)]
ogmparse: Error out if we can't figure out the format

In some cases we might not be able to figure out the fixed format
from the header.

Properly error out in those cases.

6 years agortcpbuffer: Add XR type
Justin Kim [Wed, 1 Nov 2017 04:52:50 +0000 (13:52 +0900)]
rtcpbuffer: Add XR type

RTCP XR provides supplements information of the report blocks
from SR and RR. This patch is for downgrading warnings when
XR is detected before implementing entire block types of RFC3611.

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

6 years agosdpmessage: do not append NULL value for session-level attr
Justin Kim [Wed, 1 Nov 2017 03:44:59 +0000 (12:44 +0900)]
sdpmessage: do not append NULL value for session-level attr

If an attribute is defined without value, the generated text
should be 'a=key' rather than 'a=key:'. For media-level, it
has already been done.

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

6 years agoUpdate disted orc file
Edward Hervey [Tue, 31 Oct 2017 10:56:22 +0000 (11:56 +0100)]
Update disted orc file

For latest orc fixes

6 years agoogg: Don't add tags to empty taglist
Edward Hervey [Tue, 31 Oct 2017 09:34:26 +0000 (10:34 +0100)]
ogg: Don't add tags to empty taglist

6 years agotypefind: Use GST_READ_UINT32 macros
Edward Hervey [Mon, 30 Oct 2017 10:10:11 +0000 (11:10 +0100)]
typefind: Use GST_READ_UINT32 macros

Avoids undefined behaviour with shifting

6 years agotypefind: Fix out-of-bound memory access
Edward Hervey [Mon, 30 Oct 2017 07:55:48 +0000 (08:55 +0100)]
typefind: Fix out-of-bound memory access

We were not checking the proper amount of available data in several
places

6 years agoaudioconvert: Fix empty mix matrix documentation typo
Vivia Nikolaidou [Fri, 27 Oct 2017 15:29:40 +0000 (18:29 +0300)]
audioconvert: Fix empty mix matrix documentation typo

6 years agodecodebin3: Allow configure output stream without reassign slot
Seungha Yang [Thu, 16 Mar 2017 11:55:44 +0000 (20:55 +0900)]
decodebin3: Allow configure output stream without reassign slot

By select-streams event, current implementation of decodebin3
supports deactivate output stream (i.e., decoder element)
in reassign slot(), but cannot activate any slot without track change.

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

6 years agoplaybin3: Use STREAMS_SELECTED message to update selected stream types
Seungha Yang [Thu, 16 Mar 2017 10:53:11 +0000 (19:53 +0900)]
playbin3: Use STREAMS_SELECTED message to update selected stream types

Application might choose only specific type among all available types
using select-streams event. In this case, it is desired that reconfigure
of playsink to clear unused stream path.

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

6 years agogst-play: Prevent disabling all streams
Edward Hervey [Fri, 27 Oct 2017 07:51:29 +0000 (09:51 +0200)]
gst-play: Prevent disabling all streams

This would have bad effects :)

6 years agogst-play: Support track change on playbin3
Seungha Yang [Thu, 16 Mar 2017 08:52:04 +0000 (17:52 +0900)]
gst-play: Support track change on playbin3

* playbin3 does not support {current,n}-{audio,video,text}
properties, and they were replaced by GstStreams API.
So, GstStreams API and select-stream event should be used
for track change in case of playbin3.
see also https://bugzilla.gnome.org/show_bug.cgi?id=769079

* By using commend line option "--use-playbin3", gst-play will
use playbin3 regardless of "USE_PLAYBIN" env variable.

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

6 years agoaudioconvert: document passing an empty mix-matrix
Mathieu Duponchelle [Thu, 26 Oct 2017 16:05:31 +0000 (18:05 +0200)]
audioconvert: document passing an empty mix-matrix

6 years agocheck: Fix minor leak
Edward Hervey [Thu, 26 Oct 2017 13:55:32 +0000 (15:55 +0200)]
check: Fix minor leak

6 years agooggdemux: Don't forget to reacquire lock when needed
Edward Hervey [Thu, 26 Oct 2017 08:07:15 +0000 (10:07 +0200)]
oggdemux: Don't forget to reacquire lock when needed

Fixup to ef93130cf04143fcf675b05ce0d19eddfbac4e75

I overlooked the issue. There is a case when the lock is released
and we need to reacquire it

6 years agolibgstvideo.def: add new definitions
Mathieu Duponchelle [Wed, 25 Oct 2017 15:45:44 +0000 (17:45 +0200)]
libgstvideo.def: add new definitions

6 years agovideoencoder: add qos property
Guillaume Desmottes [Wed, 25 Oct 2017 09:41:02 +0000 (11:41 +0200)]
videoencoder: add qos property

This new property control if the encoder base class should gather QoS
stats and if subclasses should use them by dropping late frames.

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

6 years agogst-plugins-base: gstaudiochannels: Handled buffer mapping failure
Ashish Kumar [Wed, 25 Oct 2017 07:17:40 +0000 (12:47 +0530)]
gst-plugins-base: gstaudiochannels: Handled buffer mapping failure

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

6 years agooggdemux: Don't drop sticky events
Edward Hervey [Tue, 24 Oct 2017 09:05:20 +0000 (11:05 +0200)]
oggdemux: Don't drop sticky events

Previous commit was wrong. We should still send all events to the
pad (so that sticky events get attached to it and sent when pad
gets added).

6 years agooggdemux: Improve handling of EOS without source pads
Edward Hervey [Tue, 24 Oct 2017 08:56:00 +0000 (10:56 +0200)]
oggdemux: Improve handling of EOS without source pads

We might have a chain to use, but it might not have any active pads

Properly detect that and send an error message on EOS

6 years agoRevert "videoencoder: flush encoder in transition PAUSED->READY"
Matthew Waters [Sat, 21 Oct 2017 14:00:10 +0000 (01:00 +1100)]
Revert "videoencoder: flush encoder in transition PAUSED->READY"

This reverts commit 877664a414a466cfcc71c79d28c470722408c9a7.

6 years agoRevert "videodecoder: flush decoder in transition PAUSED->READY"
Matthew Waters [Sat, 21 Oct 2017 14:00:08 +0000 (01:00 +1100)]
Revert "videodecoder: flush decoder in transition PAUSED->READY"

This reverts commit 6e9edc3031935ce8d6640d9774a7c093d20d4366.

6 years agoRevert "audioencoder: flush encoder in transition PAUSED->READY"
Matthew Waters [Sat, 21 Oct 2017 14:00:06 +0000 (01:00 +1100)]
Revert "audioencoder: flush encoder in transition PAUSED->READY"

This reverts commit 2dcdd13512e788797d03f9990994eecdd339ca0e.

6 years agoRevert "audiodecoder: flush decoder in transition PAUSED->READY"
Matthew Waters [Sat, 21 Oct 2017 14:00:03 +0000 (01:00 +1100)]
Revert "audiodecoder: flush decoder in transition PAUSED->READY"

This reverts commit e7cf4c058ddd466a797623b5ddf162c263d07059.

6 years agowin32: update exports file
Edward Hervey [Sat, 21 Oct 2017 08:37:48 +0000 (10:37 +0200)]
win32: update exports file

6 years agooggdemux: Error out on EOS if we have no chains to use
Edward Hervey [Fri, 20 Oct 2017 16:40:42 +0000 (18:40 +0200)]
oggdemux: Error out on EOS if we have no chains to use

There are not active and pending chains, if we get EOS we need to
inform the user via an error message

6 years agooggdemux: Don't double lock
Edward Hervey [Fri, 20 Oct 2017 16:40:02 +0000 (18:40 +0200)]
oggdemux: Don't double lock

The lock was already taken just before this block and is released after

6 years agovideoencoder: flush encoder in transition PAUSED->READY
Nicola Murino [Thu, 28 Sep 2017 11:17:05 +0000 (13:17 +0200)]
videoencoder: flush encoder in transition PAUSED->READY

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

6 years agovideoencoder: remove the lock from gst_video_encoder_flush
Nicola Murino [Thu, 28 Sep 2017 11:12:58 +0000 (13:12 +0200)]
videoencoder: remove the lock from gst_video_encoder_flush

The lock is already taken before calling the flush method and can lead to
deadlock for some encoders that need to take the same lock from another
thread while flushing

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

6 years agovideodecoder: flush decoder in transition PAUSED->READY
Nicola Murino [Wed, 27 Sep 2017 14:08:10 +0000 (16:08 +0200)]
videodecoder: flush decoder in transition PAUSED->READY

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

6 years agoaudioencoder: flush encoder in transition PAUSED->READY
Nicola Murino [Wed, 27 Sep 2017 14:32:13 +0000 (16:32 +0200)]
audioencoder: flush encoder in transition PAUSED->READY

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

6 years agoaudiodecoder: flush decoder in transition PAUSED->READY
Nicola Murino [Wed, 27 Sep 2017 14:41:51 +0000 (16:41 +0200)]
audiodecoder: flush decoder in transition PAUSED->READY

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

6 years agovideoencoder: implement QoS
Guillaume Desmottes [Thu, 21 Sep 2017 13:18:10 +0000 (15:18 +0200)]
videoencoder: implement QoS

It allows encoders to detect and drop input frames which are already
late to increase the chance of the pipeline to catch up.

The QoS logic and code is directly copied from gstvideodecoder.c.

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

6 years agovideoencoder test: properly name the encoder variable
Guillaume Desmottes [Thu, 21 Sep 2017 14:52:29 +0000 (16:52 +0200)]
videoencoder test: properly name the encoder variable

The element is an encoder so calling it 'dec' makes things confusing.

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

6 years agodoc: Add some missing/malformed Since markers
Thibault Saunier [Mon, 16 Oct 2017 12:16:31 +0000 (14:16 +0200)]
doc: Add some missing/malformed Since markers

6 years agoaudioconvert: allow empty mix matrix
Mathieu Duponchelle [Wed, 11 Oct 2017 16:03:20 +0000 (18:03 +0200)]
audioconvert: allow empty mix matrix

When an empty mix matrix is passed, audio-channel-mixer
will now generate a (potentially truncated) identity matrix,
this replicates the behaviour of audiomixmatrix in first-channels
mode.

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

6 years agoReorder win32 defs
Mathieu Duponchelle [Wed, 11 Oct 2017 20:14:28 +0000 (22:14 +0200)]
Reorder win32 defs

6 years agodiscoverer: output channel positions
Mathieu Duponchelle [Tue, 13 Jun 2017 00:18:19 +0000 (02:18 +0200)]
discoverer: output channel positions

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

6 years agodiscoverer: output whether the uri is live
Mathieu Duponchelle [Tue, 13 Jun 2017 00:32:09 +0000 (02:32 +0200)]
discoverer: output whether the uri is live

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

6 years agoAPI: gst_discoverer_info_get_live
Mathieu Duponchelle [Tue, 13 Jun 2017 00:25:31 +0000 (02:25 +0200)]
API: gst_discoverer_info_get_live

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

6 years agoAPI: gst_discoverer_audio_info_get_channel_mask
Mathieu Duponchelle [Mon, 12 Jun 2017 23:40:44 +0000 (01:40 +0200)]
API: gst_discoverer_audio_info_get_channel_mask

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

6 years agoopusenc: Allow unpositioned channels.
Mathieu Duponchelle [Mon, 9 Oct 2017 16:13:27 +0000 (18:13 +0200)]
opusenc: Allow unpositioned channels.

The input will be treated as a set of mono channels,
and the channel-mapping-family will be set to 255
(no defined channel meaning)

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

6 years agoaudio-converter: remove unused mix_matrix private field
Mathieu Duponchelle [Wed, 11 Oct 2017 14:57:28 +0000 (16:57 +0200)]
audio-converter: remove unused mix_matrix private field

6 years agotests: appsink: fix compiler warning and typo in struct name
Tim-Philipp Müller [Sat, 7 Oct 2017 13:20:54 +0000 (14:20 +0100)]
tests: appsink: fix compiler warning and typo in struct name

elements/appsink.c:624:3: warning: missing braces around initializer
with gcc 4.8.4

6 years agortsp: Start implementing support for RTSP 2.0
Thibault Saunier [Thu, 20 Apr 2017 20:42:17 +0000 (17:42 -0300)]
rtsp: Start implementing support for RTSP 2.0

Properly handle protocol version in the connection

Add the following headers types:
  * Pipelined-Request
  * Media-Properties
  * Seek-Style
  * Accept-Ranges

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

6 years agomeson: remove vs_module_defs
Havard Graff [Wed, 4 Oct 2017 12:17:59 +0000 (14:17 +0200)]
meson: remove vs_module_defs

GST_EXPORT should handle it.

6 years agomeson: Add some missing args and dependencies in the gir generation
Rico Tzschichholz [Thu, 5 Oct 2017 12:28:42 +0000 (14:28 +0200)]
meson: Add some missing args and dependencies in the gir generation

6 years agoUse proper GtkDoc notation for NULL/FALSE/TRUE
Reynaldo H. Verdejo Pinochet [Tue, 3 Oct 2017 21:31:18 +0000 (14:31 -0700)]
Use proper GtkDoc notation for NULL/FALSE/TRUE

6 years agomeson: Add mssing GstBase-1.0 include in the gir generation
Thibault Saunier [Fri, 29 Sep 2017 00:56:22 +0000 (21:56 -0300)]
meson: Add mssing GstBase-1.0 include in the gir generation

6 years agoaudio: Fix unit test after changed GstAudioStreamAlign constructor signature
Sebastian Dröge [Thu, 28 Sep 2017 11:29:03 +0000 (14:29 +0300)]
audio: Fix unit test after changed GstAudioStreamAlign constructor signature

6 years agoaudio: Add stream align API for getting timestamp at discont and number of samples...
Sebastian Dröge [Wed, 13 Sep 2017 13:23:26 +0000 (16:23 +0300)]
audio: Add stream align API for getting timestamp at discont and number of samples since discont

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

6 years agoaudio: Add reverse playback support to GstAudioStreamAlign
Sebastian Dröge [Tue, 12 Sep 2017 13:03:44 +0000 (16:03 +0300)]
audio: Add reverse playback support to GstAudioStreamAlign

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

6 years agoaudio: Add helper object for audio discontinuity detection and sample alignment
Sebastian Dröge [Mon, 11 Sep 2017 19:49:32 +0000 (22:49 +0300)]
audio: Add helper object for audio discontinuity detection and sample alignment

This is the same code that is in decklinkaudiosrc, audioringbuffer,
audiomixer and various other places. Have it once instead of copying it
everywhere.

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

6 years agoalsasink: Fix Memory leak in payload not succuss case
Ponnam Srinivas [Mon, 25 Sep 2017 05:12:33 +0000 (10:42 +0530)]
alsasink: Fix Memory leak in payload not succuss case

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

6 years agoaudioconvert: [API]: expose mix-matrix property.
Mathieu Duponchelle [Tue, 15 Aug 2017 00:39:54 +0000 (02:39 +0200)]
audioconvert: [API]: expose mix-matrix property.

This obsoletes audiomixmatrix

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

6 years ago[API]: GST_AUDIO_CONVERTER_OPT_MIX_MATRIX
Mathieu Duponchelle [Thu, 27 Jul 2017 17:31:48 +0000 (19:31 +0200)]
[API]: GST_AUDIO_CONVERTER_OPT_MIX_MATRIX

Taken from audiomixmatrix, credits to Vivia Nikolaidou

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

6 years ago[API]: gst_audio_channel_mixer_new_with_matrix
Mathieu Duponchelle [Mon, 14 Aug 2017 23:29:57 +0000 (01:29 +0200)]
[API]: gst_audio_channel_mixer_new_with_matrix

+ Refactor previous constructor to call on that new constructor

+ Reimplement is_passthrough to strictly check whether the matrix
  is an identity matrix, comparing channel-masks was incorrect:
  the mixer may be remixing from a list of positions to the same
  list of positions, but ordered differently, and reciprocally,
  the mixer may be remixing from a list of positions to another
  list of positions identically ordered

+ Remove unused tmp field, must have been a refactoring leftover

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

6 years agoaudioconvert: refactor format removal.
Mathieu Duponchelle [Mon, 14 Aug 2017 22:20:40 +0000 (00:20 +0200)]
audioconvert: refactor format removal.

remove_format_info was a bit confusing to read, this removes
it in favor of standard gst_caps_map_in_place calls.

This no longer simplifies the resulting caps, but I
consider this should be the job of basetransform.

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

6 years agoappsink: on drain wait for buffers to be consumed
Julien Isorce [Thu, 24 Aug 2017 09:02:31 +0000 (10:02 +0100)]
appsink: on drain wait for buffers to be consumed

So that an upstream element can claim all buffers to return to its buffer pool.

Added unit test 'test_query_drain'
  make elements/appsink.check

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

6 years agoappsink: also clear preroll buffer in _pull_sample
Julien Isorce [Mon, 18 Sep 2017 16:06:32 +0000 (17:06 +0100)]
appsink: also clear preroll buffer in _pull_sample

If someone calls gst_app_sink_try_pull_sample they are
probably no longer interested in any preroll samples.

Useful if the user has not registered a preroll appsink callback.

Also added unit test 'test_do_not_care_preroll'
  make elements/appsink.check
that fails without this patch.

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

6 years agoappsink: unref preroll buffer upon pull
Julien Isorce [Tue, 29 Aug 2017 08:47:51 +0000 (09:47 +0100)]
appsink: unref preroll buffer upon pull

There is no reason for appsink to hang onto the preroll buffer.
If needed, the application can just keep a ref on this buffer
after calling gst_app_sink_try_pull_preroll.

Also added unit test 'test_pull_preroll'
  make elements/appsink.check

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

6 years agoappsink: rename GstBuffer *preroll to preroll_buffer
Julien Isorce [Wed, 13 Sep 2017 13:06:43 +0000 (14:06 +0100)]
appsink: rename GstBuffer *preroll to preroll_buffer

priv->preroll can be confused with basesink_class->preroll

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

6 years agotests: playbin-complex: skip test that needs oggdemux if it's not available
Tim-Philipp Müller [Sun, 10 Sep 2017 15:32:31 +0000 (16:32 +0100)]
tests: playbin-complex: skip test that needs oggdemux if it's not available

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

6 years agoRequest minimum buffer even if need_pool is FALSE
Nicolas Dufresne [Wed, 6 Sep 2017 17:55:13 +0000 (13:55 -0400)]
Request minimum buffer even if need_pool is FALSE

When tee is used, it will not request a pool, but still it wants to
know how many buffers are required.

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

6 years agovideo-filter: Support allocation pool with pool object
Nicolas Dufresne [Wed, 6 Sep 2017 17:53:42 +0000 (13:53 -0400)]
video-filter: Support allocation pool with pool object

This is used to indicate upstream the requirement in buffers
while no buffer pool can be provided. In this case, only
configure the pool with caps/size/min/max if we have caps,
which we only parsed when there was no allocation pool.

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

6 years agovideo/affinetransformationmeta: use the provided doc comment for the struct
Matthew Waters [Thu, 24 Aug 2017 09:11:29 +0000 (19:11 +1000)]
video/affinetransformationmeta: use the provided doc comment for the struct

6 years agoplaybin: ref_sink() sink rather than pointer to sink
Mark Nauwelaerts [Sun, 20 Aug 2017 10:09:52 +0000 (12:09 +0200)]
playbin: ref_sink() sink rather than pointer to sink

6 years agoAutomatic update of common submodule
Tim-Philipp Müller [Thu, 17 Aug 2017 11:23:18 +0000 (12:23 +0100)]
Automatic update of common submodule

From 29046b8 to 3f4aa96

6 years agovideoutilsprivate: fill more video fields.
Mathieu Duponchelle [Fri, 11 Aug 2017 18:53:21 +0000 (20:53 +0200)]
videoutilsprivate: fill more video fields.

__gst_video_element_proxy_caps is called by
__gst_video_element_proxy_getcaps with caps set to the caps
allowed downstream. As we didn't set colorimetry or
chroma-site on the resulting caps, upstream considered it
possible to use whatever values it wanted, leading to
not negotiated errors later on.

As the description for that function is:
"Takes caps and copies its video fields to tmpl_caps",
it seems legitimate to set these fields there.

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

6 years agoappsrc: handle duration query only if the property was set
Philippe Normand [Sat, 12 Aug 2017 14:46:28 +0000 (15:46 +0100)]
appsrc: handle duration query only if the property was set

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

6 years agodecodebin3/urisourcebin: Switch to actual EOS events internally
Edward Hervey [Wed, 9 Aug 2017 14:23:03 +0000 (16:23 +0200)]
decodebin3/urisourcebin: Switch to actual EOS events internally

Use the intended sequence for re-using elements:
* EOS
* STREAM_START if element is to be re-used

This avoids having elements (such as queue/multiqueue/queue2) not
properly resetting themselves.

When delaying EOS propagation (because we want to wait until all
streams of a group are done for example), we re-trigger them by
first sending the cached STREAM_START and then EOS (which will
cause elements to re-set themselves if needed and accept new
buffers/events).

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

6 years agomeson: hide symbols by default unless explicitly exported
Tim-Philipp Müller [Thu, 10 Aug 2017 13:00:21 +0000 (14:00 +0100)]
meson: hide symbols by default unless explicitly exported

6 years agopbutils: sprinkle more GST_EXPORT
Tim-Philipp Müller [Thu, 10 Aug 2017 12:57:26 +0000 (13:57 +0100)]
pbutils: sprinkle more GST_EXPORT

6 years agolibs: add some more missing GST_EXPORT
Tim-Philipp Müller [Thu, 10 Aug 2017 09:27:23 +0000 (10:27 +0100)]
libs: add some more missing GST_EXPORT