platform/upstream/gst-plugins-base.git
6 years agodocs: add GstAudioAggregator to docs
Tim-Philipp Müller [Tue, 13 Feb 2018 17:10:22 +0000 (17:10 +0000)]
docs: add GstAudioAggregator to docs

6 years agodocs: add audiomixer + audiointerleave to plugin docs
Tim-Philipp Müller [Tue, 13 Feb 2018 16:43:44 +0000 (16:43 +0000)]
docs: add audiomixer + audiointerleave to plugin docs

6 years agodocs: update plugin docs for recent changes
Tim-Philipp Müller [Tue, 13 Feb 2018 16:40:19 +0000 (16:40 +0000)]
docs: update plugin docs for recent changes

6 years agoaudiomixer, audiointerleave: add to build
Tim-Philipp Müller [Tue, 13 Feb 2018 16:38:32 +0000 (16:38 +0000)]
audiomixer, audiointerleave: add to build

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

6 years agoGstAudioAggregator: hook up to build
Tim-Philipp Müller [Tue, 13 Feb 2018 16:09:09 +0000 (16:09 +0000)]
GstAudioAggregator: hook up to build

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

6 years agoaudioaggregator, audiomixer, audiointerleave: move from -bad to -base
Tim-Philipp Müller [Tue, 13 Feb 2018 15:56:49 +0000 (15:56 +0000)]
audioaggregator, audiomixer, audiointerleave: move from -bad to -base

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

6 years agovorbisdec: Improve "new headers while initialized" handling
Edward Hervey [Tue, 13 Feb 2018 07:36:30 +0000 (08:36 +0100)]
vorbisdec: Improve "new headers while initialized" handling

If new headers arrive after we are initialized, we need to make
sure that they are indeed valid.

A vorbis bitstream always begins with three header packets and must
be in order.

Also some streams have unframed (invalid?) headers that might
confuse and disrupt the decoding process.

Therefore if ever we see new headers, we accumulate them and once
we get a non-header packet we check them to make sure that:
* We have at least 3 headers
* They are the expected ones (identification, comments and setup)
* They are in order
* Any other "header" is ignored

If those conditions are met, we reset and reconfigure the decoder

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

6 years agoplaybin3: Re-enable buffering message handling
Edward Hervey [Sat, 10 Feb 2018 14:41:10 +0000 (15:41 +0100)]
playbin3: Re-enable buffering message handling

Buffering messages are only sent for the active group (in case there
is more than one).

If the inactive group posts buffering messages we keep the last one
around and will post it once it becomes the playing one.

6 years agodecodebin3: high cpu usage after eos
François Laignel [Fri, 19 Jan 2018 17:40:53 +0000 (18:40 +0100)]
decodebin3: high cpu usage after eos

After eos, decodebin3 enters a loop sending eos events which causes high cpu usage.

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

6 years agodecodebin3: Handle dual-output of STREAM_START/EOS
Edward Hervey [Fri, 8 Dec 2017 15:46:21 +0000 (16:46 +0100)]
decodebin3: Handle dual-output of STREAM_START/EOS

In order to flush out multiqueue, we send again a STREAM_START and
then a EOS event.

The problem was that was that we might end up pushing out on the
output of multiqueue (and therefore decodebin3) a series of:
* EOS / STREAM_START / EOS

Apart from the uglyness of such output, If decodebin3 is used with
elements such as concat on their output, they might potentially
block on that second STREAM_START.

In order to make sure we don't end up in that situation we send
a custom STREAM_START event when refreshing multiqueue (which we
drop on the output) and we don't special case EOS events on streams
on which we already got EOS.

At worst we now end up sending at most two EOS on the output of
multiqueue (and decodebin3).

6 years agoplaybin3: Implement gapless playback
Edward Hervey [Fri, 10 Nov 2017 13:32:13 +0000 (14:32 +0100)]
playbin3: Implement gapless playback

Similar in vein to the playbin2 architecture except that uridecodebin3
are prerolled much earlier and all streams of the same type are
fed through a 'concat' element.

This keeps the philosphy of having all elements connected as soon
as possible.

The 'about-to-finish' signal is emitted whenever one of the uridecodebin
is about to finish, allowing the users to set the next uri/suburi.

