platform/upstream/gstreamer.git
7 years agomotioncells: Initialize m_changed_datafile class field
Sebastian Dröge [Tue, 28 Feb 2017 10:53:11 +0000 (12:53 +0200)]
motioncells: Initialize m_changed_datafile class field

CID 1197704

7 years agogme: Remove useless comparison of unsigned integer with < 0
Sebastian Dröge [Tue, 28 Feb 2017 10:46:42 +0000 (12:46 +0200)]
gme: Remove useless comparison of unsigned integer with < 0

CID 206187

7 years agoglcolorconvert: Check return value of gst_gl_context_check_framebuffer_status()
Sebastian Dröge [Tue, 28 Feb 2017 10:34:30 +0000 (12:34 +0200)]
glcolorconvert: Check return value of gst_gl_context_check_framebuffer_status()

CID 1401588

7 years agogl: Add viv-fb to DIST_SUBDIRS to fix "make distcheck"
Sebastian Dröge [Tue, 28 Feb 2017 10:31:54 +0000 (12:31 +0200)]
gl: Add viv-fb to DIST_SUBDIRS to fix "make distcheck"

7 years agogl: Rename gst_gl_get_affine_transformation_meta_as_ndc_ext() to prevent symbol conflict
Sebastian Dröge [Tue, 28 Feb 2017 08:53:04 +0000 (10:53 +0200)]
gl: Rename gst_gl_get_affine_transformation_meta_as_ndc_ext() to prevent symbol conflict

The same symbol also exists in libgstgl, although marked as private and
internal. This has no effect when doing static linking and there's a
symbol conflict.

7 years agoglutils: Mark private functions as G_GNUC_INTERNAL
Sebastian Dröge [Tue, 28 Feb 2017 08:50:23 +0000 (10:50 +0200)]
glutils: Mark private functions as G_GNUC_INTERNAL

7 years agompegtsdemux: Fix wrong usage of '<<' operator
Edward Hervey [Tue, 28 Feb 2017 08:26:25 +0000 (09:26 +0100)]
mpegtsdemux: Fix wrong usage of '<<' operator

Detected by GCC 7.

Add comments for clarity

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

7 years agoaudiomixmatric: Add missing libm deps for meson
Nicolas Dufresne [Tue, 28 Feb 2017 02:22:30 +0000 (21:22 -0500)]
audiomixmatric: Add missing libm deps for meson

7 years agoh264parse: Include `interlace-mode` in caps
Thibault Saunier [Mon, 27 Feb 2017 13:32:45 +0000 (10:32 -0300)]
h264parse: Include `interlace-mode` in caps

Those are the rules:

In the SPS:
  * if frame_mbs_only_flag=1 => all frame progressive
  * if frame_mbs_only_flag=0 => field_pic_flag defines if each frame is
    progressive or interlaced, thus the mode is 'mixed' in GStreamer
    terms.

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

7 years agoiqa: Plug a leak allocating twice the same data
Thibault Saunier [Tue, 14 Feb 2017 14:09:46 +0000 (11:09 -0300)]
iqa: Plug a leak allocating twice the same data

7 years agopkg-config: Add both srcdir and builddir to the include path
Sebastian Dröge [Mon, 27 Feb 2017 17:13:11 +0000 (19:13 +0200)]
pkg-config: Add both srcdir and builddir to the include path

Just the build dir is not going to work for srcdir!=builddir.

7 years agotsparse: Convert PCR values immediately
Jan Schmidt [Mon, 27 Feb 2017 12:47:25 +0000 (23:47 +1100)]
tsparse: Convert PCR values immediately

Doing lazy conversion of PCR values doesn't work right
when a PCR discont is encountered. Instead, convert PCR
values to the continuous timestamp domain as soon as we
encounter them and store that instead.

7 years agoglupload: Add support for Vivante DirectTexture uploads
Sebastian Dröge [Wed, 22 Feb 2017 12:55:58 +0000 (14:55 +0200)]
glupload: Add support for Vivante DirectTexture uploads

Together with the upcoming gstreamer-imx patch, this allows zerocopy
between imxvpudec and other elements and glimagesink.

This is losely based on a patch by Haihua Hu <b55597@freescale.com>
from https://github.com/Freescale/meta-freescale/blob/master/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/

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

