platform/upstream/gst-plugins-bad.git
7 years agotests: fix leak in videoframe-audiolevel test
Vincent Penquerc'h [Fri, 7 Apr 2017 09:36:34 +0000 (10:36 +0100)]
tests: fix leak in videoframe-audiolevel test

also add braces for the else case

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

7 years agoglcontext: fix display leak
Vincent Penquerc'h [Fri, 7 Apr 2017 09:30:09 +0000 (10:30 +0100)]
glcontext: fix display leak

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

7 years agogldisplay: fix list leak
Vincent Penquerc'h [Fri, 7 Apr 2017 09:24:19 +0000 (10:24 +0100)]
gldisplay: fix list leak

Windows aren't always removed in time, and it turns out to be
very, very hard to remove a window in a way that's not racy and
not deadlocky. Since the window itself doesn't leak, freeing
the list on object destruction is enough.

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

7 years agompegts: fix invalid memory access in language descriptor
Vincent Penquerc'h [Fri, 7 Apr 2017 09:43:51 +0000 (10:43 +0100)]
mpegts: fix invalid memory access in language descriptor

Also add a couple sanity asserts/returns

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

7 years agompdparser: Report error if Representation is invalid
Seungha Yang [Mon, 27 Mar 2017 00:56:32 +0000 (09:56 +0900)]
mpdparser: Report error if Representation is invalid

Spec "5.3.5 Representation" is saying that
id and bandwidth attributes are mandatory fields.

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

7 years agoadaptivedemux: Retry downloading a fragment immediately if any in live streaming
Seungha Yang [Fri, 24 Mar 2017 06:04:21 +0000 (15:04 +0900)]
adaptivedemux: Retry downloading a fragment immediately if any in live streaming

At the moment that demux is waiting manifest update, the target sequence
of fragment was advanced already. So, checking stream_has_next_fragment()
means looking for the next fragment of target fragment.
This might cause unexpected buffering if each fragment has
large duration and manifest is listing only limited number of fragments.

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

7 years agodashdemux: Fix SEEK of multi-period On-Demand profile
Seungha Yang [Thu, 23 Mar 2017 23:16:35 +0000 (08:16 +0900)]
dashdemux: Fix SEEK of multi-period On-Demand profile

For each period, media presentation is the relative to the
period-start time. So SIDX seek position should be target seek
position minus period-start. Also, if presentationTimeOffset
is defined, the value should be compensated

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

7 years agottmlparse: push segment events downstream
Chris Bass [Tue, 4 Apr 2017 10:47:55 +0000 (11:47 +0100)]
ttmlparse: push segment events downstream

Without this, subtitles will stop after seeking.

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

7 years agottmlparse: don't filter out untimed whitespace
Chris Bass [Fri, 7 Apr 2017 09:16:46 +0000 (10:16 +0100)]
ttmlparse: don't filter out untimed whitespace

Significant whitespace in elements that don't have begin/end values
should inherit timing from its parent, or if no its parents have no
timing, from the document's Root Temporal Extent. Currently, such
whitespace is removed, which is not spec-compliant. Fix this by
retaining whitespace in content nodes, and assigning a Root Temporal
Extent of 24 hours to any significant whitespace whose parents have no
associated timing.

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

7 years agottmlparse: don't leak caps.
Chris Bass [Wed, 22 Mar 2017 10:41:44 +0000 (10:41 +0000)]
ttmlparse: don't leak caps.

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

7 years agottmlrender: improve function comments/descriptions
Chris Bass [Wed, 22 Mar 2017 10:35:38 +0000 (10:35 +0000)]
ttmlrender: improve function comments/descriptions

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

7 years agottmlrender: relocate type definitions to head of file
Chris Bass [Wed, 22 Mar 2017 10:30:47 +0000 (10:30 +0000)]
ttmlrender: relocate type definitions to head of file

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

7 years agottml: correctly implement lineHeight behaviour
Chris Bass [Wed, 22 Mar 2017 10:21:28 +0000 (10:21 +0000)]
ttml: correctly implement lineHeight behaviour

The specified behaviour in TTML when lineHeight is "normal" is different
from the behaviour when a percentage is given. In the former case, the
line height is a percentage (the TTML spec recommends 125%) of the largest
font size that is applied to the spans within the block; in the latter
case, the line height is the given percentage of the font size that is
applied to the block itself.

