platform/upstream/gstreamer.git
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 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 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 agodashdemux: Implement a default presentation delay
Edward Hervey [Tue, 30 May 2017 13:27:37 +0000 (15:27 +0200)]
dashdemux: Implement a default presentation delay

Have a fallback presentation delay is great (if not present in the
manifest), having an actual default value is better.

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

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 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 agomxfdemux: For intra-only streams, always output DTS=PTS
Sebastian Dröge [Wed, 5 Jul 2017 14:04:46 +0000 (17:04 +0300)]
mxfdemux: For intra-only streams, always output DTS=PTS

7 years agomxfdemux: Fix integer overflow in partition position comparison function
Sebastian Dröge [Wed, 5 Jul 2017 12:48:57 +0000 (15:48 +0300)]
mxfdemux: Fix integer overflow in partition position comparison function

7 years agomxfmetadata: Set field-order correctly for interlaced video
Sebastian Dröge [Wed, 5 Jul 2017 10:59:12 +0000 (13:59 +0300)]
mxfmetadata: Set field-order correctly for interlaced video

7 years agomxfmetadata: Use display width/height instead of stored width/height
Sebastian Dröge [Wed, 5 Jul 2017 10:52:25 +0000 (13:52 +0300)]
mxfmetadata: Use display width/height instead of stored width/height

Stored values contain padding and alignment, and should only be used as
fallback if neither display values nor sampled values exist.

7 years agomxfdemux: Don't include any KLV packets between header metadata and index table segme...
Sebastian Dröge [Tue, 4 Jul 2017 21:48:36 +0000 (00:48 +0300)]
mxfdemux: Don't include any KLV packets between header metadata and index table segments in calculations

Minor fixup of last commit.

7 years agomxfdemux: Allow filler and other KLV packets between index table segments
Sebastian Dröge [Tue, 4 Jul 2017 17:01:37 +0000 (20:01 +0300)]
mxfdemux: Allow filler and other KLV packets between index table segments

While only filler packets should be allowed, for good measure also skip
any other KLV packets in the range where there could be index table
segments.

This fixes parsing of partitions with multiple index table segments,
which are separated by a filler packet, or other packets.

7 years agomxfmux: Write temporal offset and correct keyframe offset into index table
Sebastian Dröge [Tue, 27 Jun 2017 12:01:22 +0000 (15:01 +0300)]
mxfmux: Write temporal offset and correct keyframe offset into index table

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

7 years agomxfdemux: Take temporal reordering from the index table into account
Sebastian Dröge [Tue, 27 Jun 2017 07:47:44 +0000 (10:47 +0300)]
mxfdemux: Take temporal reordering from the index table into account

This is needed to know the PTS, without that we only know the DTS and
using that also for the PTS is wrong unless we have an intra-only codec.

If we can't get the temporal reordering from the index table, don't set
any PTS for non-intra-only codecs and let decoders figure out something.

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

7 years agomxfdemux: Include duration in response to SEEKING query
Sebastian Dröge [Tue, 27 Jun 2017 12:41:48 +0000 (15:41 +0300)]
mxfdemux: Include duration in response to SEEKING query

7 years agoconfigure: Add --with-moc/uic/rcc options
Jan Schmidt [Wed, 21 Jun 2017 15:01:40 +0000 (01:01 +1000)]
configure: Add --with-moc/uic/rcc options

For cross-compiling, it's easier to be able to specify the
actual paths to the tools

7 years agottml: fix linking to libgstvideo
Tim-Philipp Müller [Mon, 3 Jul 2017 09:11:42 +0000 (10:11 +0100)]
ttml: fix linking to libgstvideo

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

7 years agogl: reset gl->DrawBuffer to the necessary values
Matthew Waters [Wed, 28 Jun 2017 04:45:18 +0000 (14:45 +1000)]
gl: reset gl->DrawBuffer to the necessary values

GL_COLOR_ATTACHMENT0 when a framebuffer is bound
GL_BACK if no framebuffer is bound

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