7 years agoallocators: Add GstPhysMemoryAllocator abstraction
Sebastian Dröge [Fri, 17 Feb 2017 17:26:41 +0000 (19:26 +0200)]
allocators: Add GstPhysMemoryAllocator abstraction

This can be used in a generic way as common interface by all platforms that,
in one way or another, pass around physical memory addresses.

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

7 years agoqml: Add support for Vivante EGL FS windowing system
Sebastian Dröge [Fri, 17 Feb 2017 12:37:08 +0000 (14:37 +0200)]
qml: Add support for Vivante EGL FS windowing system

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

7 years agogl: Add support for Vivante EGL FB windowing system
Sebastian Dröge [Fri, 17 Feb 2017 10:24:58 +0000 (12:24 +0200)]
gl: Add support for Vivante EGL FB windowing system

This is very similar to how dispmanx on the Raspberry Pi works.

Based on a patch by Haihua Hu <b55597@freescale.com> from
https://github.com/Freescale/meta-freescale/tree/master/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad

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

7 years agoUpdate Edgard Lima's email
Edgard Lima [Sun, 26 Feb 2017 00:47:47 +0000 (21:47 -0300)]
Update Edgard Lima's email

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

7 years agorawparse: Move to gst-plugins-base and keep legacy audioparse/videoparse here
Sebastian Dröge [Sat, 25 Feb 2017 12:43:55 +0000 (14:43 +0200)]
rawparse: Move to gst-plugins-base and keep legacy audioparse/videoparse here

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

7 years agomeson: Update version
Sebastian Dröge [Fri, 24 Feb 2017 13:59:44 +0000 (15:59 +0200)]
meson: Update version

7 years agoBack to development
Sebastian Dröge [Fri, 24 Feb 2017 13:37:40 +0000 (15:37 +0200)]
Back to development

7 years agoRelease 1.11.2
Sebastian Dröge [Fri, 24 Feb 2017 13:07:38 +0000 (15:07 +0200)]
Release 1.11.2

7 years agoUpdate .po files
Sebastian Dröge [Fri, 24 Feb 2017 10:53:00 +0000 (12:53 +0200)]
Update .po files

7 years agopo: Update translations
Sebastian Dröge [Fri, 24 Feb 2017 10:46:06 +0000 (12:46 +0200)]
po: Update translations

7 years agomeson: Added meson.build for audiomixmatrix and timecode
Vivia Nikolaidou [Thu, 23 Feb 2017 23:28:35 +0000 (01:28 +0200)]
meson: Added meson.build for audiomixmatrix and timecode

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

7 years agoglmemory: Use glBlitFramebuffer() instead of glCopyTexImage2D() if available
Sebastian Dröge [Wed, 22 Feb 2017 12:09:45 +0000 (14:09 +0200)]
glmemory: Use glBlitFramebuffer() instead of glCopyTexImage2D() if available

glBlitFramebuffer() is new GLES3/GL3 API. They are probably often
implemented in terms of each other, and glBlitFramebuffer() can
potentially be implemented more flexible. Let's use it if available.

Also it actually works on imx6 with DirectVIV textures.

Based on a patch by Haihua Hu <jared.hu@nxp.com> from
https://github.com/Freescale/meta-freescale/blob/master/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/

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

7 years agoaudiomixmatrix: New element that mixes audio channels
Vivia Nikolaidou [Mon, 16 Jan 2017 17:36:07 +0000 (19:36 +0200)]
audiomixmatrix: New element that mixes audio channels

This element transforms a given number of input channels into a given number of
output channels according to a given transformation matrix. The matrix
coefficients must be between -1 and 1. In the auto mode, input/output channels
are automatically negotiated and the transformation matrix is a truncated or
zero-padded identity matrix.

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

7 years agotimecodestamper: Remove clock-source property
Georg Lippitsch [Wed, 22 Feb 2017 21:31:17 +0000 (22:31 +0100)]
timecodestamper: Remove clock-source property

Remove clock-source property, because the GST clock usually starts at
some random value and is thus uselsess for creating a timecode from it.

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

7 years agotimecodestamper: First timecode from current system time
Georg Lippitsch [Wed, 22 Feb 2017 21:30:17 +0000 (22:30 +0100)]
timecodestamper: First timecode from current system time

