platform/upstream/gstreamer.git
7 years agodashdemux: Use the current clock running time in addition to the QoS earliest time
Sebastian Dröge [Tue, 28 Mar 2017 11:12:12 +0000 (14:12 +0300)]
dashdemux: Use the current clock running time in addition to the QoS earliest time

7 years agodashdemux: Download keyframes from the current position if we're far enough ahead
Sebastian Dröge [Mon, 27 Mar 2017 14:52:36 +0000 (17:52 +0300)]
dashdemux: Download keyframes from the current position if we're far enough ahead

Far enough here means more than 500ms or 4 times the average keyframe
download time. There is no need to jump ahead by one average keyframe
download time in this case.

This makes playback smooth if the network is fast enough.

7 years agodashdemux: Fix sync sample selection based on target time in reverse playback mode
Sebastian Dröge [Wed, 22 Mar 2017 10:05:20 +0000 (12:05 +0200)]
dashdemux: Fix sync sample selection based on target time in reverse playback mode

7 years agodashdemux: Snap-seek for skipping ahead and use actual keyframe distance in the curre...
Sebastian Dröge [Wed, 22 Mar 2017 09:21:47 +0000 (11:21 +0200)]
dashdemux: Snap-seek for skipping ahead and use actual keyframe distance in the current fragment if applicable

7 years agodashdemux: Don't adjust for fragment duration twice when seeking ahead in KEYUNITS...
Sebastian Dröge [Wed, 15 Mar 2017 14:47:59 +0000 (16:47 +0200)]
dashdemux: Don't adjust for fragment duration twice when seeking ahead in KEYUNITS mode

7 years agodashdemux: Add current fragment duration in reverse playback mode to the position
Sebastian Dröge [Wed, 15 Mar 2017 14:46:55 +0000 (16:46 +0200)]
dashdemux: Add current fragment duration in reverse playback mode to the position

We play from the end of the fragment to the beginning, not from the
beginning backwards.

7 years agodashdemux: Never take more than the current fragment duration for estimations inside...
Sebastian Dröge [Wed, 15 Mar 2017 14:45:33 +0000 (16:45 +0200)]
dashdemux: Never take more than the current fragment duration for estimations inside the fragment

Taking the average might give us from results.

7 years agodashdemux: Don't increase current position if we just downloaded the moof in KEYUNIT...
Sebastian Dröge [Mon, 6 Mar 2017 12:27:20 +0000 (14:27 +0200)]
dashdemux: Don't increase current position if we just downloaded the moof in KEYUNIT mode

7 years agodashdemux: Improve key-unit trick mode downloading
Edward Hervey [Thu, 12 Jan 2017 14:54:37 +0000 (15:54 +0100)]
dashdemux: Improve key-unit trick mode downloading

When dealing with key-unit trick mode downloads, the goal is to
provide the best "Quality of Experience". This is achieved by:
1) maximizing the number of frames displayed per second
2) avoiding "stalling" as much as possible (i.e. not downloading and
  decoding frames fast enough)

This implementation achives this by:
1) Knowing very precisely the current keyframe being download (i.e
  more accurate than at the fragment level which might contain more
  than one keyfram). This is the new "actual_position" variable
  introduced by this commit
2) Knowing the position of downstream (provided by QoS and stored
  in the adaptivedemuxstream qos_earliest_time variable)
3) Knowing how long it takes to request and fully download a keyframe
  (the average_download_time variable)

Taking those 3 variables into account, whenever a keyframe has been
pushed downstream we calculate a "target time" (target_time variable)
which is the ideal next keyframe time to request so that:
1) It will be requested/downloaded/demuxed/decoded in time to be
  displayed without being too late
2) It will not be too far ahead that it would cause too few frames
  per second to be displayed.

How far ahead we will request is inversily proportional to how close
the actual position (actual_position) is from the downstream
position (qos_earliest_time). The more is buffered between the source
and the sink, the "closer" the target time will be, and therefore
the more frames per seconds will be displayed (up to the limit
of keyframes_per_second * absolute_rate).

