platform/upstream/gstreamer.git
7 years agoaggregator: fix header formatting
Tim-Philipp Müller [Sat, 29 Jul 2017 15:54:38 +0000 (16:54 +0100)]
aggregator: fix header formatting

7 years agogl: document missing GstGLShader functions
Matthew Waters [Fri, 28 Jul 2017 15:58:38 +0000 (16:58 +0100)]
gl: document missing GstGLShader functions

7 years agogl/docs: some documentation updates
Matthew Waters [Fri, 28 Jul 2017 10:00:12 +0000 (11:00 +0100)]
gl/docs: some documentation updates

Add some missing/incomplete docs

7 years agogl/docs: correctly name our objects in the documentation GstGl -> GstGL
Matthew Waters [Wed, 26 Jul 2017 09:04:09 +0000 (19:04 +1000)]
gl/docs: correctly name our objects in the documentation GstGl -> GstGL

7 years agogl/docs: document GstGLFormat enum
Matthew Waters [Wed, 26 Jul 2017 09:03:15 +0000 (19:03 +1000)]
gl/docs: document GstGLFormat enum

7 years agocurl: curlqueue: add symbol name to avoid confusing gtkdoc
Reynaldo H. Verdejo Pinochet [Thu, 27 Jul 2017 00:22:31 +0000 (17:22 -0700)]
curl: curlqueue: add symbol name to avoid confusing gtkdoc

7 years agocurlhttpsrc: do not check for NULL before g_free()
Reynaldo H. Verdejo Pinochet [Wed, 26 Jul 2017 23:51:50 +0000 (16:51 -0700)]
curlhttpsrc: do not check for NULL before g_free()

g_free() is NULL-safe.

7 years agocurlhttpsrc: Fix flagged Coverity errors
Sam Hurst [Wed, 26 Jul 2017 16:06:17 +0000 (17:06 +0100)]
curlhttpsrc: Fix flagged Coverity errors

Fixes CIDs 1415707 - 1415717

7 years agocurl: Reorganise header files to fix macOS builds
Sam Hurst [Wed, 26 Jul 2017 16:43:19 +0000 (17:43 +0100)]
curl: Reorganise header files to fix macOS builds

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

7 years agoaudioaggregator: use local var
Stefan Sauer [Sun, 23 Jul 2017 11:26:23 +0000 (13:26 +0200)]
audioaggregator: use local var

Instead of the self->priv-> deref use the local var we created already.

7 years agocurlhttpsrc: Fix compilation without debugging system enabled
Edward Hervey [Wed, 26 Jul 2017 07:19:42 +0000 (09:19 +0200)]
curlhttpsrc: Fix compilation without debugging system enabled

7 years agocurl: Add curlhttpsrc element
Sam Hurst [Tue, 25 Jul 2017 14:23:57 +0000 (15:23 +0100)]
curl: Add curlhttpsrc element

Merged from https://github.com/bbc/gst-curlhttpsrc commit
  f8aabcfc5c50a44f3362de831377d6e86dcd2d49

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

7 years agokmsallocator: add driver pitch support for planar formats
Guillaume Desmottes [Mon, 17 Jul 2017 14:07:21 +0000 (16:07 +0200)]
kmsallocator: add driver pitch support for planar formats

We used to to handle the driver pitch only for single plan video format.
Add support for multi planes format by re-using the extrapolate function
from the v4l2 element.
Also use this pitch to calculate the proper offsets.

Prevent DRM drivers to pick a slow path if the pitches/offsets don't
match the ones it reported.

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

7 years agokmsallocator: inline gst_kms_allocator_alloc_empty()
Guillaume Desmottes [Mon, 17 Jul 2017 13:58:57 +0000 (15:58 +0200)]
kmsallocator: inline gst_kms_allocator_alloc_empty()

No semantic change, just renamed the 'tmp' variable to a more meaningful
name and to use the same structure as in gst_kms_allocator_bo_alloc().

Needed as I'm going to move the gst_memory_init() call after the
allocation of the DUMB buffer.

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