Add a new flag which automatically sets this first timecode to the
current system time in local time zone.

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

7 years agotimecodestamper: First timecode property
Georg Lippitsch [Wed, 22 Feb 2017 21:26:57 +0000 (22:26 +0100)]
timecodestamper: First timecode property

Add an new property to start from a given timecode
instead of zero.

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

7 years agowebrtcdsp: expose new properties.
Mathieu Duponchelle [Wed, 22 Feb 2017 01:17:35 +0000 (02:17 +0100)]
webrtcdsp: expose new properties.

This gives the user more control over the gain control
and experimental gain control behaviour.

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

7 years agobluez: Chain up to basesrc query instead of override pad query function
Arun Raghavan [Fri, 17 Feb 2017 10:39:53 +0000 (16:09 +0530)]
bluez: Chain up to basesrc query instead of override pad query function

Overriding the pad query function completely overrides all the default
query handling implemented in basesrc, including caps etc. The correct
thing to do is just override the basesrc query vfunc and then chain up
for the queries we don't handle.

7 years agoaudiobuffersplit: Add strict-buffer-size property
Vivia Nikolaidou [Mon, 20 Feb 2017 16:58:11 +0000 (18:58 +0200)]
audiobuffersplit: Add strict-buffer-size property

If set to TRUE, any last audio samples too small to fill a buffer will
be discarded.

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

7 years agowaylandsink: consider buffer size when copying to wl shm pool
Fabien Dessenne [Mon, 30 Jan 2017 10:04:32 +0000 (11:04 +0100)]
waylandsink: consider buffer size when copying to wl shm pool

When the sink receives a buffer that is neither a wl_shm one nor a
dmabuf one, this buffer is copied to an internal wl_shm buffer before
being sent to the display.
In that case, the actual size of the received buffer (which may differ
from the one negotiated in the caps) must be used.

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

7 years agohlsdemux: Fix GHashTable leak
Seungha Yang [Fri, 17 Feb 2017 12:25:21 +0000 (21:25 +0900)]
hlsdemux: Fix GHashTable leak

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

7 years agorawbaseparse: Drop incomplete frames at EOS
Sebastian Dröge [Sat, 18 Feb 2017 18:18:50 +0000 (20:18 +0200)]
rawbaseparse: Drop incomplete frames at EOS

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

This would ideally be solved in baseparse but that requires further
thought at this point, and in the meantime it would be good to have
rawbaseparse not assert on this but handle it gracefully instead.

7 years agoconfigure: Remove unused Mali EGL/fbdev_window support
Sebastian Dröge [Thu, 16 Feb 2017 18:08:35 +0000 (20:08 +0200)]
configure: Remove unused Mali EGL/fbdev_window support

This existed a long time ago but there's no actual code for this
anymore.

7 years agopkgconfig: fix uninstalled .pc files for codecparsers + mpegts
Tim-Philipp Müller [Wed, 15 Feb 2017 19:07:32 +0000 (19:07 +0000)]
pkgconfig: fix uninstalled .pc files for codecparsers + mpegts

Really need to include the srcdir for codecparsers, and build dir
for mpegts.

7 years agoFix distcheck
Tim-Philipp Müller [Tue, 14 Feb 2017 23:00:06 +0000 (23:00 +0000)]
Fix distcheck

Don't use wildcards in Makefile.am, buildbot doesn't seem
to like them.

7 years agowin32: remove disted enumtypes files which are no longer used
Tim-Philipp Müller [Tue, 14 Feb 2017 20:23:12 +0000 (20:23 +0000)]
win32: remove disted enumtypes files which are no longer used

7 years agomeson: dist meson build files
Tim-Philipp Müller [Tue, 14 Feb 2017 20:19:44 +0000 (20:19 +0000)]
meson: dist meson build files

Ship meson build files in tarballs, so people who use tarballs
in their builds can start playing with meson already.

7 years agoBuilds for MacOS
Nick Kallen [Tue, 14 Feb 2017 12:04:01 +0000 (13:04 +0100)]
Builds for MacOS

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

7 years agoapplemedia: free videotexturecache texture in gl thread
Nick Kallen [Fri, 10 Feb 2017 10:32:23 +0000 (11:32 +0100)]
applemedia: free videotexturecache texture in gl thread