7 years agodashdemux: Store average download time
Edward Hervey [Wed, 11 Jan 2017 16:11:27 +0000 (17:11 +0100)]
dashdemux: Store average download time

This will be used to bound the download rate when working in
keyframe-only trick mode

7 years agoadaptivedemux: Add various comments to the code
Edward Hervey [Wed, 11 Jan 2017 16:08:36 +0000 (17:08 +0100)]
adaptivedemux: Add various comments to the code

7 years agoadaptivedemux: Store QoS time
Edward Hervey [Tue, 15 Nov 2016 07:13:27 +0000 (08:13 +0100)]
adaptivedemux: Store QoS time

Allows subclasses to know where downstream is and make decisions
based upon that

7 years agodashdemux: Collect keyunit distance and size statistics
Sebastian Dröge [Thu, 1 Sep 2016 14:47:11 +0000 (17:47 +0300)]
dashdemux: Collect keyunit distance and size statistics

7 years agodashdemux: Disable bitrate switching in key-unit trick mode
Edward Hervey [Mon, 7 Nov 2016 11:22:09 +0000 (12:22 +0100)]
dashdemux: Disable bitrate switching in key-unit trick mode

This creates too much havoc for now

7 years agodashdemux: Use new adaptivedemux trickmode macro
Edward Hervey [Mon, 31 Oct 2016 09:08:35 +0000 (10:08 +0100)]
dashdemux: Use new adaptivedemux trickmode macro

Reduces the lines of code, and makes it a bit more readable

7 years agoadaptivedemux: Add a macro to know if we are in trickmode-keyunit
Edward Hervey [Mon, 31 Oct 2016 09:08:04 +0000 (10:08 +0100)]
adaptivedemux: Add a macro to know if we are in trickmode-keyunit

Reduces the amount of lines of code in subclasses

7 years agouvch264src: Apply timestamps to outgoing aux buffers
Jan Schmidt [Thu, 18 May 2017 13:57:22 +0000 (15:57 +0200)]
uvch264src: Apply timestamps to outgoing aux buffers

When extracting an aux buffer from an MJPG carrier, at
*least* put the original timestamp on it, even if we
fail to apply any other timestamp (which we always do
at the moment, because the timestamp calculating code
was never finished). Apply a DTS using the camera
supplied delay value as well, assuming that there's
no re-ordering going on (there isn't in the C920,
which is really the only extant camera doing this
stuff) and a warning if that turns out not to be true.

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 agomotioncells: delay motionmaskcoords until caps arrive
Dmitry Zhadinets [Sun, 7 May 2017 19:50:00 +0000 (19:50 +0000)]
motioncells: delay motionmaskcoords until caps arrive

motionmaskcoords is not applied on start because the information
about resolution isn't available until caps arrive.

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

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 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 agostereo: fix typo in plugin description
Tim-Philipp Müller [Thu, 18 May 2017 09:53:48 +0000 (10:53 +0100)]
stereo: fix typo in plugin description

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 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 agogst: Clear floating flag in constructor of all GstObject subclasses that are not...
Sebastian Dröge [Mon, 15 May 2017 17:31:31 +0000 (20:31 +0300)]
gst: Clear floating flag in constructor of all GstObject subclasses that are not owned by any parent

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

7 years agodecklink: Sink the clock reference in the constructor
Sebastian Dröge [Mon, 15 May 2017 11:23:44 +0000 (14:23 +0300)]
decklink: Sink the clock reference in the constructor

This is now needed as GstClock does not do that internally anymore,
because that broke bindings.

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

7 years agoqml: Add EGL platform support for x11 backend
Haihua Hu [Wed, 17 May 2017 02:58:05 +0000 (10:58 +0800)]
qml: Add EGL platform support for x11 backend

Add support for EGL platform when x11 is available. This can work
e.g. on imx6 platform.

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

7 years agoRemove plugin specific static build option
Nicolas Dufresne [Tue, 16 May 2017 18:05:52 +0000 (14:05 -0400)]
Remove plugin specific static build option

Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.

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 agoadaptivedemux: Handle stop_type:SET, stop:NONE
Edward Hervey [Mon, 15 May 2017 16:10:11 +0000 (18:10 +0200)]
adaptivedemux: Handle stop_type:SET, stop:NONE