7 years agomxfdemux: Fix compilation with gcc 4.8.4
Sebastian Dröge [Tue, 25 Jul 2017 07:03:25 +0000 (10:03 +0300)]
mxfdemux: Fix compilation with gcc 4.8.4

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

7 years agoaggregator: Remove the GAP event from the queue before queueing up the GAP buffer
Sebastian Dröge [Mon, 24 Jul 2017 15:38:57 +0000 (18:38 +0300)]
aggregator: Remove the GAP event from the queue before queueing up the GAP buffer

Otherwise check_events() will not remove the GAP event (as the queue
tail is not the event anymore but the GAP buffer), then the GAP buffer
is handled, then the GAP event is handled again, ... forever.

7 years agomxfdemux: Correctly consider frame reordering for timecode calculation
Sebastian Dröge [Mon, 24 Jul 2017 14:00:02 +0000 (17:00 +0300)]
mxfdemux: Correctly consider frame reordering for timecode calculation

7 years agomxfdemux: Use material track edit rate for component PTS offsetting
Sebastian Dröge [Mon, 24 Jul 2017 13:54:22 +0000 (16:54 +0300)]
mxfdemux: Use material track edit rate for component PTS offsetting

7 years agomxfdemux: Output timecodes for video streams
Sebastian Dröge [Mon, 24 Jul 2017 13:49:19 +0000 (16:49 +0300)]
mxfdemux: Output timecodes for video streams

7 years agomxfdemux: Keep track of component start positions and material track positions
Sebastian Dröge [Mon, 24 Jul 2017 13:21:31 +0000 (16:21 +0300)]
mxfdemux: Keep track of component start positions and material track positions

This allows us to know exactly where in the material track we are, and
how to convert from a PTS for a source track to the actual PTS of the
material track (i.e. by adding the component start position).

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

7 years agotsmux: Fix make distcheck
Sebastian Dröge [Fri, 21 Jul 2017 09:28:23 +0000 (12:28 +0300)]
tsmux: Fix make distcheck

7 years agogl: fix g-i annotations for glframebuffer
Tim-Philipp Müller [Fri, 21 Jul 2017 07:43:45 +0000 (08:43 +0100)]
gl: fix g-i annotations for glframebuffer

gstglframebuffer.c:176: Error: GstGL: annotations not supported for tag "Since:".

7 years agotsmux: Add mpegtsmux_jpeg2000.c to meson.build
Sebastian Dröge [Fri, 21 Jul 2017 06:33:54 +0000 (09:33 +0300)]
tsmux: Add mpegtsmux_jpeg2000.c to meson.build

7 years agotsmux: Store PES payload size in a 32 bit integer
Sebastian Dröge [Fri, 21 Jul 2017 06:27:20 +0000 (09:27 +0300)]
tsmux: Store PES payload size in a 32 bit integer

While the size in the packet is only 16 bits, we need to handle bigger
sizes without overflowing. For video streams this can happen, 0 is
written to the stream instead.

This fixes muxing of buffers >= 2**16.

7 years agotsmux/tsdemux: Add support for JPEG2000
Aaron Boxer [Wed, 19 Jul 2017 14:14:21 +0000 (10:14 -0400)]
tsmux/tsdemux: Add support for JPEG2000

Based on patches by Milos Seleceni.

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

7 years agod3dsinkwrapper: Make the DLL name match the plugin name
Nicolas Dufresne [Thu, 20 Jul 2017 14:29:18 +0000 (10:29 -0400)]
d3dsinkwrapper: Make the DLL name match the plugin name

Otherwise, since 1.12, the plugin gets blacklisted.

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

7 years agodecklink: Fix building with MSYS2's MinGW
Nirbheek Chauhan [Thu, 20 Jul 2017 12:39:15 +0000 (18:09 +0530)]
decklink: Fix building with MSYS2's MinGW

Reported and tested by Philippe Renon.

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

7 years agomeson: fix potentially undefined shm_deps variable
Alessandro Decina [Thu, 20 Jul 2017 08:51:53 +0000 (18:51 +1000)]
meson: fix potentially undefined shm_deps variable