The notion of a group being active has changed. It now means that the
uridecodebin3 has been activated, but doesn't mean it is the one
currently being outputted by the sinks (i.e. curr_group and next_group).
This is done via detecting GST_MESSAGE_STREAM_START emission by playsink
and figuring out which group is really playing.

When the current group changes, a new thread is started to deactivate
the previous one and optionnaly fire 'about-to-finish'.

6 years agoplaybin3: Use uridecodebin3 and link/reconfigure immediately
Edward Hervey [Thu, 9 Nov 2017 10:17:13 +0000 (11:17 +0100)]
playbin3: Use uridecodebin3 and link/reconfigure immediately

Apologies for the big commit, but it wasn't really possible to split it
in anything smaller.

* Switch to uridecodebin3 instead of managing urisourcebin and decodebin3
ourselves. No major architectural change with this.

* Reconfigure sinks/outputs when needed. This is possible thanks to the
various streams-related API. Instead of blocking new pads and waiting
for a (fake) no-more-pads to decide what to connect, we instead reconfigure
playsink and the combiners to whatever types are currently selected. All of
this is done in reconfigure_output().
  New pads are immediately connected to (combiners and) sinks, allowing
immediate negotiation and usage.

* Since elements are always connected, the "cached-duration" feature is gone
and queries can reach the target elements.

* The auto-plugging related code is currently disabled entirely until
we get the new proper API.

* Store collections at the GstSourceGroup level and not globally

* And more comments a bit everywhere

NOTE: gapless is still not functional, but this opens the way to be able
to handle it in a streams-aware fashion (where several uridecodebin3 can
be active at the same time).

6 years agourisourcebin: Add 'about-to-finish' signal
Edward Hervey [Thu, 9 Nov 2017 09:53:24 +0000 (10:53 +0100)]
urisourcebin: Add 'about-to-finish' signal

With push-based sources, urisourcebin will emit this signal when
the stream has been fully consumed.

This signal can be used to know when the source is done providing
data.

6 years agoplayback: New uridecodebin3 element
Edward Hervey [Thu, 9 Nov 2017 09:45:37 +0000 (10:45 +0100)]
playback: New uridecodebin3 element

In the same vein as old uridecodebin except that it also
accepts a suburi and uses urisourcebin and decodebin3 internally

6 years agoplaybin3: Remove wrong 'notify'
Edward Hervey [Thu, 9 Nov 2017 10:16:20 +0000 (11:16 +0100)]
playbin3: Remove wrong 'notify'

Those properties doesn't exist on playbin3, don't emit a notify for that

6 years agoplaybin3: Remove setting 'subtitle-encoding' on decodebin
Edward Hervey [Thu, 9 Nov 2017 10:14:29 +0000 (11:14 +0100)]
playbin3: Remove setting 'subtitle-encoding' on decodebin

That property doesn't exist

6 years agoplaybin3: Clarify documentation of combiner properties
Edward Hervey [Thu, 9 Nov 2017 10:12:08 +0000 (11:12 +0100)]
playbin3: Clarify documentation of combiner properties

6 years agoplaybin3: Remove unused define
Edward Hervey [Thu, 9 Nov 2017 10:11:12 +0000 (11:11 +0100)]
playbin3: Remove unused define

6 years agodecodebin3: Use GST_GROUP_ID_INVALID
Edward Hervey [Thu, 7 Dec 2017 14:23:17 +0000 (15:23 +0100)]
decodebin3: Use GST_GROUP_ID_INVALID

6 years agodecodebin3: Don't forward already-handling SELECT_STREAMS
Edward Hervey [Fri, 10 Nov 2017 14:01:04 +0000 (15:01 +0100)]
decodebin3: Don't forward already-handling SELECT_STREAMS

Upstream might respond negatively to the event, whereas we actually
handled it.

6 years agodecodebin3: Add new about-to-finish signal
Edward Hervey [Fri, 8 Dec 2017 16:01:05 +0000 (17:01 +0100)]
decodebin3: Add new about-to-finish signal

6 years agodecodebin3: Remove unused definition
Edward Hervey [Thu, 9 Nov 2017 09:46:31 +0000 (10:46 +0100)]
decodebin3: Remove unused definition