7 years agoglmemory: reset the draw buffer to GL_BACK
Hyunjun Ko [Wed, 28 Jun 2017 03:17:37 +0000 (12:17 +0900)]
glmemory: reset the draw buffer to GL_BACK

The draw buffer should be reset to GL_BACK since the framebuffer is already
unbound.

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

7 years agogl/cocoa: Put gstglwindow_cocoa.h into noinst_HEADERS again
Sebastian Dröge [Tue, 20 Jun 2017 16:19:51 +0000 (19:19 +0300)]
gl/cocoa: Put gstglwindow_cocoa.h into noinst_HEADERS again

And remove gstgldisplay_cocoa.h instead, which got moved to the
installed headers earlier.

7 years agoRelease 1.12.1
Sebastian Dröge [Tue, 20 Jun 2017 09:06:59 +0000 (12:06 +0300)]
Release 1.12.1

7 years agoUpdate .po files
Sebastian Dröge [Tue, 20 Jun 2017 08:24:55 +0000 (11:24 +0300)]
Update .po files

7 years agopo: Update translations
Sebastian Dröge [Tue, 20 Jun 2017 08:09:34 +0000 (11:09 +0300)]
po: Update translations

7 years agodvb: src: fix use of wrong array index for tune signal
Reynaldo H. Verdejo Pinochet [Fri, 16 Jun 2017 16:43:35 +0000 (09:43 -0700)]
dvb: src: fix use of wrong array index for tune signal

Erroneous value made "TUNE" overwrite "TUNNING_FAIL" ....

7 years agomxfdemux: Do not try to serialize unresolved metadatas
Thibault Saunier [Thu, 15 Jun 2017 18:13:14 +0000 (14:13 -0400)]
mxfdemux: Do not try to serialize unresolved metadatas

When retrieving the `mxfdemux.structure` property, it leads to an
assertion as metadatas need to be resolved for the call to
mxf_metadata_base_to_structure to be valid.

7 years agoglupload: Fix DirectVIV uploader for formats with a single plane
Sebastian Dröge [Mon, 12 Jun 2017 19:29:01 +0000 (22:29 +0300)]
glupload: Fix DirectVIV uploader for formats with a single plane

We have to pass the "height" as height = vmeta->offset[1] / width to the
API, which of course does not work well for formats with only a single
plane. Use the whole memory size instead of the offset in that case.

7 years agoadaptivedemux: Clear "cancelled" on uridownloader before processing manifest
Seungha Yang [Sun, 4 Jun 2017 11:23:36 +0000 (20:23 +0900)]
adaptivedemux: Clear "cancelled" on uridownloader before processing manifest

Previous commit let demux call gst_uri_downloader_cancel() on _demux_reset().
Note that, _demux_reset() called during PAUSED_TO_READY and READY_TO_PAUSED.
And, it will set "cancelled" on uridownloader which blocks the use of
uridownloader. The issue is that, subclass can use the uridownloader not only
live streaming for manifest update, but also for fetching another manifests
such as variant and rendition m3u8 of hls streaming. So to unblock it,
demux should clear "cancelled" before processing initial manifest.

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

7 years agoadaptivedemux: release the manifest lock ...
Mathieu Duponchelle [Wed, 31 May 2017 00:46:01 +0000 (02:46 +0200)]
adaptivedemux: release the manifest lock ...

before broadcasting preroll.

The deadlock was as follows:

-> The subclass pushes a buffer on a newly-created stream in T1
-> We take the preroll lock in T1, to handle_preroll
-> The demuxer is stopped in T2, we take the MANIFEST_LOCK
-> T1 starts blocking because it received a reconfigure event
   and needs to take the MANIFEST_LOCK
-> T2 deadlocks because it now wants the preroll_lock.

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

7 years agoadaptivedemux: do not erase data while updates-loop is running
Thiago Santos [Tue, 30 May 2017 05:28:21 +0000 (22:28 -0700)]
adaptivedemux: do not erase data while updates-loop is running

Make sure the manifest update loop is stopped before proceeding with the
resetting of the manifest data. Otherwise, the updates loop will try to
use it and it leads to a segfault

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