Seek values of type GST_SEEK_TYPE_SET with values of GST_CLOCK_TIME_NONE
are perfectly valid (we essentially don't modify the existing position)

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 agoglshader: Make reference counting of attach() consistent
Sebastian Dröge [Mon, 15 May 2017 09:00:50 +0000 (12:00 +0300)]
glshader: Make reference counting of attach() consistent

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

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 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 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 agohlssink2: New HLS sink element based on splitmuxsink
Sebastian Dröge [Wed, 19 Apr 2017 12:47:57 +0000 (13:47 +0100)]
hlssink2: New HLS sink element based on splitmuxsink

This embeds the muxer inside the sink and accepts elementary streams
while the old HLS sink required the muxer outside. Apart from that the
interface is the same as before.
Currently only mpegtsmux is supported, but support for other muxers is
just a matter of adding a property.

The advantage of the new sink is that it reduces complexity a lot and
properly handles pre-encoded streams with appropriately spaced
keyframes.

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

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 agodecklinkaudiosrc: Consistently pass stream_time and stream_duration to audio/video src
Sebastian Dröge [Fri, 12 May 2017 09:35:39 +0000 (11:35 +0200)]
decklinkaudiosrc: Consistently pass stream_time and stream_duration to audio/video src

It's the same value now, pass it consistently.

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 agoaudiobuffersplit: Allow changing the output-buffer-duration at any time
Sebastian Dröge [Thu, 11 May 2017 16:39:46 +0000 (18:39 +0200)]
audiobuffersplit: Allow changing the output-buffer-duration at any time

Previously this was only allowed before the CAPS event arrived.

7 years agoopencv/meson: Allow 3.2.0
Nicolas Dufresne [Tue, 9 May 2017 19:13:10 +0000 (15:13 -0400)]
opencv/meson: Allow 3.2.0

This was already added and tested in autoconf.

7 years agobuild/gl/meson: check for GLES3/gl3ext.h existence
Matthew Waters [Thu, 11 May 2017 10:05:24 +0000 (20:05 +1000)]
build/gl/meson: check for GLES3/gl3ext.h existence

791e7522ebcb75beb31fcace271dee1342d3505d for meson

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

7 years agobuild: Check for GLES3/gl3ext.h existence
Jens Georg [Thu, 11 May 2017 08:29:58 +0000 (10:29 +0200)]
build: Check for GLES3/gl3ext.h existence

Some OpenGL drivers do not ship this but use GLES2/gl2ext.h instead.
This is also in line with Khronos's recommendations

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

7 years agomsdk: Declare libmfx.a as a C++ static library
Scott D Phillips [Thu, 11 May 2017 05:29:10 +0000 (22:29 -0700)]
msdk: Declare libmfx.a as a C++ static library

This lets meson know that the overall plugin needs built with C++
linking.

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

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 agoopencv/meson: Ensure variable opencv_found is set
Nicolas Dufresne [Tue, 9 May 2017 19:06:52 +0000 (15:06 -0400)]
opencv/meson: Ensure variable opencv_found is set

If the required version is not satisfied, we need to make sure this
variable is set, otherwise build will fail.

7 years agoBump and update for meson 0.40.1
Nicolas Dufresne [Tue, 9 May 2017 17:16:50 +0000 (13:16 -0400)]
Bump and update for meson 0.40.1

This patch bumps the required meson to 0.40.1 as gstreamer core just
did, and cleanup some code to use a feature from 0.37 that allow
specifying version range when checking dependency.

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

7 years agoopusparse: do not drop preskip and gain from OpusHead header
Vincent Penquerc'h [Fri, 5 May 2017 10:05:40 +0000 (11:05 +0100)]
opusparse: do not drop preskip and gain from OpusHead header

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

7 years agoqmlgl: Make the plugin name match the pugin file name
Nicolas Dufresne [Tue, 9 May 2017 13:47:10 +0000 (09:47 -0400)]
qmlgl: Make the plugin name match the pugin file name

7 years agogme: Make the plugin name match the plugin library name
Nicolas Dufresne [Tue, 9 May 2017 13:43:01 +0000 (09:43 -0400)]
gme: Make the plugin name match the plugin library name

7 years agoneon: Make the plugin name match the plugin library
Nicolas Dufresne [Tue, 9 May 2017 13:41:17 +0000 (09:41 -0400)]
neon: Make the plugin name match the plugin library

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 agoadaptivedemux: Handle more live seeking use-cases
Edward Hervey [Mon, 8 May 2017 13:34:50 +0000 (15:34 +0200)]
adaptivedemux: Handle more live seeking use-cases

This commit fixes the following assumptions with live seeking:
1) start was always valid and of type GST_SEEK_TYPE_SET
2) direction was always forward
3) stop should be offsetted when handling non-accurate seeks before
   the range start position.