The code doesn't correctly implement this behaviour; this patch fixes
that.

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

7 years agottmlrender: apply correct line height to blocks with multiple text sizes
Chris Bass [Wed, 22 Mar 2017 09:21:09 +0000 (09:21 +0000)]
ttmlrender: apply correct line height to blocks with multiple text sizes

In TTML, the height of every line in a block is determined by lineHeight
and fontSize style attributes, and should be the same for each line in
that block, regardless of whether different sized text appears on
different lines. Currently, a single PangoLayout is used to lay out all
the text in a block; however, pango will vary the line height in a
layout depending on the size of text used in each line, which is not
compliant with TTML.

This patch makes ttmlrender lay out the lines in a block itself, rather
than using a PangoLayout to do the work. The code still uses a
PangoLayout to render the text of each element, but the overall layout
of the text in a block is now controlled by ttmlrender itself. By doing
this, ttmlrender is able to ensure that the height of each line in a
block is correct.

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

7 years agottmlrender: add facility to stitch images in both directions
Chris Bass [Tue, 21 Mar 2017 15:05:18 +0000 (15:05 +0000)]
ttmlrender: add facility to stitch images in both directions

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

7 years agottmlrender: extend UnifiedElement type to include font metrics
Chris Bass [Tue, 21 Mar 2017 14:39:39 +0000 (14:39 +0000)]
ttmlrender: extend UnifiedElement type to include font metrics

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

7 years agottmlrender: extend UnifiedBlock type
Chris Bass [Tue, 21 Mar 2017 14:11:42 +0000 (14:11 +0000)]
ttmlrender: extend UnifiedBlock type

Include a reference to the GstSubtitleStyleSet of the represented block
and a string containing the concatenated text from all elements.

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

7 years agottml: add refcounting to GstSubtitleStlyeSet type
Chris Bass [Tue, 21 Mar 2017 13:50:12 +0000 (13:50 +0000)]
ttml: add refcounting to GstSubtitleStlyeSet type

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

7 years agottmlrender: rename TextRange type and its fields.
Chris Bass [Tue, 21 Mar 2017 12:15:50 +0000 (12:15 +0000)]
ttmlrender: rename TextRange type and its fields.

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

7 years agottmlrender: store PangoLayout in object state
Chris Bass [Tue, 21 Mar 2017 12:12:28 +0000 (12:12 +0000)]
ttmlrender: store PangoLayout in object state

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

7 years agottmlrender: put all functions in gst_ttml_render namespace
Chris Bass [Tue, 21 Mar 2017 11:28:31 +0000 (11:28 +0000)]
ttmlrender: put all functions in gst_ttml_render namespace

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

7 years agogl: Remove duplicate typedef of GstGLFramebufferClass
Jan Schmidt [Sat, 8 Apr 2017 11:28:58 +0000 (21:28 +1000)]
gl: Remove duplicate typedef of GstGLFramebufferClass

The GstGLFramebufferClass struct is typedeffed in
gstgl_fwd.h, and having a duplicate elsewhere is
breaking the cerbero build on my OSX machine,
even though it seems to be working in CI.

7 years agotests: dash: don't use deprecated g_object_newv()
Tim-Philipp Müller [Sat, 8 Apr 2017 09:08:04 +0000 (10:08 +0100)]
tests: dash: don't use deprecated g_object_newv()

7 years agovideoaggregator: Do not mix the same buffer twice when EOS.
Mathieu Duponchelle [Fri, 7 Apr 2017 16:49:52 +0000 (18:49 +0200)]
videoaggregator: Do not mix the same buffer twice when EOS.

When entering this code path, we know that:

We received EOS on this pad.
We consumed all its buffers.

In any case, we want to replace vaggpad->buffer with NULL,
otherwise we will end up mixing the same buffer twice.

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

7 years agoRelease 1.11.90
Sebastian Dröge [Fri, 7 Apr 2017 13:32:24 +0000 (16:32 +0300)]
Release 1.11.90

7 years agoUpdate .po files
Sebastian Dröge [Fri, 7 Apr 2017 12:31:12 +0000 (15:31 +0300)]
Update .po files