The cached texture was treated as user_data passed to GstGLBaseMemory
and freed with a GDestroyNotify function. However, this data must
be treated specially: it must be destroyed in the GL thread.

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

7 years agoGstGLSinkBin: fixed sink property leak
Juan Pablo Ugarte [Fri, 10 Feb 2017 13:29:49 +0000 (10:29 -0300)]
GstGLSinkBin: fixed sink property leak

No need to keep an extra reference to sink since an indirect one is added by gst_bin_add()

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

7 years agoshm: Change example pipelines to something that actually works
Sebastian Dröge [Mon, 13 Feb 2017 11:32:14 +0000 (13:32 +0200)]
shm: Change example pipelines to something that actually works

Enforce exactly the same raw video format on both sides, include a
videoconvert and queue before the video sink and make the shm area a
little bit bigger so that things don't get stuck.

7 years agoadaptivedemux: Convert premature EOS on non-exposed pads to ERROR
Jan Schmidt [Wed, 8 Feb 2017 14:12:56 +0000 (01:12 +1100)]
adaptivedemux: Convert premature EOS on non-exposed pads to ERROR

If we need to send EOS on a pad that hasn't prerolled, generate
an error on the bus instead, otherwise the app will have no idea.

Fixes the HLS testFragmentNotFound test, which is waiting
for either EOS or an error.

7 years agoadaptivedemux: Handle errors from prepared_streams too
Jan Schmidt [Wed, 8 Feb 2017 13:54:07 +0000 (00:54 +1100)]
adaptivedemux: Handle errors from prepared_streams too

Check both active and prepared_streams when we receive an
error on the bus, so we post errors for streams that are
still pre-rolling

7 years agoadaptivedemux: Allow that
Jan Schmidt [Wed, 8 Feb 2017 13:16:33 +0000 (00:16 +1100)]
adaptivedemux: Allow that

7 years agoadaptivedemux: Fix tests for delayed pad exposure.
Jan Schmidt [Wed, 8 Feb 2017 11:59:49 +0000 (22:59 +1100)]
adaptivedemux: Fix tests for delayed pad exposure.

Make the unit tests handle the fact that pads don't appear
immediately. Before, the test assumed pads are exposed before the
internal source element is created, which is no longer true.

7 years agoamcvideoenc: Encoder output is generally not properly parsed
Sebastian Dröge [Tue, 7 Feb 2017 17:44:54 +0000 (19:44 +0200)]
amcvideoenc: Encoder output is generally not properly parsed

Don't claim it is and let h264parse and other parsers do their job.

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

7 years agoamcvideoenc: Set timestamps on header buffers too
Sebastian Dröge [Tue, 7 Feb 2017 17:42:47 +0000 (19:42 +0200)]
amcvideoenc: Set timestamps on header buffers too

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

7 years agoamcvideoenc: Encoded H264 is generally not AU aligned
Sebastian Dröge [Tue, 7 Feb 2017 17:42:00 +0000 (19:42 +0200)]
amcvideoenc: Encoded H264 is generally not AU aligned

Claiming that it is, can cause h264parse to skip some parsing steps and
the output stays unaligned.

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

7 years agoadaptivedemux: Fix bitrate printed in debug
Jan Schmidt [Fri, 13 Jan 2017 12:10:52 +0000 (23:10 +1100)]
adaptivedemux: Fix bitrate printed in debug

The download bitrate is already in bits per second,
no need to multiply it by 8 again when printing it
for debug.

7 years agohlsdemux: Redo typefind after stripping tags
Jan Schmidt [Wed, 11 Jan 2017 01:34:58 +0000 (12:34 +1100)]
hlsdemux: Redo typefind after stripping tags

When stripping the ID3 header, redo typefinding so
we set audio caps instead of still setting id3
caps and plugging a useless id3demux

7 years agoadaptivedemux: Preroll streams before exposing them
Jan Schmidt [Sat, 7 Jan 2017 03:12:05 +0000 (12:12 +0900)]
adaptivedemux: Preroll streams before exposing them

To ensure that pads have caps when they are exposed, do
the exposing when all pending streams have prerolled an
output buffer, and only then EOS and remove any old pads.

Improves the switching sequence by making caps available
as soon as a pad appears.