In order to handle more live seeking use-cases (including reverse playback),
only do non-accurate start/stop value clamping for GST_SEEK_TYPE_SET values.

Also add a bit more debugging lines for issues

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

7 years agoadaptivedemux: Implement GST_SEEK_TYPE_END usage for live
Edward Hervey [Fri, 5 May 2017 16:25:43 +0000 (18:25 +0200)]
adaptivedemux: Implement GST_SEEK_TYPE_END usage for live

When dealing with live streams, we can't rely on GstSegment calculation
since it uses the segment duration to calculate the absolute values.

But since we are dealing with live *and* we know the ranges, we can
compute the absolute seeking values using the range stop (i.e. "now")
as the END position.

Allows seeking back to "live" by using start_type:GST_SEEK_TYPE_END
and start:0

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

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 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 agoglvideomixer: fix whole example launch line actually
Tim-Philipp Müller [Sun, 7 May 2017 10:47:40 +0000 (11:47 +0100)]
glvideomixer: fix whole example launch line actually

7 years agoglvideomixer: remove extraneous \ from example launch line in docs
Tim-Philipp Müller [Sun, 7 May 2017 10:41:06 +0000 (11:41 +0100)]
glvideomixer: remove extraneous \ from example launch line in docs

7 years agoadaptivedemux: Allow live seeking range to go back to "now"
Edward Hervey [Fri, 5 May 2017 16:22:18 +0000 (18:22 +0200)]
adaptivedemux: Allow live seeking range to go back to "now"

The allowed live seek ranges returned by subclasses are "inclusive", that is
to say that the "range_stop" value they return is the highest acceptable position
one can seek to (i.e. "now").

Allow seeking to exactly that value

7 years agoRevert "decklink: Fix debug logging warnings on Windows"
Nirbheek Chauhan [Fri, 5 May 2017 13:22:24 +0000 (18:52 +0530)]
Revert "decklink: Fix debug logging warnings on Windows"

This reverts commit 845832263ba6b9e135b23e9a29c9d109cb2ee9c4.

The commit broke cross-mingw CI:
https://ci.gstreamer.net/job/GStreamer-master/8659/console

It seems that cross-mingw on Autotools and native-mingw on Meson
disagree about the size of HRESULT. Revert for now till I can
investigate the Meson side of things some more.

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 agodecklink: Fix debug logging warnings on Windows
Nirbheek Chauhan [Thu, 4 May 2017 22:29:45 +0000 (03:59 +0530)]
decklink: Fix debug logging warnings on Windows

HRESULT is unsigned long int, not unsigned int

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 agoBack to development
Sebastian Dröge [Thu, 4 May 2017 15:59:14 +0000 (18:59 +0300)]
Back to development

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

7 years agonvenc: Stop bitstream thread in ::stop()
Ole André Vadla Ravnås [Mon, 17 Apr 2017 17:25:49 +0000 (19:25 +0200)]
nvenc: Stop bitstream thread in ::stop()

Otherwise we are likely to crash if EOS didn't happen yet.

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

7 years agonvenc: Update to the current gstreamer-gl API
Ole André Vadla Ravnås [Fri, 14 Apr 2017 11:58:21 +0000 (13:58 +0200)]
nvenc: Update to the current gstreamer-gl API

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