7 years agopo: Update translations
Sebastian Dröge [Fri, 7 Apr 2017 12:06:50 +0000 (15:06 +0300)]
po: Update translations

7 years agowin32: Update libgsturidownloader.def
Sebastian Dröge [Fri, 7 Apr 2017 11:44:54 +0000 (14:44 +0300)]
win32: Update libgsturidownloader.def

7 years agoadaptivedemux: add some reasons on warning reporting
Matthew Waters [Fri, 7 Apr 2017 06:32:40 +0000 (16:32 +1000)]
adaptivedemux: add some reasons on warning reporting

7 years agodirectsoundsrc: Correctly calculate segsize and segtotal
Sebastian Dröge [Thu, 6 Apr 2017 13:13:41 +0000 (16:13 +0300)]
directsoundsrc: Correctly calculate segsize and segtotal

segsize should be based on latency-time, and must be a multiple of the
frame size. segtotal should be based on buffer-time and segsize.

This prevents errors caused by outputting buffers that are not a
multiple of the frame size, and actually makes the buffer-time and
latency-time properties do what they're supposed to do.

7 years agouridownloader: Use a GWeakRef to the parent to prevent a reference cycle
Sebastian Dröge [Fri, 17 Mar 2017 10:58:06 +0000 (12:58 +0200)]
uridownloader: Use a GWeakRef to the parent to prevent a reference cycle

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

7 years agoadaptivedemux: set uridownloader's parent
Thiago Santos [Wed, 9 Dec 2015 16:19:11 +0000 (13:19 -0300)]
adaptivedemux: set uridownloader's parent

Allows internal http source to request contexts and share cookies
with the pipeline in case the server imposes any restriction based
on cookies.

7 years agouridownloader: add new gst_uri_downloader_set_parent
Thiago Santos [Wed, 9 Dec 2015 16:12:42 +0000 (13:12 -0300)]
uridownloader: add new gst_uri_downloader_set_parent

If set, the parent is used to proxy need-context messages from
uridownloader's http source in order to get cookies/headers
from the pipeline.

Based on a patch from Philippe Normand

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

7 years agoexamples: add audiomixmatrix test to .gitignore
Josep Torra [Sat, 1 Apr 2017 15:00:47 +0000 (17:00 +0200)]
examples: add audiomixmatrix test to .gitignore

7 years agoglwindow/cocoa: fix warnings reported by XCode 8.1.0
Josep Torra [Sat, 1 Apr 2017 14:49:15 +0000 (16:49 +0200)]
glwindow/cocoa: fix warnings reported by XCode 8.1.0

gstglwindow_cocoa.m:345:16: error: unused variable 'window' [-Werror,-Wunused-variable]
  GstGLWindow *window = GST_GL_WINDOW (window_cocoa);
               ^
gstglwindow_cocoa.m:445:11: error: unused variable 'external_view' [-Werror,-Wunused-variable]
  NSView *external_view = (__bridge NSView *)priv->external_view;
          ^

7 years agoaudiointerleave: don't overflow channel map with >64 channels
Douglas Bagnall [Fri, 31 Mar 2017 10:40:05 +0000 (23:40 +1300)]
audiointerleave: don't overflow channel map with >64 channels

When there are more than 64 channels, we don't want to exceed the
bounds of the ordering_map buffer, and in these cases we don't want to
remap at all. Here we avoid doing that.

Based on a patch originally for plugins-good/interleave in
https://bugzilla.gnome.org/show_bug.cgi?id=780331

7 years agogldisplay: Fix assert caused by missing debug category
Nicolas Dufresne [Thu, 30 Mar 2017 03:45:21 +0000 (23:45 -0400)]
gldisplay: Fix assert caused by missing debug category

7 years agomeson: Fix mplex plugin file name
Nicolas Dufresne [Thu, 30 Mar 2017 03:36:50 +0000 (23:36 -0400)]
meson: Fix mplex plugin file name

Meson was creating libgstmplex2.so which didn't match the plugin name
'mplex'.

7 years agowebrtcechoprobe: return from _read() early if the probe is not configured yet
George Kiagiadakis [Mon, 27 Mar 2017 15:14:54 +0000 (18:14 +0300)]
webrtcechoprobe: return from _read() early if the probe is not configured yet

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