7 years agompdparser: remove duplicate free of client data
Thiago Santos [Tue, 30 May 2017 05:26:09 +0000 (22:26 -0700)]
mpdparser: remove duplicate free of client data

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

7 years agoadaptivedemux: make sure to free all "old streams"
Mathieu Duponchelle [Wed, 31 May 2017 01:14:04 +0000 (03:14 +0200)]
adaptivedemux: make sure to free all "old streams"

As we release the MANIFEST_LOCK in stop_tasks,
demux->priv->old_streams can be set, we need to free these
otherwise we may end up trying to dispose elements in the
READY state.

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

7 years agodashdemux: Remove wrong assertion
Edward Hervey [Wed, 31 May 2017 08:58:39 +0000 (10:58 +0200)]
dashdemux: Remove wrong assertion

This is wrong because:
* If the rate is negative we should check for the *previous* period
* adaptivedemux already does the proper checks before calling this
  method

7 years agoadaptivedemux: Fix debugging message
Edward Hervey [Fri, 26 May 2017 15:30:10 +0000 (17:30 +0200)]
adaptivedemux: Fix debugging message

GstSegment position is a guint64 and not a gint64

CID #1409910

7 years agoadaptivedemux: Check live seeking range more often
Edward Hervey [Thu, 25 May 2017 07:48:53 +0000 (09:48 +0200)]
adaptivedemux: Check live seeking range more often

The live seeking range was only checked when doing actual seeks. This was
assuming that the rate would always be 1.0 (i.e. the playback would
advance in realtime, and therefore fragments would always be available
since the seeking window moves at the same rate).

With non-1.0 rates, this no longer becomes valid, and therefore we need
to check whether we are still within the live seeking range when advancing.

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

7 years agodashdemux: Initialize sidx_position to GST_CLOCK_TIME_NONE
Seungha Yang [Tue, 16 May 2017 14:20:44 +0000 (23:20 +0900)]
dashdemux: Initialize sidx_position to GST_CLOCK_TIME_NONE

If a manifest has non-zero presentation time offset
(i.e., earliest presentation time specified by sidx box is not zero),
the initial sidx position shouldn't be zero. Since we cannot define
exact sidx position until parsing sidx box, set the value to unknown.

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

7 years agoopenjpegdec: fix display artifacts for RGB 8-bit
Aaron Boxer [Sat, 10 Jun 2017 11:56:48 +0000 (07:56 -0400)]
openjpegdec: fix display artifacts for RGB 8-bit

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

7 years agojpeg2000sampling: fix critical when sampling is missing from caps
Vincent Penquerc'h [Mon, 5 Jun 2017 14:31:52 +0000 (15:31 +0100)]
jpeg2000sampling: fix critical when sampling is missing from caps

This can happen with real files

7 years agoopenjpeg: guard against invalid memory access on crafted files
Vincent Penquerc'h [Wed, 7 Jun 2017 15:17:50 +0000 (16:17 +0100)]
openjpeg: guard against invalid memory access on crafted files

7 years agoFix up package name and origin in some plugins
Tim-Philipp Müller [Thu, 18 May 2017 09:58:20 +0000 (10:58 +0100)]
Fix up package name and origin in some plugins

7 years agomsdk: enc: set pts and dts, fix inverted sync_point flag
Scott D Phillips [Thu, 18 May 2017 17:36:50 +0000 (10:36 -0700)]
msdk: enc: set pts and dts, fix inverted sync_point flag

Set the pts and dts on the frame that we receive from the msdk.
Also fix the inverted logic in setting sync points, previously we
were marking all frames as sync points except IDRs.

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

7 years agoglutils: Fix GValue leak in gst_gl_value_set_texture_target_from_mask()
Jeremy Hiatt [Thu, 1 Jun 2017 01:15:05 +0000 (01:15 +0000)]
glutils: Fix GValue leak in gst_gl_value_set_texture_target_from_mask()

7 years agovideoparse: Fix property handling
Thibault Saunier [Tue, 6 Jun 2017 18:58:55 +0000 (14:58 -0400)]
videoparse: Fix property handling