With fixes from Seungha Yang <sh.yang@lge.com>

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

7 years agoopencv: allow compilation against 3.2.0
Nicola Murino [Fri, 3 Feb 2017 14:35:15 +0000 (15:35 +0100)]
opencv: allow compilation against 3.2.0

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

7 years agowaylandsink: set video surface opaque
Fabien Dessenne [Thu, 2 Feb 2017 15:47:52 +0000 (16:47 +0100)]
waylandsink: set video surface opaque

Unless the video format has an alpha component (ARGB, ...), set the
video_surface opaque.
In the usual case where the black area_surface has the same size as the
video_surface (eg: run gst-play-1.0 video.mp4), this makes the black
surface totally occluded which makes weston compositor's life easier
since it can ignore that surface.
Also unconditionally set the black area_surface opaque.

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

7 years agoavwait: Fix potential deadlock when flushing / shutting down audio
Vivia Nikolaidou [Thu, 2 Feb 2017 13:25:09 +0000 (15:25 +0200)]
avwait: Fix potential deadlock when flushing / shutting down audio

The mutex must be unlocked in the error case

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

7 years agodecklinkvideosink: Show video frames synchronously in PAUSED
Sebastian Dröge [Wed, 1 Feb 2017 15:11:37 +0000 (17:11 +0200)]
decklinkvideosink: Show video frames synchronously in PAUSED

Otherwise we will only show the preroll frame once PLAYING is reached,
which is rather suboptimal for e.g. seeking in PAUSED.

7 years agodecklinkvideosink: Do nothing if set_caps() is called with basically the same caps...
Sebastian Dröge [Wed, 1 Feb 2017 14:45:53 +0000 (16:45 +0200)]
decklinkvideosink: Do nothing if set_caps() is called with basically the same caps again

and error out here already otherwise. We currently don't support
reconfiguration here and it can't happen really either unless the auto
mode is selected.

7 years agodecklinkaudiosrc: Fix get_caps returning EMPTY
Vivia Nikolaidou [Wed, 1 Feb 2017 13:13:32 +0000 (15:13 +0200)]
decklinkaudiosrc: Fix get_caps returning EMPTY

If get_caps is called before negotiation, channels_found will be 0 and
therefore won't intersect with the template caps.

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

7 years agodewarp: Store C++ types as pointers in C structs
Sebastian Dröge [Wed, 1 Feb 2017 11:44:37 +0000 (13:44 +0200)]
dewarp: Store C++ types as pointers in C structs

Otherwise the destructor will never be called, and we would have to call
the constructors manually at some point... which we never did, so
calling release() on it before it got otherwise initialized caused a
crash. For example when running gst-inspect-1.0.

7 years agovkwindow: fix build error on i386
Matthew Waters [Wed, 1 Feb 2017 05:05:23 +0000 (16:05 +1100)]
vkwindow: fix build error on i386

Vulkan handles are either pointers (64-bit) or 64-bit integer
handles (32-bit). Cast the type in failure cases.

vkwindow.c:229:561: error: return makes integer from pointer without a cast [-Werror=int-conversion]
vkwindow.c:231:194: error: return makes integer from pointer without a cast [-Werror=int-conversion]

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

7 years agompegdemux: Add stream-format to the H.264 caps.
Jan Schmidt [Wed, 1 Feb 2017 03:44:32 +0000 (14:44 +1100)]
mpegdemux: Add stream-format to the H.264 caps.

H.264 in MPEG-PS is always byte-stream

7 years agompegdemux: Add extra length checks to TS scanning.
Jan Schmidt [Wed, 1 Feb 2017 03:37:29 +0000 (14:37 +1100)]
mpegdemux: Add extra length checks to TS scanning.

Add some missing size checks to the timestamp scanning
fast path.

7 years agopsdemux: Rewrite PSM parsing using GstByteReader
Jan Schmidt [Wed, 1 Feb 2017 03:25:32 +0000 (14:25 +1100)]
psdemux: Rewrite PSM parsing using GstByteReader

Avoid possible buffer overflows and ignore invalid PSM packets better
by using GstByteReader.

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

7 years agodecklink: Add to the meson Windows build
Sebastian Dröge [Fri, 27 Jan 2017 17:26:06 +0000 (19:26 +0200)]
decklink: Add to the meson Windows build