6 years agodecodebin3: Don't take the lock when creating a new input
Edward Hervey [Wed, 4 Oct 2017 15:42:45 +0000 (17:42 +0200)]
decodebin3: Don't take the lock when creating a new input

We only need to take the input lock when adding/removing
inputs from the list.

6 years agoplaybin3: Remove unused variable
Edward Hervey [Mon, 25 Sep 2017 13:24:08 +0000 (15:24 +0200)]
playbin3: Remove unused variable

The lock is never used

6 years agourisourcebin: Remove auto-plugging signals
Edward Hervey [Thu, 9 Nov 2017 09:52:38 +0000 (10:52 +0100)]
urisourcebin: Remove auto-plugging signals

They were never used and we need a better system

6 years agourisourcebin: Remove ASYNC behaviour
Edward Hervey [Thu, 9 Nov 2017 09:50:30 +0000 (10:50 +0100)]
urisourcebin: Remove ASYNC behaviour

It is not needed in the new streams-aware world

6 years agourisourcebin: Remove 'unknown-type' signal
Edward Hervey [Fri, 22 Sep 2017 15:20:35 +0000 (17:20 +0200)]
urisourcebin: Remove 'unknown-type' signal

It was never used and makes no sense in the new streams-based world

6 years agoplaybin3: Disable autoplug-related code
Edward Hervey [Fri, 22 Sep 2017 15:13:14 +0000 (17:13 +0200)]
playbin3: Disable autoplug-related code

The signals were never emitted from decodebin3. This needs
switching to a new signalling system

6 years agoplaybin3: fix "no-more-pads" handling
Edward Hervey [Fri, 22 Sep 2017 15:09:43 +0000 (17:09 +0200)]
playbin3: fix "no-more-pads" handling

That signal is never emitted by decodebin3 and is handled differently

6 years agoplaybin3: Remove duration caching
Edward Hervey [Fri, 22 Sep 2017 15:04:54 +0000 (17:04 +0200)]
playbin3: Remove duration caching

This is now handled directly via sinks and queries through pads

6 years agoparsebin: Remove async behaviour
Edward Hervey [Wed, 4 Oct 2017 15:41:16 +0000 (17:41 +0200)]
parsebin: Remove async behaviour

There's no reason to do async changing

6 years agoglimagesink: Always display with requested stereo display mode
Jan Schmidt [Fri, 2 Feb 2018 02:02:14 +0000 (13:02 +1100)]
glimagesink: Always display with requested stereo display mode

Even if the input is monoscopic, the app might want to display
it in a different layout, to do side-by-side for VR for example,
so if the app changes the output-multiview-mode always use that.

6 years agotcp/multihandlesink: Handle the case of no caps
Jan Schmidt [Fri, 26 Jan 2018 11:44:24 +0000 (22:44 +1100)]
tcp/multihandlesink: Handle the case of no caps

Pass data with no caps and no streamheaders without
throwing a bunch of criticals

6 years agogl*bin: fix transfer semantics for the create-element signal
Matthew Waters [Fri, 9 Feb 2018 06:15:30 +0000 (17:15 +1100)]
gl*bin: fix transfer semantics for the create-element signal

We can either receive an element that is floating or not and need to
accomodate that in the signal return values.  Do so by removing the
floating flag.

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

6 years agogldownload: remove texture-target field from dmabuf/sysmem caps
Matthew Waters [Fri, 9 Feb 2018 01:32:52 +0000 (12:32 +1100)]
gldownload: remove texture-target field from dmabuf/sysmem caps

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

6 years agomeson: make version numbers ints and fix int/string comparison
Tim-Philipp Müller [Thu, 8 Feb 2018 17:17:51 +0000 (17:17 +0000)]
meson: make version numbers ints and fix int/string comparison

WARNING: Trying to compare values of different types (str, int).
The result of this is undefined and will become a hard error
in a future Meson release.

6 years agogl: g-i: expose platform-specific display API in bindings
Tim-Philipp Müller [Thu, 8 Feb 2018 16:57:53 +0000 (16:57 +0000)]
gl: g-i: expose platform-specific display API in bindings

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