7 years agomeson: make smoothstreaming depend on gio
Alessandro Decina [Thu, 20 Jul 2017 08:43:11 +0000 (18:43 +1000)]
meson: make smoothstreaming depend on gio

7 years agomeson: specify fallback for libgmodule_dep
Alessandro Decina [Thu, 20 Jul 2017 07:49:59 +0000 (17:49 +1000)]
meson: specify fallback for libgmodule_dep

Fixes build with glib built as a subproject.

7 years agodecklink: Fix format specifier warnings in logging v2
Nirbheek Chauhan [Tue, 18 Jul 2017 22:49:34 +0000 (04:19 +0530)]
decklink: Fix format specifier warnings in logging v2

HRESULT is unsigned long on Windows, but the Decklink headers define
it to 'int' on Linux. Confusingly, the defines that talk about the
possible return values for it use long constants. The easy fix would
be to change the linux/LinuxCOM.h header, but that's copied from the
decklink SDK.

Change the logging to always upcast to unsigned long while printing
HRESULT for consistency across platforms.

7 years agodecklink: Fix CI failure due to missing WINAPI definition
Nirbheek Chauhan [Tue, 18 Jul 2017 22:44:13 +0000 (04:14 +0530)]
decklink: Fix CI failure due to missing WINAPI definition

WINAPI is for the windows calling convention to use, and should expand
to nothing on Linux.

https://build.gnome.org/continuous/buildmaster/builds/2017/07/18/76/build/log-gst-plugins-bad.txt

7 years agodecklink: Fix format specifier warnings in logging
Nirbheek Chauhan [Tue, 18 Jul 2017 20:51:42 +0000 (02:21 +0530)]
decklink: Fix format specifier warnings in logging

gstdecklinkvideosrc.cpp:425:7: warning: format '%x' expects argument of type 'unsigned int', but argument 8 has type 'HRESULT {aka long int}' [-Wformat]

[and so on]

7 years agodecklink: Fix build on mingw32 by adding missing WINAPI
Nirbheek Chauhan [Tue, 18 Jul 2017 20:49:47 +0000 (02:19 +0530)]
decklink: Fix build on mingw32 by adding missing WINAPI

gstdecklinkaudiosink.cpp:155:19: error: conflicting type attributes specified for 'virtual HRESULT GStreamerAudioOutputCallback::QueryInterface(const IID&, void**)'
In file included from /var/lib/jenkins/workspace/cerbero-cross-mingw32/workdir/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw32/include/objbase.h:153:0,
                 from /var/lib/jenkins/workspace/cerbero-cross-mingw32/workdir/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw32/include/ole2.h:16,
                 from /var/lib/jenkins/workspace/cerbero-cross-mingw32/workdir/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw32/include/windows.h:94,
                 from /var/lib/jenkins/workspace/cerbero-cross-mingw32/workdir/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw32/include/rpc.h:16,
                 from win/DeckLinkAPI.h:27,
                 from gstdecklink.h:35,
                 from gstdecklinkaudiosink.h:27,
                 from gstdecklinkaudiosink.cpp:25:
/var/lib/jenkins/workspace/cerbero-cross-mingw32/workdir/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw32/include/unknwn.h:67:25: error:   overriding 'virtual HRESULT IUnknown::QueryInterface(const IID&, void**)'

(and many more)

https://ci.gstreamer.net/job/cerbero-cross-mingw32/6407/console

7 years agovideo: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 18 Jul 2017 11:46:09 +0000 (12:46 +0100)]
video: mark symbols explicitly for export with GST_EXPORT

7 years agouridownloader: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 18 Jul 2017 11:45:14 +0000 (12:45 +0100)]
uridownloader: mark symbols explicitly for export with GST_EXPORT

7 years agoplayer: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 18 Jul 2017 11:43:26 +0000 (12:43 +0100)]
player: mark symbols explicitly for export with GST_EXPORT