7 years agodashdemux: fix typo in implementation notes
Luis de Bethencourt [Tue, 28 Mar 2017 15:04:15 +0000 (16:04 +0100)]
dashdemux: fix typo in implementation notes

s/enveloppe/envelope

7 years agowebrtcdsp: Add support to build with meson
Nicolas Dufresne [Tue, 28 Mar 2017 01:15:32 +0000 (21:15 -0400)]
webrtcdsp: Add support to build with meson

7 years agowebrtcdsp: expose voice activity detection.
Mathieu Duponchelle [Thu, 23 Feb 2017 15:12:38 +0000 (16:12 +0100)]
webrtcdsp: expose voice activity detection.

The element now exposes properties to enable and configure
voice activity detection, and posts "voice-activity" messages
when the return value of stream_has_voice () changes.

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

7 years agoaudiomixmatrix: Don't crash if matrix is unset
Nicolas Dufresne [Mon, 27 Mar 2017 19:10:45 +0000 (15:10 -0400)]
audiomixmatrix: Don't crash if matrix is unset

Fix a crash ff one set in_channels/out_channels to non-zero, and then
get the matrix property.

7 years agoaudiomixmatrix: Remove property matrix-value-array
Nicolas Dufresne [Mon, 27 Mar 2017 17:34:19 +0000 (13:34 -0400)]
audiomixmatrix: Remove property matrix-value-array