6 years agortspconnection: also add Content-Type to HTTP POST request when tunnelling
Sebastian Cote [Fri, 2 Feb 2018 00:00:23 +0000 (00:00 +0000)]
rtspconnection: also add Content-Type to HTTP POST request when tunnelling

When the GstRTSPConnection class sends a RTSP over HTTP tunnelling
request, the HTTP Content-Type header is missing from the HTTP POST
request.

This isn't a problem with most servers, but there are servers that
rejects the request without there also being a Content-Type header.

RFC 1945:
Any HTTP/1.0 message containing an entity body should include a
Content-Type header field defining the media type of that body.

Apple Dispatch 28:
QuickTime Streaming uses the "application/x-rtsp-tunnelled" MIME
type in both the Content-Type and Accept headers. This reflects
the data type that is expected and delivered by the client and server.

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

6 years agogl: remove more deprecated type aliases
Matthew Waters [Thu, 8 Feb 2018 10:14:56 +0000 (21:14 +1100)]
gl: remove more deprecated type aliases

Additions on top of

https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=32a17f313494cbadaf8ec4e337d742e8d7e1b67b
https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=c8b99139b1ef3f8891548b0f2607a135917c338e

6 years agogl/display/egl: Fix precondition in display_egl_get_from_native
Matthew Waters [Thu, 8 Feb 2018 05:13:23 +0000 (16:13 +1100)]
gl/display/egl: Fix precondition in display_egl_get_from_native

We don't really want type=NONE as input and it was already impossible
for that to occur with the other condtions.

CID #1427144

6 years agovideo: Fix GRAY10_LE32 depth information
Nicolas Dufresne [Wed, 7 Feb 2018 19:48:00 +0000 (14:48 -0500)]
video: Fix GRAY10_LE32 depth information

6 years agovideo: Change struct padding from void* to gpointer
Sebastian Dröge [Wed, 7 Feb 2018 16:40:49 +0000 (18:40 +0200)]
video: Change struct padding from void* to gpointer

gobject-introspection causes inconsistent type information for the
former and we use gpointer everywhere else.

6 years agomeson: Enable libs_video unit test
Nicolas Dufresne [Tue, 6 Feb 2018 21:29:11 +0000 (16:29 -0500)]
meson: Enable libs_video unit test

It does not timeout anymore, even though it's a very slow test. For the
context, this test runs routines for a fixes amount of time and prints
the throughput. Which means the test takes more time everytime a pixel
format is added. If that becomes a problem again, we should disable the
benchmarks by default.

6 years agovideo-format: Fix 10LE32 formats packing function
Nicolas Dufresne [Tue, 6 Feb 2018 21:16:15 +0000 (16:16 -0500)]
video-format: Fix 10LE32 formats packing function

The source offset (soff) was not incremented for each component and then
each group of 3 components were inverted. This was causing a staircase
effect combined with some noise.

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

6 years agoglcontext: remove deprecated type alias
Philippe Normand [Tue, 6 Feb 2018 16:13:07 +0000 (16:13 +0000)]
glcontext: remove deprecated type alias

Now for real without un-needed comments...

6 years agoglcontext: remove deprecated type alias
Philippe Normand [Tue, 6 Feb 2018 16:08:47 +0000 (16:08 +0000)]
glcontext: remove deprecated type alias

6 years agoautotools: use -fno-strict-aliasing where supported
Tim-Philipp Müller [Sun, 4 Feb 2018 10:22:36 +0000 (11:22 +0100)]
autotools: use -fno-strict-aliasing where supported

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

6 years agogl: some annotation fixes
Matthew Waters [Mon, 5 Feb 2018 03:58:06 +0000 (14:58 +1100)]
gl: some annotation fixes

6 years agogl/build/meson: fix gl_api variable names
Matthew Waters [Mon, 5 Feb 2018 03:56:07 +0000 (14:56 +1100)]
gl/build/meson: fix gl_api variable names

6 years agotests: sdp: relicense code snippet from GPLv3 to LGPLv2.1+
Tim-Philipp Müller [Wed, 22 Feb 2017 10:48:55 +0000 (10:48 +0000)]
tests: sdp: relicense code snippet from GPLv3 to LGPLv2.1+

Relicense with approval from Jose and Miguel. Code snippet
was supposed to be LGPL from the beginning.