7 years agoopencv: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 18 Jul 2017 00:16:28 +0000 (01:16 +0100)]
opencv: mark symbols explicitly for export with GST_EXPORT

7 years agompegts: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 18 Jul 2017 00:10:56 +0000 (01:10 +0100)]
mpegts: mark symbols explicitly for export with GST_EXPORT

7 years agophotography: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 17 Jul 2017 23:49:41 +0000 (00:49 +0100)]
photography: mark symbols explicitly for export with GST_EXPORT

7 years agoinsertbin: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 17 Jul 2017 23:23:09 +0000 (00:23 +0100)]
insertbin: mark symbols explicitly for export with GST_EXPORT

7 years agocodecparsers: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Sat, 20 May 2017 12:19:07 +0000 (13:19 +0100)]
codecparsers: mark symbols explicitly for export with GST_EXPORT

7 years agobasecamerabinsrc: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 17 Jul 2017 23:31:36 +0000 (00:31 +0100)]
basecamerabinsrc: mark symbols explicitly for export with GST_EXPORT

7 years agoaggregator: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 17 Jul 2017 23:30:51 +0000 (00:30 +0100)]
aggregator: mark symbols explicitly for export with GST_EXPORT

7 years agoaudio: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 17 Jul 2017 23:29:56 +0000 (00:29 +0100)]
audio: mark symbols explicitly for export with GST_EXPORT

7 years agoallocators: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 17 Jul 2017 23:27:54 +0000 (00:27 +0100)]
allocators: mark symbols explicitly for export with GST_EXPORT

7 years agoadaptivedemux: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 17 Jul 2017 23:26:23 +0000 (00:26 +0100)]
adaptivedemux: mark symbols explicitly for export with GST_EXPORT

7 years agowebvttenc: Change src pad template to application/x-subtitle-vtt
Seungha Yang [Mon, 10 Jul 2017 07:39:49 +0000 (16:39 +0900)]
webvttenc: Change src pad template to application/x-subtitle-vtt

Use consistent mime-type with subparse element for webvtt format

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

7 years agodashdemux: Add support webvtt subtitle stream
Seungha Yang [Sun, 9 Jul 2017 05:34:21 +0000 (14:34 +0900)]
dashdemux: Add support webvtt subtitle stream

Enable exposing webvtt subtitle streams.

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

7 years agoopenh264enc: set GST_PARAM_MUTABLE_PLAYING for bitrate/max-bitrate properties
Nicola Murino [Mon, 17 Jul 2017 22:52:03 +0000 (00:52 +0200)]
openh264enc: set GST_PARAM_MUTABLE_PLAYING for bitrate/max-bitrate properties

This way is documented that these properties can be changed in any state

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

7 years agoopenh264enc: allow to dynamically change bitrate
Nicola Murino [Mon, 17 Jul 2017 22:49:12 +0000 (00:49 +0200)]
openh264enc: allow to dynamically change bitrate

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

7 years agoopenh264enc: fix indentation
Nicola Murino [Mon, 17 Jul 2017 22:36:27 +0000 (00:36 +0200)]
openh264enc: fix indentation

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

7 years agocruft: add ext/gsettings to the cruft list
Stefan Sauer [Mon, 17 Jul 2017 17:29:39 +0000 (19:29 +0200)]
cruft: add ext/gsettings to the cruft list

7 years agojpeg2000parse: support 2-component images
Aaron Boxer [Tue, 11 Jul 2017 14:09:02 +0000 (10:09 -0400)]
jpeg2000parse: support 2-component images

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

7 years agojpeg2000parse: initial support for JP2 format
Aaron Boxer [Sat, 24 Jun 2017 15:18:06 +0000 (11:18 -0400)]
jpeg2000parse: initial support for JP2 format

This is a simple way of supporting JP2 : we treat is as JPC, and throw
away header info.

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

7 years agojpeg2000parse: Parse colorimetry, interlace-mode, field-order, multiview-mode and...
Aaron Boxer [Thu, 6 Jul 2017 19:14:57 +0000 (15:14 -0400)]
jpeg2000parse: Parse colorimetry, interlace-mode, field-order, multiview-mode and chroma-site

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