Usage of GstValueArray was wrong and frame-stride does not exist in
rawvideoparse

7 years agopcapparse: endianness fix
Wim Taymans [Thu, 1 Jun 2017 14:00:50 +0000 (16:00 +0200)]
pcapparse: endianness fix

Also swap the linktype after we detected that we need to do
byteswapping. Fixes a problem with reading pcap files generated
on a machine with different endianness.

7 years agoglformat: fix the usage of GST_GL_RGB565
Haihua Hu [Thu, 25 May 2017 03:05:47 +0000 (11:05 +0800)]
glformat: fix the usage of GST_GL_RGB565

GL_RGB565 is sized internal glformat, the corresponding glformat
should be GL_RGB and type is GL_UNSIGNED_SHORT_565. Otherwise will
return GL_INVALID_ENUM when creating texture.

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

7 years agoadaptivedemux: Don't create invalid event
Edward Hervey [Thu, 25 May 2017 14:42:03 +0000 (16:42 +0200)]
adaptivedemux: Don't create invalid event

tags could potentially be NULL

7 years agoadaptivedemux: retry download MAX_DOWNLOAD_RETRY_COUNT times before erroring
Matthew Waters [Fri, 2 Dec 2016 06:51:57 +0000 (17:51 +1100)]
adaptivedemux: retry download MAX_DOWNLOAD_RETRY_COUNT times before erroring

What we want is to retry downloading the fragment on 4xx/5xx errors
however returning EOS will cause waiting for a manifest update for live
(which may be a really long time) or stop everything for non-live.

Change that to only return EOS/ERROR once we've reached the error limit.

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

7 years agoglcontext: keep a ref to the active thread
fvanzile [Thu, 23 Feb 2017 23:42:08 +0000 (15:42 -0800)]
glcontext: keep a ref to the active thread

With the macOS/iOS implementations, the active thread can change
multiple times over the life of a pipeline which would expose a race in
the thread tracking.

Fix by taking a ref on the active thread while the context is active.

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

7 years agoqt: Use GST_GL_HAVE_PLATFORM_CGL instead of GST_GL_HAVE_PLATFORM_COCOA
Simon Himmelbauer [Thu, 18 May 2017 12:23:14 +0000 (15:23 +0300)]
qt: Use GST_GL_HAVE_PLATFORM_CGL instead of GST_GL_HAVE_PLATFORM_COCOA

The latter is not used/available anymore since years. Also fix a typo
in the include path for the Cocoa GL display header.

7 years agoamcvideodec: Unref downstream caps after usage
Sebastian Dröge [Thu, 18 May 2017 11:34:04 +0000 (14:34 +0300)]
amcvideodec: Unref downstream caps after usage

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

7 years agoh265parse: Fix calculation of codec_data buffer size
Sebastian Dröge [Thu, 18 May 2017 08:42:17 +0000 (11:42 +0300)]
h265parse: Fix calculation of codec_data buffer size

7 years agoglformat: Add missing GST_GL_RGB565 in some switch statement
Haihua Hu [Wed, 17 May 2017 08:26:38 +0000 (16:26 +0800)]
glformat: Add missing GST_GL_RGB565 in some switch statement

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

7 years agodecklink: Always use the video stream time for audio too
Sebastian Dröge [Wed, 10 May 2017 13:59:42 +0000 (15:59 +0200)]
decklink: Always use the video stream time for audio too

The audio packet times can be completely unrelated to the video stream
time, depending on the card. While this looks like a bug in the driver,
just always using the video stream time (which is correct) works as a
workaround for now.

7 years agococoa: Install gstgldisplay_cocoa.h
Sebastian Dröge [Wed, 17 May 2017 14:38:01 +0000 (17:38 +0300)]
cocoa: Install gstgldisplay_cocoa.h

It's needed by e.g. qmlglsink.

7 years agogl/viv-fb: Fix user-choice string comparisons
Carlos Rafael Giani [Tue, 9 May 2017 21:59:04 +0000 (23:59 +0200)]
gl/viv-fb: Fix user-choice string comparisons

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