https://bugzilla.gnome.org/show_bug.cgi?id=697808#c14
https://bugzilla.gnome.org/show_bug.cgi?id=697808#c15

6 years agoglmemory: fixup GL_RGB565 usage when performing texsubimage
Matthew Waters [Wed, 17 Jan 2018 04:24:20 +0000 (15:24 +1100)]
glmemory: fixup GL_RGB565 usage when performing texsubimage

An additional change for the texsubimage use case on top of
https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=c2b2c68beaddbea0ec4fe7b099507cc492f6dd7c
https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=ea6bed111bab9b394d787f7760c6a3b953630d3a

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

6 years agopkgconfig: only install gstreamer-gl-1.0.pc if OpenGL support was built
Tim-Philipp Müller [Thu, 1 Feb 2018 11:21:19 +0000 (11:21 +0000)]
pkgconfig: only install gstreamer-gl-1.0.pc if OpenGL support was built

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

6 years agooggdemux: Handle invalid-sized packets
Edward Hervey [Thu, 1 Feb 2018 09:40:28 +0000 (10:40 +0100)]
oggdemux: Handle invalid-sized packets

On invalid packets there is the possibility we might end up wanting
to trim/offset more than what is available.

oss-fuzz issue #5866

6 years agomeson: use -fno-strict-aliasing if supported
Tim-Philipp Müller [Tue, 30 Jan 2018 20:33:36 +0000 (20:33 +0000)]
meson: use -fno-strict-aliasing if supported

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

6 years agomeson: use built-in pic kwarg when building static helper libs
Tim-Philipp Müller [Tue, 30 Jan 2018 20:32:44 +0000 (20:32 +0000)]
meson: use built-in pic kwarg when building static helper libs

instead of passing -fPIC manually.

6 years agoglimagesink: Allow resetting render rectangle
Nicolas Dufresne [Mon, 29 Jan 2018 12:57:56 +0000 (12:57 +0000)]
glimagesink: Allow resetting render rectangle

As documented, passing -1 to x and/or y should reset the render
rectangle to the window/display size.

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

6 years agoglimagesink: Add render-rectangle property
Nicolas Dufresne [Mon, 29 Jan 2018 12:45:06 +0000 (12:45 +0000)]
glimagesink: Add render-rectangle property

This allow controlling the render rectangle from gst-launch-1.0.

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

6 years agoxvimagesink: Allow changing render-rectangle through property
Nicolas Dufresne [Tue, 23 Jan 2018 20:04:21 +0000 (15:04 -0500)]
xvimagesink: Allow changing render-rectangle through property

This also enables setting the render rectangle before the window
is provided or created.

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

6 years agovideo-overlay: Add helpers for render-rectangle property
Nicolas Dufresne [Mon, 22 Jan 2018 20:40:32 +0000 (15:40 -0500)]
video-overlay: Add helpers for render-rectangle property

This is a set of helper that makes it easy to enable the render
rectangle to be controllable through a property.

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

6 years agovideo: Add NV16_10LE32 support
Nicolas Dufresne [Fri, 3 Nov 2017 16:18:27 +0000 (12:18 -0400)]
video: Add NV16_10LE32 support

This adds a 10 bit variant for NV16 packed into 32 bits little endian
words. The MSB 2 bits are padding. This format is used on Xilinx SoC and
identified with the FOURCC XV20.

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

6 years agovideo: Add GRAY10_LE32 support
Nicolas Dufresne [Fri, 3 Nov 2017 16:11:58 +0000 (12:11 -0400)]
video: Add GRAY10_LE32 support

This add a 10bit variant of gray scale packed into 32bits little endian
words. The MSB 2 bits are padding and should be ignored. This format is
used on Xilinx SoC and is identified with the FOURCC XV10.

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

6 years agovideo: Add NV12_10LE32 support
Nicolas Dufresne [Wed, 1 Nov 2017 21:26:31 +0000 (17:26 -0400)]
video: Add NV12_10LE32 support

This adds a 10bit variant for NV12 which packs 3 10bit components
into little endian 32bit words. The MSB 2 bits are padding and should be
ignored. This format is used on Xilinx SoC and is identified with there
with the FOURCC XV15

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