7 years agodecklink: Fix indentation
Sebastian Dröge [Fri, 27 Jan 2017 17:24:03 +0000 (19:24 +0200)]
decklink: Fix indentation

7 years agodecklink: Fix compilation on Windows by properly using COM strings there
Sebastian Dröge [Fri, 27 Jan 2017 17:23:48 +0000 (19:23 +0200)]
decklink: Fix compilation on Windows by properly using COM strings there

7 years agodecklink: Fix compilation with MSVC
Axel Menzel [Fri, 27 Jan 2017 17:15:28 +0000 (19:15 +0200)]
decklink: Fix compilation with MSVC

7 years agodecklink: Include stdint.h for int32_t, etc as needed by the Decklink headers
Sebastian Dröge [Fri, 27 Jan 2017 17:11:02 +0000 (19:11 +0200)]
decklink: Include stdint.h for int32_t, etc as needed by the Decklink headers

7 years agodecklink: Add "extern C" forward declaration for CreateDeckLinkIteratorInstance()
Sebastian Dröge [Fri, 27 Jan 2017 17:09:13 +0000 (19:09 +0200)]
decklink: Add "extern C" forward declaration for CreateDeckLinkIteratorInstance()

7 years agodecklink: Update Windows SDK to a newer version
Axel Menzel [Fri, 27 Jan 2017 17:03:33 +0000 (19:03 +0200)]
decklink: Update Windows SDK to a newer version

7 years agoadaptivedemux: Handle SEEK event only once
Seungha Yang [Sun, 1 Jan 2017 05:06:28 +0000 (14:06 +0900)]
adaptivedemux: Handle SEEK event only once

send_event() of parent class (i.e., GstBinClass) iterates srcpads
to send SEEK event. And performing it per srcpad is inefficient.
So, let's drop duplicated SEEK event by checking seqnum

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

7 years agotests: hlsdemux: Fix live startup sequence and seek range
Seungha Yang [Thu, 26 Jan 2017 23:38:28 +0000 (08:38 +0900)]
tests: hlsdemux: Fix live startup sequence and seek range

To satisfy follwing restriction of HLS spec 6.3.3,
select startup fragment sequence to 4th from end of playlist.
Also, seek range should exclude last three fragment in playlist.

"the client SHOULD NOT choose a segment which starts less than
three target durations from the end of the Playlist file."

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

7 years agohls: m3u8: Set sequence position for live
Seungha Yang [Thu, 26 Jan 2017 23:50:10 +0000 (08:50 +0900)]
hls: m3u8: Set sequence position for live

hls live starts playback from the allowed latest fragment,
but its "sequence position" is set to zero, and so stream
time is also set to zero.

This does not make sense, because hls live allows seeking to past position,
and it's negative stream time from downstream element's point of view.
Note that, allowed seekable range (and seeking query) is
from the first fragment of playlist to the allowed latest fragment.

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

7 years agohls: Exclusion of last three fragment in case of live playback
Seungha Yang [Tue, 24 Jan 2017 12:32:13 +0000 (21:32 +0900)]
hls: Exclusion of last three fragment in case of live playback

HLS spec 6.3.3 is saying that
"the client SHOULD NOT choose a segment which starts less than
three target durations from the end of the Playlist file."

To ensure above statement, the third fragment from the end of playlist
should be excluded from seekable range and also from available starting fragment.
(i.e., the fourth fragment from end of playlist is the starting fragment).

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

7 years agohlsdemux: Consider timestamp of the first fragment in playlist when live seeking
Seungha Yang [Tue, 24 Jan 2017 11:21:19 +0000 (20:21 +0900)]
hlsdemux: Consider timestamp of the first fragment in playlist when live seeking

During live playback, the first fragment in a updated
playlist can be advanced from that of startup playlist.
Meanwhile, since hlsdemux finds target seek position
by just accumulating fragment's duration, the base should
be adjusted to the updated first fragment's timestamp.

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

7 years agomotioncells: fix mingw build
Nicola Murino [Mon, 30 Jan 2017 10:17:53 +0000 (11:17 +0100)]
motioncells: fix mingw build

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

7 years agoapplemedia: Fix some compiler warnings on iOS
Sebastian Dröge [Fri, 27 Jan 2017 16:11:15 +0000 (18:11 +0200)]
applemedia: Fix some compiler warnings on iOS