7 years agodecklinkvideosink: Copy min(gstreamer_stride, decklink_stride) per line
Sebastian Dröge [Mon, 15 May 2017 13:37:14 +0000 (16:37 +0300)]
decklinkvideosink: Copy min(gstreamer_stride, decklink_stride) per line

Instead of just bpp * width, which might be more than we can copy.

7 years agoh264parse: fix caps leak in renegotiation
Vincent Penquerc'h [Fri, 12 May 2017 09:01:10 +0000 (10:01 +0100)]
h264parse: fix caps leak in renegotiation

7 years agoh265parse: fix caps leak in renegotiation
Vincent Penquerc'h [Fri, 12 May 2017 09:00:56 +0000 (10:00 +0100)]
h265parse: fix caps leak in renegotiation

7 years agojpeg2000parse: fix negotiation with j2c and jpc both allowed upstream
Vincent Penquerc'h [Tue, 9 May 2017 09:32:05 +0000 (10:32 +0100)]
jpeg2000parse: fix negotiation with j2c and jpc both allowed upstream

If upstream supports both, but downstream supports only jpc, j2c
would have been selected as the first in the caps.

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

7 years agodirectsoundsrc: Use a GstClockID to wait instead of Sleep()
Nirbheek Chauhan [Tue, 9 May 2017 10:36:10 +0000 (16:06 +0530)]
directsoundsrc: Use a GstClockID to wait instead of Sleep()

The main advantage is that our sleeps can be interrupted in case of
an src_reset(). Earlier, we would need to wait for a read to complete
before we could do a reset, which could take a long time.

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

7 years agoglmemory: Only use glDrawBuffer if available
Sebastian Dröge [Tue, 9 May 2017 09:25:20 +0000 (11:25 +0200)]
glmemory: Only use glDrawBuffer if available

Otherwise fall back to glDrawBuffers. Also check if glReadBuffer exists
before using it.

glDrawBuffer does not exist for GLES, only glDrawBuffers does.

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

7 years agomeson: Ignore msvc warnings in C++ as well
Scott D Phillips [Mon, 8 May 2017 18:01:39 +0000 (11:01 -0700)]
meson: Ignore msvc warnings in C++ as well

We were only ignoring the listed msvc warnings for C language
files and not C++. This was working by the coincidence that we did
not have any instances of these warnings in C++ files. Lately the
build of decklink has been fixed on windows, and it has an
instance of one of these warnings in a C++ file.

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

7 years agodecklink: Fix linking on MinGW
Nirbheek Chauhan [Thu, 4 May 2017 23:00:59 +0000 (04:30 +0530)]
decklink: Fix linking on MinGW

MinGW does not provide comsupp.lib, so there's no implementation of
_com_util::ConvertBSTRToString. Use a fallback implementation that
uses wcstombs() instead.

On MinGW we also truncate the name to 100 chars which should be fine.

7 years agodecklink: Fix building on Windows
Nirbheek Chauhan [Thu, 4 May 2017 22:32:29 +0000 (04:02 +0530)]
decklink: Fix building on Windows

BSTR is already a pointer to a string

7 years agomeson: Fix decklink building on Windows
Nirbheek Chauhan [Thu, 4 May 2017 22:31:38 +0000 (04:01 +0530)]
meson: Fix decklink building on Windows

Needs comsuppw, and does not need libdl or pthread.

7 years agodirectsoundsrc: Use latency-time and buffer-time settings
Nirbheek Chauhan [Wed, 3 May 2017 17:20:27 +0000 (22:50 +0530)]
directsoundsrc: Use latency-time and buffer-time settings

Earlier, the plugin was ignoring those settings and blindly setting
buffer-time to 2 seconds and latency-time to 200ms, which forced all
pipelines to have a minimum latency of 200ms + sink latency.

The values of segsize and segtotal were also not derived correctly.
Now we obey these values, and you can get close to the previous
behaviour by setting buffer-time and latency-time manually. Note that
they are set in microseconds.