6 years agosubparse: fix pushing out of last chunk if last line has no newline
Tim-Philipp Müller [Thu, 25 Jan 2018 18:39:11 +0000 (18:39 +0000)]
subparse: fix pushing out of last chunk if last line has no newline

With playbin the last subtitle chunk would not get displayed
if the last chunk was missing a newline at the end. This is
because streamsynchronizer will hold back the EOS event until
the audio and video streams are finished too, so subparse
would never forcefully push out the last chunk until the very
end when it is too late.

We get a STREAM_GROUP_DONE event from streamsynchronizer however,
so handle that like EOS and force out any remaining text then.

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

6 years agogst-plugins-base.supp: add gl suppressions for one off init allocations
Vincent Penquerc'h [Fri, 7 Apr 2017 09:33:40 +0000 (10:33 +0100)]
gst-plugins-base.supp: add gl suppressions for one off init allocations

Add to valgrind suppressions file.

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

6 years agoUpdate for renamed aggregator pad API
Tim-Philipp Müller [Tue, 23 Jan 2018 09:01:00 +0000 (09:01 +0000)]
Update for renamed aggregator pad API

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

6 years agoalsasrc: lock calls to snd_pcm_delay() with mutex as in alsasink
Branislav Katreniak [Fri, 20 Mar 2015 08:41:05 +0000 (09:41 +0100)]
alsasrc: lock calls to snd_pcm_delay() with mutex as in alsasink

Alsasrc introduced delay_lock in commit 519f85a43e73efb8f3fb2c7be45226e
because alsa-lib is not thread safe for the same handle.
Alsasrc uses the same threading pattern, it should be locked too.

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

6 years agotag: id3v2: don't leak stack pointer outside of block where it's valid
Tim-Philipp Müller [Fri, 19 Jan 2018 20:43:57 +0000 (20:43 +0000)]
tag: id3v2: don't leak stack pointer outside of block where it's valid

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

6 years agotests: audioconvert: fix up check for lost channel positions
Tim-Philipp Müller [Fri, 19 Jan 2018 18:50:07 +0000 (18:50 +0000)]
tests: audioconvert: fix up check for lost channel positions

The caps field is channel-mask these days, so that code path
was never active.

6 years agotests: audioconvert: Fix memory leak in failure path
Jimmy Ohn [Mon, 5 Jun 2017 05:08:33 +0000 (14:08 +0900)]
tests: audioconvert: Fix memory leak in failure path

Don't set a bad example by leaking things, even if calling
g_error() will make the process abort.

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

6 years agotheoradec: Check for valid width/height
Edward Hervey [Wed, 17 Jan 2018 13:35:11 +0000 (14:35 +0100)]
theoradec: Check for valid width/height

If width or height are zero ... there's no video :)

6 years agoplayback-utils: Fix caps leak on failure
Ashish Kumar [Tue, 31 Oct 2017 09:34:47 +0000 (15:04 +0530)]
playback-utils: Fix caps leak on failure

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

6 years agotests: fix build on Windows with MSVC
Tim-Philipp Müller [Tue, 16 Jan 2018 20:13:45 +0000 (20:13 +0000)]
tests: fix build on Windows with MSVC

6 years agomeson: tests: fix build of tcp test on unix
Tim-Philipp Müller [Tue, 16 Jan 2018 19:22:16 +0000 (19:22 +0000)]
meson: tests: fix build of tcp test on unix

Need to add gio-unix-2.0 dep to pipelines/tcp test otherwise it
won't find the gio/gunixfdmessage.h header which is not in the
same dir as the other gio headers. This issue was masked before
because we didn't include config.h so HAVE_GIO_UNIX_2_0
wasn't defined.

6 years agomeson: tests: skip allocators dmabuf test on non-Linux
Tim-Philipp Müller [Tue, 16 Jan 2018 19:21:53 +0000 (19:21 +0000)]
meson: tests: skip allocators dmabuf test on non-Linux

6 years agotests: include config.h and don't include unix headers
Tim-Philipp Müller [Tue, 16 Jan 2018 18:14:59 +0000 (18:14 +0000)]
tests: include config.h and don't include unix headers

In many cases the unistd.h includes weren't actually needed.

Don't build tests that need it on windows with MSVC
(multifdsink, multisocketsink, pipelines/tcp).