7 years agodecklinkaudiosrc: Fix compilation on OSX
Sebastian Dröge [Fri, 27 Jan 2017 15:24:20 +0000 (17:24 +0200)]
decklinkaudiosrc: Fix compilation on OSX

15:18:47 gstdecklinkaudiosrc.cpp:745:45: error: cannot initialize a parameter of type 'int64_t *' (aka 'long long *') with an rvalue of type 'gint64 *' (aka 'long *')
15:18:47           (BMDDeckLinkMaximumAudioChannels, &self->channels_found);
15:18:47                                             ^~~~~~~~~~~~~~~~~~~~~
15:18:47 ./linux/DeckLinkAPI.h:970:87: note: passing argument to parameter 'value' here
15:18:47     virtual HRESULT GetInt (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ int64_t *value) = 0;
15:18:47                                                                                       ^

7 years agoavwait: Rename timecodewait to avwait, add modes
Vivia Nikolaidou [Wed, 25 Jan 2017 11:06:28 +0000 (13:06 +0200)]
avwait: Rename timecodewait to avwait, add modes

Renamed timecodewait to avwait. Added running-time and video-first
modes. Default mode is timecode (the previous behaviour).

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

7 years agodecklinkaudiosrc: Option to use max channels supported by device
Vivia Nikolaidou [Wed, 18 Jan 2017 15:53:00 +0000 (17:53 +0200)]
decklinkaudiosrc: Option to use max channels supported by device

Query the device for the maximum number of channels supported and have
an option to use that. Default is still 2.

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

7 years agoapplemedia: Fail cleanly instead of crashing if obtaining a GL display failed
Sebastian Dröge [Thu, 26 Jan 2017 13:35:11 +0000 (15:35 +0200)]
applemedia: Fail cleanly instead of crashing if obtaining a GL display failed

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

7 years agovkimagememory: use the correct enum for RGB16/BGR16 formats
Matthew Waters [Thu, 26 Jan 2017 08:52:07 +0000 (19:52 +1100)]
vkimagememory: use the correct enum for RGB16/BGR16 formats

vkimagememory.c:64:14: warning: implicit conversion from enumeration type 'GstVideoGLTextureType' to different enumeration type 'VkFormat' (aka 'enum VkFormat') [-Wenum-conversion]
     return GST_VIDEO_GL_TEXTURE_TYPE_RGB16;

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

7 years agompeg2enc: Fix compiler warning with clang
Sebastian Dröge [Wed, 25 Jan 2017 18:54:35 +0000 (20:54 +0200)]
mpeg2enc: Fix compiler warning with clang

gstmpeg2enc.cc:224:5: warning: variable 'n' is incremented both in the loop header and in the loop body [-Wfor-loop-analysis]
    n++;
    ^