As a consequence, when we haven't received enough data from the
device, we now sleep for a time proportional to the data remaining.
However, Directsound is a deprecated API so it maintains its own
software ringbuffer which updates at arbitrary intervals. Hence we
might have to wait a full segsize to get the last 10% of data. To
avoid tight loops, we clamp our sleep floor at 10ms.

In my testing, this keeps the wakeups not-too-high (proportional to
the latency-time set on the source). Further improvements should be
made by fixing the WASAPI audio source plugin instead of this.
Directsound is deprecated and as the comments explain, it is
impossible to get low latency, decent quality, or good performance
from it.

Based on a patch by Sebastian Dröge <sebastian@centricular.com>

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

7 years agomsdk: use a dummy.cpp file to force c++ linking
Scott D Phillips [Fri, 21 Apr 2017 03:18:30 +0000 (20:18 -0700)]
msdk: use a dummy.cpp file to force c++ linking

Add a dummy.cpp file to force c++ linking as required by libmfx.a.
I'm certain that the meson build worked for me in the past, but I
have no idea how it could have, looking at it now.

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

7 years agoRelease 1.12.0
Sebastian Dröge [Thu, 4 May 2017 12:39:05 +0000 (15:39 +0300)]
Release 1.12.0

7 years agoUpdate .po files
Sebastian Dröge [Thu, 4 May 2017 12:10:52 +0000 (15:10 +0300)]
Update .po files

7 years agopo: Update translations
Sebastian Dröge [Thu, 4 May 2017 10:47:37 +0000 (13:47 +0300)]
po: Update translations

7 years agomeson: hls: libm is required because m3u8.c uses math.h
Ting-Wei Lan [Wed, 3 May 2017 13:13:38 +0000 (21:13 +0800)]
meson: hls: libm is required because m3u8.c uses math.h

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

7 years agoqtkit: drop the qtkitvideosrc element
Josep Torra [Wed, 3 May 2017 11:21:42 +0000 (13:21 +0200)]
qtkit: drop the qtkitvideosrc element

The QTKit framework had been deprecated for long in favour of AVFundation
framework and we already have avfvideosrc that provides the same
functionality.

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

7 years agowebrtcdsp: fix doc string of echo-cancel property
George Kiagiadakis [Fri, 7 Apr 2017 14:13:52 +0000 (17:13 +0300)]
webrtcdsp: fix doc string of echo-cancel property

If the echo probe element is not found, initialization actually fails
instead of silently working with echo-cancel disabled.

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

7 years agoglupload: passthrough composition caps features in directviv upload
Haihua Hu [Tue, 2 May 2017 05:24:30 +0000 (13:24 +0800)]
glupload: passthrough composition caps features in directviv upload

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

7 years agotests: fix link problem on centos7
Tim-Philipp Müller [Thu, 27 Apr 2017 20:21:44 +0000 (21:21 +0100)]
tests: fix link problem on centos7

And put LIBS before -lgstfoo in adaptivedemux Makefile.am

7 years agoRelease 1.11.91
Sebastian Dröge [Thu, 27 Apr 2017 14:30:38 +0000 (17:30 +0300)]
Release 1.11.91

7 years agoUpdate .po files
Sebastian Dröge [Thu, 27 Apr 2017 13:03:28 +0000 (16:03 +0300)]
Update .po files

7 years agopo: Update translations
Sebastian Dröge [Thu, 27 Apr 2017 12:28:44 +0000 (15:28 +0300)]
po: Update translations

7 years agoamcvideodec/enc: Correctly check for no PTS on input buffers
shakin chou [Wed, 26 Apr 2017 09:46:10 +0000 (17:46 +0800)]
amcvideodec/enc: Correctly check for no PTS on input buffers

MediaCodec gives us a presentation timestamp of 0 if it does not know
anything, but GStreamer gives us GST_CLOCK_TIME_NONE. Don't mix up these
two.

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

7 years agottmlparse: Consolidate adjacent co-styled inline elements
Chris Bass [Tue, 25 Apr 2017 14:15:13 +0000 (15:15 +0100)]
ttmlparse: Consolidate adjacent co-styled inline elements