Preparation for making tests work on Windows with MSVC.

6 years agomeson: gl: fix build on windows
Roland Peffer [Tue, 16 Jan 2018 13:59:08 +0000 (13:59 +0000)]
meson: gl: fix build on windows

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

6 years agomeson: fix check whether both gles2 and opengl headers can be included
Tim-Philipp Müller [Tue, 16 Jan 2018 11:25:29 +0000 (11:25 +0000)]
meson: fix check whether both gles2 and opengl headers can be included

cc.compiles() doesn't support the prefix: kwarg currently, so it
never had any effect.

https://github.com/mesonbuild/meson/issues/2364
https://bugzilla.gnome.org/show_bug.cgi?id=787964

6 years agovideotestsrc: Document the num-buffers property
Sam Thursfield [Mon, 23 Jan 2017 14:30:20 +0000 (14:30 +0000)]
videotestsrc: Document the num-buffers property

It's not obvious from the existing docs that this option exists, nor
that it can be used to give a pipeline an exact length in video frames.

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

6 years agoexamples: playback: don't use deprecated font button API
Tim-Philipp Müller [Mon, 8 Jan 2018 14:21:29 +0000 (14:21 +0000)]
examples: playback: don't use deprecated font button API

playback-test.c:2587:3: error: "gtk_font_button_get_font_name" is deprecated

6 years agogl/wayland: move roundtrip on show to window thread
Matthew Waters [Thu, 4 Jan 2018 04:33:33 +0000 (15:33 +1100)]
gl/wayland: move roundtrip on show to window thread

This makes it thread safe and fixes a possible deadlock.

Keeping the roundtrip off the window thread will result in two different
threads call wl_display_dispatch_queue() for the same queue which
violates the assumption for _dispatch_queue()'s thread-safety
guarantees.

https://bugzilla.gnome.org/show_bug.cgi?id=788754
https://bugzilla.gnome.org/show_bug.cgi?id=792156
https://bugzilla.gnome.org/show_bug.cgi?id=758984

6 years agotypefind: Fix mp3 typefinding with multiple different headers
Edward Hervey [Wed, 3 Jan 2018 14:31:04 +0000 (15:31 +0100)]
typefind: Fix mp3 typefinding with multiple different headers