gstmpeg2enc.cc:221:29: note: incremented here
  for (n = 0; fpss[n] != 0; n++) {
                            ^

7 years agodecklink: Fix compiler warning with clang
Sebastian Dröge [Wed, 25 Jan 2017 18:48:58 +0000 (20:48 +0200)]
decklink: Fix compiler warning with clang

gstdecklink.cpp:821:11: warning: variable 'dtc' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
      if (m_input->videosrc) {
          ^~~~~~~~~~~~~~~~~
gstdecklink.cpp:837:41: note: uninitialized use occurs here
          stream_time, stream_duration, dtc, no_signal);
                                        ^~~
gstdecklink.cpp:821:7: note: remove the 'if' if its condition is always true
      if (m_input->videosrc) {
      ^~~~~~~~~~~~~~~~~~~~~~~
gstdecklink.cpp:810:29: note: initialize the variable 'dtc' to silence this warning
      IDeckLinkTimecode *dtc;
                            ^
                             = NULL

7 years agoqt: The code requires at least C++11
Sebastian Dröge [Wed, 25 Jan 2017 17:21:03 +0000 (19:21 +0200)]
qt: The code requires at least C++11

... and clang requires this to be specified on the commandline while gcc
nowadays defaults to C++11 or even newer.

7 years agotsdemux: Set caps/tags in the GstStream object before pushing the stream-start event
Sebastian Dröge [Tue, 24 Jan 2017 21:10:19 +0000 (23:10 +0200)]
tsdemux: Set caps/tags in the GstStream object before pushing the stream-start event

Otherwise downstream will get a more or less empty GstStream although we
already know a lot about it at this point.

7 years agoopenh264: add "qp-min" and "qp-max" properties
Tim-Philipp Müller [Tue, 24 Jan 2017 14:39:35 +0000 (14:39 +0000)]
openh264: add "qp-min" and "qp-max" properties

7 years agoiqa: Move AM_CONDITIONAL(HAVE_DSSIM) outside of the iqa check block
Lars Wendler [Fri, 20 Jan 2017 06:45:43 +0000 (07:45 +0100)]
iqa: Move AM_CONDITIONAL(HAVE_DSSIM) outside of the iqa check block

or else configure fails with

  error: conditional "HAVE_DSSIM" was never defined.

when iqa is not installed.

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

7 years agomeson: Build GIR files
Thibault Saunier [Mon, 23 Jan 2017 15:12:06 +0000 (12:12 -0300)]
meson: Build GIR files

7 years agopkg-config: Directly link the library with -l instead of the .la file
Sebastian Dröge [Mon, 23 Jan 2017 13:10:40 +0000 (15:10 +0200)]
pkg-config: Directly link the library with -l instead of the .la file

Which might not exist, like on most modern Linux distributions.

7 years agomsdk: Propagate GstFlowReturn values
Scott D Phillips [Fri, 20 Jan 2017 19:11:50 +0000 (11:11 -0800)]
msdk: Propagate GstFlowReturn values

In some places a GST_FLOW_FLUSHING result was return as a FALSE
gboolean and then returned from a parent function as
GST_FLOW_ERROR. This prevented seeking from working.

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

7 years agofdk-aac: fix version number
Stefan Sauer [Fri, 20 Jan 2017 15:44:42 +0000 (16:44 +0100)]
fdk-aac: fix version number

As pointed out on irc, the version was menat to be 0.1.4.

7 years agotsdemux: Don't leak pad name and template for Opus
Sebastian Dröge [Fri, 20 Jan 2017 12:34:10 +0000 (14:34 +0200)]
tsdemux: Don't leak pad name and template for Opus

It's set again (the same way) further below, overwriting the previously
allocated memory without freeing.

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

7 years agomxfdemux: Set stream tags to NULL after unreffing
Sebastian Dröge [Fri, 20 Jan 2017 05:51:09 +0000 (07:51 +0200)]
mxfdemux: Set stream tags to NULL after unreffing

Otherwise we might try to unref them a second time a little bit later.

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

7 years agohlsdemux: Detect media sequence number inconsistencies and fail
Sebastian Dröge [Thu, 5 Jan 2017 17:10:52 +0000 (19:10 +0200)]
hlsdemux: Detect media sequence number inconsistencies and fail

Without failing, we would play back random parts of the stream which is
arguably a worse user experience, and failing is also recommended by the
spec here.

And also handle live streams without any media sequence numbers at all
properly, that is, make sure the sequence numbers are increasing instead
of starting again at 0 every time.

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

7 years agodashdemux: Do pending seek when SIDX is found
Seungha Yang [Tue, 17 Jan 2017 13:27:46 +0000 (22:27 +0900)]
dashdemux: Do pending seek when SIDX is found

Parsing SIDX box was allowed even if "indexRange" attribute does not appear
for On-Demand profile. However, actual seeking using SIDX index did not happen
since download loop keep working on.
To use SIDX index in that case, demux should try it in the next download loop.

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

7 years agodashdemux: Fix issue when manifest update sets slow start without passing necessary...
WeiChungChang [Tue, 17 Jan 2017 02:33:03 +0000 (10:33 +0800)]
dashdemux: Fix issue when manifest update sets slow start without passing necessary header & caps changes downstream

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

7 years agoglmixer: ensure caps are writable after intersection
Matthew Waters [Wed, 18 Jan 2017 04:03:48 +0000 (15:03 +1100)]
glmixer: ensure caps are writable after intersection

gst_caps_intersect () may return an increased reference of one of the
input caps.

Fixes critical in the simple-launch-lines test:

Unexpected critical/warning: gst_caps_set_features: assertion 'IS_WRITABLE (caps)' failed