This duplicated property is no longer needed as there is now API to
allow bindings access GST_TYPE_ARRAY (see gst_util_get/set/object_array).
Additionnally, Python has proper overrides which will make this looks
like Python. A 2x2 matrix would be set this way:

  element = matrix = Gst.ValueArray(Gst.ValueArray([1.0, -1.0]),
      Gst.ValueArray([1.0, -1.0))

Notice that you need to "cast" each arrays to Gst.ValueArray, otherwise
there is an ambiguity between Gst.ValueArray and Gst.ValueList list type.
Fortunatly, Gst.ValueArray implements the Sequence interface, so it can
be indexed like normal python matrix.

7 years agomssdemux: only add live fragments after manifest fragments
Matthew Waters [Wed, 1 Mar 2017 09:51:43 +0000 (20:51 +1100)]
mssdemux: only add live fragments after manifest fragments

A live manifest may have a set (> LookAheadFragmentCount) of fragments
that have already been served and are stored on the server, maybe
indefinitely.  Adding the parsed live fragments after the manifest
fragments breaks duration reporting and the seekable range.

Fix by only adding parsed fragments outside the list of fragments which
assumes that the fragment list in the manifest is accurate enough to not
stray too far off what's in the retrieved data.

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

7 years agoAdd missing include path for gst/glib-compat-prive.h
Nicolas Dufresne [Fri, 24 Mar 2017 19:43:07 +0000 (15:43 -0400)]
Add missing include path for gst/glib-compat-prive.h

This fixes build failure in mplex and mpeg2enc plugins and most likely
in kate plugin (untested).

7 years agodecklink: Use GstQueueArray instead of GQueue
Sebastian Dröge [Fri, 24 Mar 2017 12:25:48 +0000 (14:25 +0200)]
decklink: Use GstQueueArray instead of GQueue

Let's save two allocations and frees per frame.

7 years agomeson: Build mpeg2enc and mplex when available
Nirbheek Chauhan [Wed, 22 Mar 2017 21:18:10 +0000 (02:48 +0530)]
meson: Build mpeg2enc and mplex when available

7 years agokmssink: Fix compiler warning with gcc 7
Sebastian Dröge [Wed, 22 Mar 2017 15:38:20 +0000 (17:38 +0200)]
kmssink: Fix compiler warning with gcc 7

gstkmssink.c: In function ‘gst_kms_sink_get_input_buffer’:
gstkmssink.c:1102:29: error: ‘mems[0]’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
   kmsmem = (GstKMSMemory *) get_cached_kmsmem (mems[0]);
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

7 years agoadaptivedemux: Don't send EOS on pads when there's a pending switch
Jan Schmidt [Wed, 22 Mar 2017 13:49:43 +0000 (00:49 +1100)]
adaptivedemux: Don't send EOS on pads when there's a pending switch

When there are new pads pending for a bitrate switch, don't allow
EOS through from the old streams. It will be sent when the new pads are
ready, just before the old streams are removed.

This fixes racy bitrate switching with hlsdemux in urisourcebin
where old pads EOS before new pads appear and the entire pipeline can
EOS if those propagate fast enough

7 years agoplayer: Make use of GstStreams API with playbin3
Seungha Yang [Wed, 22 Mar 2017 11:10:57 +0000 (20:10 +0900)]
player: Make use of GstStreams API with playbin3

Allow use of playbin3 and GstStreams API by setting
the environment variable "GST_PLAYER_USE_PLAYBIN3"

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

7 years agodecklinkvideosrc: Add read-only "signal" property
Georg Lippitsch [Tue, 21 Mar 2017 17:16:52 +0000 (18:16 +0100)]
decklinkvideosrc: Add read-only "signal" property

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

7 years agoaudiobuffersplit: Install srcpad query function on the srcpad, not the sinkpad
Sebastian Dröge [Wed, 22 Mar 2017 11:22:40 +0000 (13:22 +0200)]
audiobuffersplit: Install srcpad query function on the srcpad, not the sinkpad

7 years agodashdemux: In reverse playback mode, if seeking to the beginning of a fragment, start...
Sebastian Dröge [Wed, 22 Mar 2017 10:04:35 +0000 (12:04 +0200)]
dashdemux: In reverse playback mode, if seeking to the beginning of a fragment, start with the previous one instead

There's no point to start downloading a fragment just to output 1ns.

7 years agodashdemux: Implement SNAP_NEAREST seeks
Sebastian Dröge [Tue, 21 Mar 2017 18:37:17 +0000 (20:37 +0200)]
dashdemux: Implement SNAP_NEAREST seeks

7 years agodashdemux: Don't use ABS() for calculating differences
Sebastian Dröge [Tue, 21 Mar 2017 18:36:02 +0000 (20:36 +0200)]
dashdemux: Don't use ABS() for calculating differences

We know which number is bigger.

7 years agodashdemux: Only snap seeks forwards if the seek position does not happen to be the...
Sebastian Dröge [Tue, 21 Mar 2017 18:27:10 +0000 (20:27 +0200)]
dashdemux: Only snap seeks forwards if the seek position does not happen to be the exact segment position

7 years agodashdemux: Use gst_mpdparser_get_segment_end_time() directly instead of calculating...
Sebastian Dröge [Tue, 21 Mar 2017 18:14:53 +0000 (20:14 +0200)]
dashdemux: Use gst_mpdparser_get_segment_end_time() directly instead of calculating it again

It does the exact same calculations.

7 years agompdparser: Refactor to get rid of one level of indentation in seeking code
Sebastian Dröge [Mon, 6 Mar 2017 17:44:02 +0000 (19:44 +0200)]
mpdparser: Refactor to get rid of one level of indentation in seeking code

Also go out of the segment searching loop once segment->start > ts.
We're not going to find any earlier segment anymore.

7 years agodashdemux: Fix snap SIDX seeking and report if we're going outside the index
Sebastian Dröge [Tue, 21 Mar 2017 14:18:15 +0000 (16:18 +0200)]
dashdemux: Fix snap SIDX seeking and report if we're going outside the index

Instead of just going to the first or last fragment, report if we're
going outside the index. This should never happen unless there's a bug
or the stream is broken.

Allow some possibility for inaccuracies here though.

7 years agodvb: camutils: drop macro disabling glib deprecation warnings
Reynaldo H. Verdejo Pinochet [Tue, 21 Mar 2017 17:20:49 +0000 (10:20 -0700)]
dvb: camutils: drop macro disabling glib deprecation warnings

No longer needed.

7 years agobuild: declare dependency from gl on allocators
Scott D Phillips [Mon, 20 Mar 2017 22:19:08 +0000 (15:19 -0700)]
build: declare dependency from gl on allocators

libgstgl has a dependency on libgstallocators starting with:

 ed1e4c1 glupload: Add support for Vivante DirectTexture uploads

The dependency wasn't stated in the Makefile, so the build could
occasionally fail if you got unlucky with the ordering of build
steps.

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

7 years agodvb: fix distcheck
Tim-Philipp Müller [Mon, 20 Mar 2017 19:57:32 +0000 (19:57 +0000)]
dvb: fix distcheck

Apparently automake automatically dists README files,
but can't handle when they disappear.

7 years agoUpdate for 'mad' mp3 decoder removal
Tim-Philipp Müller [Mon, 20 Mar 2017 17:15:54 +0000 (17:15 +0000)]
Update for 'mad' mp3 decoder removal

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

7 years agom3u8: Fix parsing EXT-X-DISCONTINUITY
Seungha Yang [Fri, 17 Mar 2017 06:34:33 +0000 (15:34 +0900)]
m3u8: Fix parsing EXT-X-DISCONTINUITY

EXT-X-DISCONTINUITY tag should have no trailing ":" character

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

7 years agom3u8: Release m3u8 lock if consistent checking failed
Seungha Yang [Fri, 17 Mar 2017 07:47:07 +0000 (16:47 +0900)]
m3u8: Release m3u8 lock if consistent checking failed

To fix deadlock during live m3u8 update

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

7 years agodashdemux: Just reset SIDX parser if the index is invalid for the current segment
Sebastian Dröge [Thu, 16 Mar 2017 10:35:40 +0000 (12:35 +0200)]
dashdemux: Just reset SIDX parser if the index is invalid for the current segment

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

7 years agottml: Replace assertions
Chris Bass [Fri, 23 Dec 2016 11:07:00 +0000 (11:07 +0000)]
ttml: Replace assertions

Remove assertions and replace, where necessary, with code that handles
the error cases.

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

7 years agodashdemux: If a SIDX seek failed although we're in the correct segment, disable the...
Sebastian Dröge [Wed, 15 Mar 2017 11:24:57 +0000 (13:24 +0200)]
dashdemux: If a SIDX seek failed although we're in the correct segment, disable the SIDX usage for this segment

The SIDX apparently does not contain information about the current
segment, so better stop using it instead of using incorrect values.

7 years agodashdemux: Keep track of the PTS, not the SIDX index position between representations
Sebastian Dröge [Wed, 15 Mar 2017 11:24:04 +0000 (13:24 +0200)]
dashdemux: Keep track of the PTS, not the SIDX index position between representations

There is no guarantee that the index positions are the same between
representations, and assuming this easily causes us to get into invalid
index positions.

7 years agodashdemux: When clearing the sidx parser, reset all state
Sebastian Dröge [Wed, 15 Mar 2017 11:21:38 +0000 (13:21 +0200)]
dashdemux: When clearing the sidx parser, reset all state

And especially don't keep entry count and index around, we have no
entries anymore after clearing.

7 years agodashdemux: Drain buffer at the end of subfragment
Seungha Yang [Wed, 15 Mar 2017 01:17:59 +0000 (10:17 +0900)]
dashdemux: Drain buffer at the end of subfragment

Some of streams such as below have tailing boxes at the end of subfragment.
http://dash.akamaized.net/dash264/TestCases/1a/netflix/exMPD_BIP_TC1.mpd

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

7 years agodashdemux: Do not advace subfragment after pending SIDX seek done
Seungha Yang [Wed, 15 Mar 2017 00:24:39 +0000 (09:24 +0900)]
dashdemux: Do not advace subfragment after pending SIDX seek done

If a MPD is On-Demand profile and no index described, demux will terminate
download loop after parsing inband SIDX with flow return custom-success.
At this moment, SIDX index is excat target position, but finish_fragment()
might cause re-advancing subfragment depending on MPD structure.

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

7 years agodashdemux: Reset SIDX related variables per fragment
Seungha Yang [Tue, 14 Mar 2017 10:47:17 +0000 (19:47 +0900)]
dashdemux: Reset SIDX related variables per fragment

SIDX's base offset (i.e., byte offset of SIDX + sidx.first_offset)
mostly vary as per fragment. Also, target SIDX index must be zero for the
new fragment.

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

7 years agodashdemux: Two depth seeking for On-Demand profile
Seungha Yang [Tue, 14 Mar 2017 11:15:31 +0000 (20:15 +0900)]
dashdemux: Two depth seeking for On-Demand profile

Try to find fragment using MPD first, then do refinement to find
target subframgnet using SIDX if possible. Note that, if target fragment
was moved from the previously activated one, we should assume that
the last SIDX is invalid for new fragment.

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

7 years agodashdemux: Exception handle in _sidx_seek()
Seungha Yang [Tue, 14 Mar 2017 10:41:56 +0000 (19:41 +0900)]
dashdemux: Exception handle in _sidx_seek()

If target seek position is outside of the range of sidx entries,
binary search returns NULL pointer.

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

7 years agodashdemux: Add assertion for preventing of access after the end of the sidx entries...
Sebastian Dröge [Tue, 14 Mar 2017 17:27:45 +0000 (19:27 +0200)]
dashdemux: Add assertion for preventing of access after the end of the sidx entries array

Better crash cleanly here than reading some random numbers from memory.

7 years agogl/format: correct return enums in gst_gl_format_from_video_info
Scott D Phillips [Tue, 14 Mar 2017 21:18:17 +0000 (14:18 -0700)]
gl/format: correct return enums in gst_gl_format_from_video_info

In commit

> 956c4d0 gl/format: use our own GL format enum's instead of gstvideo's

the name and return type of gst_gl_format_from_video_info changed,
but some returns of the old type were missed. Here they are
updated to the correct type.

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

7 years agosrtp test: Remove deprecation disabling
Olivier Crête [Tue, 14 Mar 2017 20:46:14 +0000 (16:46 -0400)]
srtp test: Remove deprecation disabling

No deprecated APIs are used.

7 years agodashdemux: Advance subfragment only if any exist
Seungha Yang [Tue, 7 Mar 2017 12:56:03 +0000 (21:56 +0900)]
dashdemux: Advance subfragment only if any exist

SIDX based playback is not restricted to SegmentBase, but it possible
with SegmentList/SegmentTemplate. In the latter case, each fragment
has its own SIDX box and might be subdivided into subfragment.
So, demux should not assume that the end of subfragment is the end
of stream. Moreover, should try advance subfragment only if there
are remaining subfragments.

With additional fixes by Sebastian Dröge <sebastian@centricular.com>

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

7 years agokmssink: adjust memory offset calculation for dmabuf buffers
George Kiagiadakis [Mon, 13 Mar 2017 14:06:53 +0000 (16:06 +0200)]
kmssink: adjust memory offset calculation for dmabuf buffers

The data in the dmabuf fd may not start from byte 0, therefore
we need to inform DRM about this additional offset.

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

7 years agoglupload: adjust memory offset calculation for dmabuf buffers
George Kiagiadakis [Mon, 13 Mar 2017 13:48:33 +0000 (15:48 +0200)]
glupload: adjust memory offset calculation for dmabuf buffers

The data in the dmabuf fd may not start from byte 0, therefore
we need to inform EGL about this additional offset.

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

7 years agowaylandsink: fix memory offset calculation for dmabuf buffers
George Kiagiadakis [Mon, 13 Mar 2017 10:46:47 +0000 (12:46 +0200)]
waylandsink: fix memory offset calculation for dmabuf buffers

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

7 years agoRevert "adaptivedemux: answer duration queries for live streams"
Matthew Waters [Tue, 14 Mar 2017 05:49:25 +0000 (16:49 +1100)]
Revert "adaptivedemux: answer duration queries for live streams"

Completely disabling duration reporting with live streams is not cool.

This reverts commit e1b68d9a65ba512a52c3a2b298fa830a445eb451.

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

7 years agogl: GL_ARRAY_BUFFER is not a part of VAO state
Matthew Waters [Tue, 14 Mar 2017 03:15:00 +0000 (14:15 +1100)]
gl: GL_ARRAY_BUFFER is not a part of VAO state

As a result we need to bind it on every draw in order to have the
correct state in the GL state machine.

7 years agoapplemedia/iosurfacememory: Fix missing variable name change
Matthew Waters [Tue, 14 Mar 2017 00:39:23 +0000 (11:39 +1100)]
applemedia/iosurfacememory: Fix missing variable name change

956c4d0bde4d6707ccae2b4ae6dfba8500e55217 missed a variable name change.
Fix that.

7 years agogl/format: use our own GL format enum's instead of gstvideo's
Matthew Waters [Mon, 13 Mar 2017 03:28:47 +0000 (14:28 +1100)]
gl/format: use our own GL format enum's instead of gstvideo's

They can describe in more detail (such as component sizes) the requested format.

7 years agoglupload: fix GValue leak
Vincent Penquerc'h [Fri, 10 Mar 2017 16:57:51 +0000 (16:57 +0000)]
glupload: fix GValue leak

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

7 years agoAdd old plugins names to cruft list
Nicolas Dufresne [Sun, 12 Mar 2017 15:50:50 +0000 (11:50 -0400)]
Add old plugins names to cruft list

This helps fixing uninstalled setup. Also fixes some path in plugin xml
files.

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

7 years agoshmsink: continue polling after EINTR
Samuel Maroy [Wed, 23 Sep 2015 15:12:34 +0000 (17:12 +0200)]
shmsink: continue polling after EINTR

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

7 years agoplayer: Fix setting of external subtitle URI
Haihua Hu [Thu, 2 Mar 2017 06:36:56 +0000 (14:36 +0800)]
player: Fix setting of external subtitle URI

gst_player_set_uri_internal shouldn't free suburi which maybe set
by user to load external subtitle before start play. It just need
reset playbin's subutri property to NULL no matter if there was a
previous one or not.

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

7 years agoavfvideosrc: Use AVCaptureDeviceTypeBuiltInDuoCamera instead of DualCamera for now
Sebastian Dröge [Thu, 9 Mar 2017 08:09:40 +0000 (10:09 +0200)]
avfvideosrc: Use AVCaptureDeviceTypeBuiltInDuoCamera instead of DualCamera for now

The former is deprecated in 10.2 but we don't require that SDK yet.

7 years agoFix doc generation
Nicolas Dufresne [Thu, 9 Mar 2017 03:28:15 +0000 (22:28 -0500)]
Fix doc generation

This regression was caused by the renaming of plugin-sdp into
plugin-sdpelem. The doc reference needed an update. Also, add the old
xml to the cruft file list.

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

7 years agodash/smoothstreaming: Use GST_PLUGIN_LIBTOOLFLAGS
Nicolas Dufresne [Sun, 5 Mar 2017 20:27:11 +0000 (15:27 -0500)]
dash/smoothstreaming: Use GST_PLUGIN_LIBTOOLFLAGS

Use the flags defined by configure script instead of always disabling
static plugins.

7 years agoRename plugin filesnames to match plugin names
Nicolas Dufresne [Sat, 4 Mar 2017 16:03:53 +0000 (11:03 -0500)]
Rename plugin filesnames to match plugin names

- libgstgtksink.so -> libgstgtk.so
- libgstteletextdec.so -> libgstteletex.so
- libgstcamerabin2.so -> libgstcamerabin.so
- libgstonvif.so -> libgstrtponvif.so (meson only)
- sdp -> sdpelem (avoid clash with libgstsdp)
- gstsiren -> siren
- libgstkmssink.so -> libgstkms.so

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

7 years agotimecodestamper: Only unref daily jam if not NULL
Sebastian Dröge [Wed, 8 Mar 2017 13:52:43 +0000 (15:52 +0200)]
timecodestamper: Only unref daily jam if not NULL

7 years agotimecodestamper: Unref daily jam after usage
Sebastian Dröge [Wed, 8 Mar 2017 13:48:19 +0000 (15:48 +0200)]
timecodestamper: Unref daily jam after usage

7 years agoapplemedia/gl: Fix compile issues for OSX
Nick Kallen [Wed, 8 Mar 2017 13:16:43 +0000 (14:16 +0100)]
applemedia/gl: Fix compile issues for OSX

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

7 years agogl/eagl: It's -fobjc-arc not -fobj-arc
Sebastian Dröge [Wed, 8 Mar 2017 13:13:45 +0000 (15:13 +0200)]
gl/eagl: It's -fobjc-arc not -fobj-arc

7 years agoh264parse: frame->buffer can't be NULL in pre_push_frame()
Sebastian Dröge [Wed, 8 Mar 2017 12:22:52 +0000 (14:22 +0200)]
h264parse: frame->buffer can't be NULL in pre_push_frame()

CID 1402118