7 years agogsm: unmap output buffer when done
Satya Prakash Gupta [Thu, 13 Jul 2017 07:47:57 +0000 (13:17 +0530)]
gsm: unmap output buffer when done

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

7 years agomeson: Fix GLES2 check
Edward Hervey [Mon, 17 Jul 2017 06:06:22 +0000 (08:06 +0200)]
meson: Fix GLES2 check

On systems without pkg-config, we have the the library present but
not the headers

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

7 years agoglwindow_cocoa: fix video overlay support
Philippe Normand [Sat, 15 Jul 2017 16:25:36 +0000 (17:25 +0100)]
glwindow_cocoa: fix video overlay support

Make sure the window handle is configured after the NSWindow was created.

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

7 years agogl/cocoa: keep refs over async operations
Matthew Waters [Sat, 15 Jul 2017 15:17:04 +0000 (01:17 +1000)]
gl/cocoa: keep refs over async operations

Avoids dereferencing dead objects

What happens in the autovideosink case is that context 1 is created and
destroyed before all the async operations hae executed on the associated
window.  When the delayed operations execute, they then reference dead
objects and crash.

We fix this by keeping refs over all async operations so the object
cannot be deleted while async operations are in flight.

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

7 years agogl/window/x11: implement set_render_rectangle support
Matthew Waters [Fri, 14 Jul 2017 15:24:52 +0000 (01:24 +1000)]
gl/window/x11: implement set_render_rectangle support

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

7 years agotests: audiomixer: set all properties at once
Stefan Sauer [Sat, 15 Jul 2017 19:28:38 +0000 (21:28 +0200)]
tests: audiomixer: set all properties at once

7 years agotests: audiomixer: use the buffer helper for other tests too
Stefan Sauer [Sat, 15 Jul 2017 17:33:21 +0000 (19:33 +0200)]
tests: audiomixer: use the buffer helper for other tests too

7 years agomeson: add translations
Tim-Philipp Müller [Sat, 15 Jul 2017 11:52:38 +0000 (12:52 +0100)]
meson: add translations

7 years agodvb: src: consolidate tuning stats gathering
Reynaldo H. Verdejo Pinochet [Thu, 29 Jun 2017 21:35:40 +0000 (14:35 -0700)]
dvb: src: consolidate tuning stats gathering

Additionally: drop unneeded fe_fd variable.

7 years agoaudiomixer: document caps negotiation raciness
Tim-Philipp Müller [Fri, 14 Jul 2017 12:54:31 +0000 (13:54 +0100)]
audiomixer: document caps negotiation raciness