A common subtitling use case is live-generated subtitles, in which each
new word is contained in its own span, and the spans are displayed
sequentially, with the effect that lines of displayed subtitles are
built up word-by-word.

This can, however, cause problems when the number of words in a block is
greater than the number of allowed GstMemorys in a GstBuffer.

Since in this use case each span will have the same styling as adjacent
spans, we can join adjacent spans (and other inline elements, such as
breaks) into a single element containing the concatenated text of each,
thus avoiding the limit of GstMemorys in a GstBuffer and also reducing
the amount of styling/layout metadata that is attached to each buffer.

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

7 years agottmlparse: Don't add GstMemorys to a GstBuffer that is full
Chris Bass [Tue, 25 Apr 2017 14:33:38 +0000 (15:33 +0100)]
ttmlparse: Don't add GstMemorys to a GstBuffer that is full

The parser stores the text from each inline element of a scene in its
own GstMemory, which is inserted in the GstBuffer containing the scene
data. However, GstBuffers can contain only a limited number of
GstMemorys. Therefore, don't add more than the maximum number of
GstMemorys to each buffer, and warn if this is attempted.

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

7 years agottmlparse: Store newline as text of br element
Chris Bass [Tue, 25 Apr 2017 14:10:22 +0000 (15:10 +0100)]
ttmlparse: Store newline as text of br element

When parsing <br> elements, store an actual newline in the text field of
the created TtmlElement. They then don't need to be treated as a
separate case from anon-span elements when being processed.

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

7 years agottmlparse: Replace repeated warning code with a function.
Chris Bass [Tue, 25 Apr 2017 09:17:49 +0000 (10:17 +0100)]
ttmlparse: Replace repeated warning code with a function.

Encapsulates in a function the code that warns of an illegally
positioned element, rather than repeating the same code multiple times.
Also frees a string allocated by ttml_get_element_type_string, which was
previously being leaked.

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

7 years agottmlparse: Remove redundant text_index field of TtmlElement
Chris Bass [Mon, 24 Apr 2017 10:34:41 +0000 (11:34 +0100)]
ttmlparse: Remove redundant text_index field of TtmlElement

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

7 years agottmlparse: Don't leak TtmlElements when deleting GNodes/trees.
Chris Bass [Tue, 25 Apr 2017 09:04:50 +0000 (10:04 +0100)]
ttmlparse: Don't leak TtmlElements when deleting GNodes/trees.

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

7 years agomssdemux: Fix compiler warning
Sebastian Dröge [Tue, 25 Apr 2017 10:22:33 +0000 (13:22 +0300)]
mssdemux: Fix compiler warning

../subprojects/gst-plugins-bad/ext/smoothstreaming/gstmssdemux.c: In function ‘gst_mss_demux_requires_periodical_playlist_update’:
../subprojects/gst-plugins-bad/ext/smoothstreaming/gstmssdemux.c:729:16: error: unused variable ‘mssdemux’ [-Werror=unused-variable]
   GstMssDemux *mssdemux = GST_MSS_DEMUX_CAST (demux);
                ^~~~~~~~
cc1: all warnings being treated as errors

7 years agoadaptivedemux: separate manifest update task from download tasks
Matthew Waters [Fri, 7 Apr 2017 06:33:21 +0000 (16:33 +1000)]
adaptivedemux: separate manifest update task from download tasks

Rationale is to allow the manifest update task to continue running while
seeks are occurring.  Otherwise, if the user reliably performs a seek
before the manifest is updated, then as the manifest task is reset on
seeks (and thus the time to wait between manifest updates), the manifest
would never be updated.

This fix makes the manifest update task free-running and continously
update even during seeks.

7 years agomss: always periodically update the manifest taking the new fragments
Matthew Waters [Fri, 7 Apr 2017 04:42:24 +0000 (14:42 +1000)]
mss: always periodically update the manifest taking the new fragments

Without this, for streams where the content is stored indefinitely and
can be seeked on, the duration would never increase when in paused or,
until we reached near the end of the currently advertised stream (where
the internal fragment parser would see descriptions of new fragments).