(yes, this has never worked since it was introduced, don't worry)

If we want to actually detect layer/channels/samplerate changes,
it would be better to:
* not reset the various prev_* variables at every iteration.
* and actually store the values when they change

CID #206079
CID #206080
CID #206081

6 years agolibs/glheaders: move object creation to the gl thread where necessary
Matthew Waters [Wed, 3 Jan 2018 12:11:54 +0000 (23:11 +1100)]
libs/glheaders: move object creation to the gl thread where necessary

Some GL platforms (EGL, WGL) require deactivating the OpenGL context in
one thread before it can be used in another thread which this test
currently violates and would e.g. result in EGL_BAD_ACCESS errors from
gst_gl_context_activate().

Fix by moving the object creation into the GL thread instead and not
requiring additional gst_gl_context_activate() calls.

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

6 years agotests/glheaders: use #if for platform selection
Matthew Waters [Wed, 3 Jan 2018 12:09:20 +0000 (23:09 +1100)]
tests/glheaders: use #if for platform selection

GST_GL_HAVE_* are always defined to 0 or 1 so an #ifdef will always
succeed which is not the intention here.

6 years agoglcolorconvert: re-enable -Wformat-nonliteral warning
Tim-Philipp Müller [Fri, 22 Dec 2017 22:11:42 +0000 (23:11 +0100)]
glcolorconvert: re-enable -Wformat-nonliteral warning

We can pass string constants here to g_strdup_printf(),
so do so and re-enable the -Wformat-nonliteral warning
we had to disable when merging the opengl libs.

6 years agoglcolorconvert: fix missing printf arg for apple rectangular texture case
Tim-Philipp Müller [Wed, 3 Jan 2018 09:15:34 +0000 (09:15 +0000)]
glcolorconvert: fix missing printf arg for apple rectangular texture case

Found by -Wformat-nonliteral (to be re-enabled in a separate commit).

6 years agoconfigure: Fix build without gl plugins
Edward Hervey [Wed, 3 Jan 2018 07:47:58 +0000 (08:47 +0100)]
configure: Fix build without gl plugins

The AM_CONDITIONAL always need to be evaluated, regardless of
whether we are building with or without gl plugins (the actual
checks are only called in AG_GST_GL_PLUGIN_CHECKS).

6 years agogl: cocoa: fix formatting for function definition
Philippe Normand [Sat, 30 Dec 2017 12:29:13 +0000 (12:29 +0000)]
gl: cocoa: fix formatting for function definition

This is a follow-up of 5d35e1fa15744b48c406fffa98695478fc8c9969

6 years agogl: cocoa: Implement set_render_rectangle
Philippe Normand [Tue, 26 Dec 2017 13:23:11 +0000 (13:23 +0000)]
gl: cocoa: Implement set_render_rectangle

Resize the internal NSView according to the provided render rectangle.

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

6 years agogl: don't link to system gstallocators
Tim-Philipp Müller [Tue, 26 Dec 2017 14:35:35 +0000 (15:35 +0100)]
gl: don't link to system gstallocators

We already link to the in-tree gstallocators, no need
to link to it again here, which also ends up being the
system gstallocators lib.

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

6 years agomeson: skip translations if gettext is not available
Tim-Philipp Müller [Tue, 26 Dec 2017 12:49:25 +0000 (13:49 +0100)]
meson: skip translations if gettext is not available

6 years agomeson: gl: define HAVE_PNG etc. in config.h instead of c_args
Tim-Philipp Müller [Fri, 22 Dec 2017 21:28:20 +0000 (22:28 +0100)]
meson: gl: define HAVE_PNG etc. in config.h instead of c_args

So that the tests have access to them as well (gl-launch-lines.c)

6 years agortp: fix gst_rtp_buffer_ext_timestamp taking into account backwards
Miguel Paris [Mon, 5 Jun 2017 16:11:42 +0000 (18:11 +0200)]
rtp: fix gst_rtp_buffer_ext_timestamp taking into account backwards

If timestamp goes forwards more than allowed, we consider that the
timestamp belongs to the previous counting, so the extended timestamp
is unwrapped.

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

6 years agotests: add missing comma
Mathieu Duponchelle [Thu, 21 Dec 2017 18:32:03 +0000 (19:32 +0100)]
tests: add missing comma

6 years agotests: conditionally define the glimagesink test as well
Mathieu Duponchelle [Thu, 21 Dec 2017 18:28:00 +0000 (19:28 +0100)]
tests: conditionally define the glimagesink test as well

Forgotten in previous commit

6 years agotests: fix build when not building gstgl
Mathieu Duponchelle [Thu, 21 Dec 2017 18:24:20 +0000 (19:24 +0100)]
tests: fix build when not building gstgl

gstgl_dep is only defined when build_gstgl is true

6 years agomeson: docs: link gtk-doc scanner with gstgl
Tim-Philipp Müller [Wed, 20 Dec 2017 23:47:33 +0000 (23:47 +0000)]
meson: docs: link gtk-doc scanner with gstgl

6 years agogl: fix build if libjpeg is not available
Tim-Philipp Müller [Wed, 20 Dec 2017 16:01:38 +0000 (16:01 +0000)]
gl: fix build if libjpeg is not available

If libjpeg is not available, leave HAVE_JPEG undefined in
config.h, instead of defining it to 0. Fixes mismatch between
autotools conditional and ifdefs in the code.

6 years agoaudioaggregator: Don't leak pads
Edward Hervey [Wed, 20 Dec 2017 14:02:30 +0000 (15:02 +0100)]
audioaggregator: Don't leak pads

all audioaggregator subclasses were leaking the first sink pad :)

6 years agoaudioaggregator: implement input conversion
Mathieu Duponchelle [Sat, 22 Jul 2017 18:32:20 +0000 (20:32 +0200)]
audioaggregator: implement input conversion

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

6 years agogl: fix up a few more #if HAVE_FOO
Tim-Philipp Müller [Tue, 19 Dec 2017 16:51:24 +0000 (16:51 +0000)]
gl: fix up a few more #if HAVE_FOO

error: "HAVE_PNG" is not defined, evaluates to 0 [-Werror=undef]