Until we land conversion support in audioaggregator (#773762).

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

7 years agodecklink: Add autotools support on Windows
Nirbheek Chauhan [Fri, 14 Jul 2017 08:44:38 +0000 (14:14 +0530)]
decklink: Add autotools support on Windows

Also add a missing windows file to EXTRA_DIST

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

7 years agopkgconfig: missing GL_CFLAGS in gstreamer-gl-uninstalled.pc.in
Julien Isorce [Fri, 7 Jul 2017 15:33:42 +0000 (16:33 +0100)]
pkgconfig: missing GL_CFLAGS in gstreamer-gl-uninstalled.pc.in

Already present in gstreamer-gl.pc.in

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

7 years agoaudiomixer: add a helper for buffer creation
Stefan Sauer [Fri, 14 Jul 2017 06:09:25 +0000 (08:09 +0200)]
audiomixer: add a helper for buffer creation

This makes the test setup easier to read.

7 years agoaggregator: remove duplicated code fragment
Stefan Sauer [Thu, 13 Jul 2017 20:00:58 +0000 (22:00 +0200)]
aggregator: remove duplicated code fragment

This code already runs above when (event || query).

7 years agoaggregator: code cleanups
Stefan Sauer [Thu, 13 Jul 2017 19:55:55 +0000 (21:55 +0200)]
aggregator: code cleanups

Fix comment typos, some copy'n'paste in logging. Add more doc comments.

7 years agoaudiomixer: use test helper once more
Stefan Sauer [Thu, 13 Jul 2017 19:54:55 +0000 (21:54 +0200)]
audiomixer: use test helper once more

7 years agoadaptivedemux: Workaround for live seek ranges when advancing
Edward Hervey [Thu, 13 Jul 2017 10:57:12 +0000 (12:57 +0200)]
adaptivedemux: Workaround for live seek ranges when advancing

This is a workaround for a regression introduced by
f4190a49c04f1d5d174cebba0bc9a03a7ec721c2
 ( adaptivedemux: Check live seeking range more often )

The goal of the previous commit was to be able to cope with non-1.0
rates on live streams which have a "seeking window" (i.e. the server
keeps around quite a bit of the live stream so you can seek back into
it).

Without that commit, two different kind of issues would happen:
* When doing reverse playback, you would never check whether you
  are outside of the seekable region. And would then continuously
  try to download fragments that are no longer present.
* When doing fast forward, you would end up requesting fragments
  which are not present yet.

In order to determine whether one was *really* outside of the seekable
window, we check whether the current stream position is still
within the seekable region.

The *problem* though with that commit is that it assumes that subclasses
will return continuously updated seeking ranges (i.e. dependent on the
current time), which is *NOT* the case.

For example:
* dashdemux does use the current UTC to determine the seekable region
* hlsdemux uses the values from the last updated manifest

Therefore if one downloads fragments faster than realtime, for HLS
we would end up at the end of the last manifest seekable range, and
the previous commit would consider the stream as being ended... which
is not the case.

In the long run, we need to figure out a way to cope with non-1.0
rates on live streams for all types of stream (including HLS).

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

7 years agodashdemux: update manifest streams correctly if pads aren't exposed
Thiago Santos [Tue, 30 May 2017 05:47:10 +0000 (22:47 -0700)]
dashdemux: update manifest streams correctly if pads aren't exposed

In some cases, it is possible that we need to update the manifest before
pads have been exposed at all. If there are no current pads, just expose
the next prepared streams. This doesn't handle the case where a manifest
update would happen while a live streams is changing periods, which is a
type of use case that we're unaware of real usages yet.

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

7 years agoadaptivedemux: small refactor to avoid repeated code
Thiago Santos [Sat, 13 May 2017 22:17:57 +0000 (15:17 -0700)]
adaptivedemux: small refactor to avoid repeated code

Move segment event update to a function

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

7 years agoadaptivedemux: Handle prepared streams on seeks
Edward Hervey [Tue, 9 May 2017 09:41:49 +0000 (11:41 +0200)]
adaptivedemux: Handle prepared streams on seeks

This is a race that was exposed by the {hls|dash}.scrub_forward_seeking
validate test.

The "race" is that a subclass might want to change format, causing
a new stream to be created (but not exposed/switched yet) and put on the
prepared_streams list. That stream will have values (including pending
segment) from the pre-seek state.

Before the stream is exposed/switched, a new seek comes in and the stream
values get updated ... but the ones that will be changed don't get updated
causing them to push out wrong segments once they are exposed.

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

7 years agoqt: Use a proxy object for access to the QML widget
Jan Schmidt [Wed, 12 Jul 2017 05:29:32 +0000 (15:29 +1000)]
qt: Use a proxy object for access to the QML widget

QML can destroy the video widget at any time, leaving
us with a dangling pointer. Use a lock and a proxy
object to cope with that, and block in the widget
destructor if there are ongoing calls into the widget.

7 years agoglfilter: Remove hard-coded pad templates
Jan Schmidt [Thu, 6 Jul 2017 11:09:50 +0000 (21:09 +1000)]
glfilter: Remove hard-coded pad templates

Add a function to install the default RGBA pad templates,
but don't make them required so that there can be
GstGLFilter sub-classes with different input/output
caps if they want. Remove the hard-coded RGBA restriction in
the set_caps_features call, as it will be taken care
of by intersecting with the pad templates.

Update all the sub-classes to match

7 years agoglupload: Don't throw assertions on invalid allocation query
Jan Schmidt [Fri, 7 Jul 2017 04:41:17 +0000 (14:41 +1000)]
glupload: Don't throw assertions on invalid allocation query

basesrc can send an allocation query with no caps, in which
case we should just fail it without throwing assertions.

7 years agomxfdemux: Create index table arrays with a big enough size
Sebastian Dröge [Tue, 11 Jul 2017 17:54:25 +0000 (20:54 +0300)]
mxfdemux: Create index table arrays with a big enough size

7 years agomxfdemux: Initialize index table entries completely in all cases
Sebastian Dröge [Tue, 11 Jul 2017 17:53:22 +0000 (20:53 +0300)]
mxfdemux: Initialize index table entries completely in all cases

When seeking backwards into a previously unseen location, we wouldn't
fully initialize them and playback would fail later.

7 years agoopenexr: Header are not C++11, force C++98
Olivier Crête [Tue, 11 Jul 2017 16:43:46 +0000 (12:43 -0400)]
openexr: Header are not C++11, force C++98

7 years agodecklinkvideosrc: Add custom memory allocator
Georg Lippitsch [Fri, 12 May 2017 12:39:54 +0000 (14:39 +0200)]
decklinkvideosrc: Add custom memory allocator

The default memory allocator of the decklink library allocates
a fixed pool of buffers, and the number of buffers is unknown.
This makes it impossible do useful queuing downstream. The new
memory allocator can create an unlimited number of buffers,
giving all queuing features one would expect from a live source.

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

7 years agodirectsoundsrc: Properly pass pLockedBuffer by reference when calling IDirectSoundCap...
Philippe Renon [Mon, 10 Jul 2017 15:35:32 +0000 (17:35 +0200)]
directsoundsrc: Properly pass pLockedBuffer by reference when calling IDirectSoundCaptureBuffer_Lock

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

7 years agoaudiomixer: more test cleanups
Stefan Sauer [Mon, 10 Jul 2017 19:08:09 +0000 (21:08 +0200)]
audiomixer: more test cleanups

Port over the test helpers from the adder tests.

7 years agoaudiomixer: refactor test
Stefan Sauer [Mon, 10 Jul 2017 18:16:10 +0000 (20:16 +0200)]
audiomixer: refactor test

Apply cleanups from the adder tests. Use a fixture for common code.

7 years agovulkan: Use the generated version of vkconfig.h
Jussi Kukkonen [Wed, 5 Jul 2017 08:07:05 +0000 (11:07 +0300)]
vulkan: Use the generated version of vkconfig.h

Build fails in ext/vulkan/xcb and ext/vulkan/wayland when:
* building from tarball
* building out-of-tree
* Only one WSI integration (xcb or wayland) is enabled by configure.ac
This is because vkconfig.h from source directory gets used instead
of the generated one.

Add the correct build directory to "-I". Use angle bracket
include in vkapi.h so that it actually looks in the include search
path instead of defaulting to the same (source tree) directory.

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

7 years agovkdisplay: Use ifdef for platform specific defines
Jussi Kukkonen [Wed, 5 Jul 2017 08:00:42 +0000 (11:00 +0300)]
vkdisplay: Use ifdef for platform specific defines

VK_KHR_*_SURFACE_EXTENSION_NAME are only available when corresponding
WSI is enabled.

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

7 years agokmssink: initialize variable
Víctor Manuel Jáquez Leal [Mon, 10 Jul 2017 11:27:40 +0000 (13:27 +0200)]
kmssink: initialize variable

Otherwise clang complains:

gstkmssink.c:1192:7: warning: variable 'buf' is used uninitialized
whenever 'if' condition is true [-Wsometimes-uninitialized]

7 years agoopenjpegdec: support grayscale with alpha channel
Aaron Boxer [Tue, 13 Jun 2017 03:36:05 +0000 (23:36 -0400)]
openjpegdec: support grayscale with alpha channel

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

7 years agojpeg2000parse: allow parsing when current caps are null
Aaron Boxer [Mon, 12 Jun 2017 13:47:49 +0000 (09:47 -0400)]
jpeg2000parse: allow parsing when current caps are null

In this case, we assume that the format is jpc, and we infer the color
space from the number of components. This allows the parser to process a
jpc disk file coming from a filesrc element.

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

7 years agompegdemux: segment seek flag is not relevant when checking for EOS
Mark Nauwelaerts [Sun, 2 Jul 2017 09:55:13 +0000 (11:55 +0200)]
mpegdemux: segment seek flag is not relevant when checking for EOS

It is only relevant in deciding whether or not send SEGMENT_DONE.
In this case, not detecting EOS leads to a busy loop when encountering
the originally recorded end-of-file of a file that is still growing.

7 years agoRevert "adaptivedemux: Allow application to force EOS"
Nicolas Dufresne [Fri, 7 Jul 2017 21:20:38 +0000 (17:20 -0400)]
Revert "adaptivedemux: Allow application to force EOS"

This reverts commit 8a070cf9aff8a122b1a52597441bab61c0476ef9.

7 years agokmssink: Track cached kmsmem and clear them on drain
Nicolas Dufresne [Fri, 7 Jul 2017 16:13:27 +0000 (12:13 -0400)]
kmssink: Track cached kmsmem and clear them on drain

In this patch we keep track of the cached kmsmem in a way
that we can clear the cache during the drain process. This
release the framebuffer before waiting for the next vblank,
hence add support for DRM driver (like Intel one) that release
the associated DMABuf reference asynchronously.

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

7 years agokmssink: Move kmsmem cache code higher
Nicolas Dufresne [Fri, 7 Jul 2017 16:12:38 +0000 (12:12 -0400)]
kmssink: Move kmsmem cache code higher

This will be needed as this API will be used elsewhere to clear
the cache.

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

7 years agokmssink: drop last rendered buffer on ALLOCATION and DRAIN queries
Nicolas Dufresne [Thu, 18 May 2017 09:54:31 +0000 (11:54 +0200)]
kmssink: drop last rendered buffer on ALLOCATION and DRAIN queries

kmssink keeps a reference on the last rendered buffer. If this buffer
refers to an upstream buffer, it should be should be released on DRAIN
and ALLOCATION queries so all upstream buffers can be returned to the
pool if needed. As the buffer may be used for scanout, we copy this
buffer into a dumb buffer prior to let it go.

Based on patch from Guillaume Desmottes <guillaume.desmottes@collabora.com>

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

7 years agokmssink: Don't leak GEM primed from DMABuf
Nicolas Dufresne [Thu, 6 Jul 2017 21:20:56 +0000 (17:20 -0400)]
kmssink: Don't leak GEM primed from DMABuf

This otherwise breaks DMABuf reclaiming. This is not visible from
userspace, but inside the kernel, the DRM driver will hold a ref to the
DMABuf object. With a V4L2 driver allocating those DMABuf, it then
prevent changing the resolution and re-allocation new buffers.

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

7 years agokmssink: Factor out copying to dump buffer
Nicolas Dufresne [Wed, 5 Jul 2017 20:51:12 +0000 (16:51 -0400)]
kmssink: Factor out copying to dump buffer

This will be used to copy any upstream memory in order to return it on
resolution change, allocation query or drain query.

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

7 years agoadaptivedemux: Allow application to force EOS
Nicolas Dufresne [Mon, 3 Jul 2017 19:28:25 +0000 (15:28 -0400)]
adaptivedemux: Allow application to force EOS

Adaptive demuxers are special demuxers that runs their own sources
internally. In this patch we flag the demuxer as being a source in order
to receive the downstream events. We then handle the EOS event by
resetting the internal state and pushing EOS on all pads. This handling
is done asynchronously to avoid blocking user thread.

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

7 years agomeson: Set python3 before plugin subdir()s
Nirbheek Chauhan [Fri, 7 Jul 2017 11:37:31 +0000 (17:07 +0530)]
meson: Set python3 before plugin subdir()s

It's used by the msdk plugin