7 years agoAutomatic update of common submodule
Tim-Philipp Müller [Mon, 24 Apr 2017 19:28:06 +0000 (20:28 +0100)]
Automatic update of common submodule

From 60aeef6 to 48a5d85

7 years agokmssink: Add msm to the list of drivers
Nicolas Dufresne [Sat, 22 Apr 2017 01:29:05 +0000 (21:29 -0400)]
kmssink: Add msm to the list of drivers

This prevent having to set the driver-name explicitly when running on
Qualcomm/MSM boards.

7 years agottmlparse: Convert tabs to spaces in input
Chris Bass [Thu, 20 Apr 2017 13:43:45 +0000 (14:43 +0100)]
ttmlparse: Convert tabs to spaces in input

The TTML spec has an issue in which tab (U+0009) characters that are
first in a sequence of whitespace characters are not suppressed at the
start and end of line areas. This issue was reported in [1] and the
editor of the TTML specs confirmed that this was not the intention
behind the spec.

The editor has created an issue to fix this in both the TTML1 and TTML2
specs [2], giving a proposal of what the spec should say. This patch
updates ttmlparse to implement the intended behaviour as proposed, in
which tabs in the input are converted to spaces before processing.

[1] https://github.com/w3c/imsc/issues/224
[2] https://github.com/w3c/ttml1/issues/235

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

7 years agottmlparse: Fix potential resource leak identified by coverity.
Chris Bass [Thu, 20 Apr 2017 09:24:30 +0000 (10:24 +0100)]
ttmlparse: Fix potential resource leak identified by coverity.

If multiple styles/regions with the same ID are present in the input
(which is not allowed in TTML), use the last and give a warning.

Fixes CID #1405134.

7 years agottmlrender: Fix potential resource leak identified by coverity
Chris Bass [Thu, 20 Apr 2017 09:22:49 +0000 (10:22 +0100)]
ttmlrender: Fix potential resource leak identified by coverity

Fixes CID #1405133.

7 years agoRevert "decklinkvideo/audiosrc: Add GstReferenceTimestampMeta with the stream time...
Sebastian Dröge [Wed, 19 Apr 2017 18:08:41 +0000 (19:08 +0100)]
Revert "decklinkvideo/audiosrc: Add GstReferenceTimestampMeta with the stream time to each buffer"

This reverts commit d5684d5b145a3eb0e23476f18669d1ffa552c5de.

This shouldn't have been merged before 1.12.

7 years agodecklinkvideo/audiosrc: Add GstReferenceTimestampMeta with the stream time to each...
Sebastian Dröge [Sat, 25 Feb 2017 10:37:46 +0000 (12:37 +0200)]
decklinkvideo/audiosrc: Add GstReferenceTimestampMeta with the stream time to each buffer

This is basically a frame counter provided by the driver and it's
advancing at the speed of the HDMI/SDI input. Having this available on
each buffer allows to know what constant-framerate-based timestamp each
frame is corresponding to and can be used e.g. to write out files
accordingly without having the local pipeline clock timestamps used.

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

7 years agottmlrender: Fix potential problem identified by clang
Chris Bass [Wed, 19 Apr 2017 15:06:52 +0000 (16:06 +0100)]
ttmlrender: Fix potential problem identified by clang

Clang's static analyser found potential code paths in which variables
were being used in comparisons when uninitialised. Fix by properly
handling out-of-range value returned by gst_ttml_get_element_index.

7 years agottmlparse: Fix potential NULL dereference identified by coverity
Chris Bass [Wed, 19 Apr 2017 13:07:06 +0000 (14:07 +0100)]
ttmlparse: Fix potential NULL dereference identified by coverity

Hopefully fixes CID #1405131.

7 years agottmlrender: Fix integer handling issue identified by coverity
Chris Bass [Wed, 19 Apr 2017 13:00:47 +0000 (14:00 +0100)]
ttmlrender: Fix integer handling issue identified by coverity

Fixes CID #1405132.

7 years agohlssink: Remove some unused struct fields
Sebastian Dröge [Wed, 19 Apr 2017 11:36:03 +0000 (12:36 +0100)]
hlssink: Remove some unused struct fields