platform/upstream/gstreamer.git
8 years agohlsdemux: fix reverse playback seek with snap flags
Thiago Santos [Tue, 5 Jan 2016 12:16:45 +0000 (09:16 -0300)]
hlsdemux: fix reverse playback seek with snap flags

Properly handle snap flags during reverse seeking. In this case
the before/after are also reversed, so handle those as such.

For example: with a sequence of 1s fragments:

|-- 0 --|-- 1 --|-- 2 --|-- 3 --|

If you seek to 1.5s it is inside fragment 1. With reverse and

snap-before: should play from the end of fragment 1
snap-after: should play from the end of fragment 0

8 years agoadaptivedemux: correctly track segment.position in reverse playback
Thiago Santos [Tue, 5 Jan 2016 12:01:10 +0000 (09:01 -0300)]
adaptivedemux: correctly track segment.position in reverse playback

For reverse, set position to segment.stop when starting and also
don't set the position to fragment end timestamp when it finishes,
just leave it at the fragment start.

8 years agohlsdemux: simplify snap flags checking
Thiago Santos [Tue, 5 Jan 2016 11:59:26 +0000 (08:59 -0300)]
hlsdemux: simplify snap flags checking

Replace:
if (boolean) var = true;

with:
var = (boolean);

8 years agohlsdemux: respect keyunit flag for position
Thiago Santos [Mon, 28 Dec 2015 05:18:06 +0000 (02:18 -0300)]
hlsdemux: respect keyunit flag for position

Set the segment start position when keyunit flag is active

8 years agotests: hls_demux: add tests for seeking segment
Thiago Santos [Thu, 24 Dec 2015 21:49:39 +0000 (18:49 -0300)]
tests: hls_demux: add tests for seeking segment

Tests that check that the segment sent after a seek is correct.

Allows testing that multiple seeking flags work as expected

8 years agotests: adaptive_demux: add function to be able to check demuxer events
Thiago Santos [Thu, 24 Dec 2015 12:27:33 +0000 (09:27 -0300)]
tests: adaptive_demux: add function to be able to check demuxer events

Allows writing tests that verify that events are correct.

Useful to monitor and check segments after seeks, for example.

8 years agotests: adaptive: update to allow more flexible seeking tests
Thiago Santos [Wed, 23 Dec 2015 18:25:29 +0000 (15:25 -0300)]
tests: adaptive: update to allow more flexible seeking tests

Allows defining a seek event to be able to change seeking parameters
and create more seeking test scenarios

8 years agotests: hlsdemux: fix makefile variable typo
Thiago Santos [Wed, 23 Dec 2015 18:23:27 +0000 (15:23 -0300)]
tests: hlsdemux: fix makefile variable typo

8 years agoapplemedia: avfvideosrc: enable renegotiation
Alessandro Decina [Wed, 6 Jan 2016 05:50:00 +0000 (16:50 +1100)]
applemedia: avfvideosrc: enable renegotiation

We can actually renegotiate now, so remove old check which disabled it.

8 years agoglcolorconvert: implement usage of a buffer pool
Matthew Waters [Wed, 6 Jan 2016 05:25:38 +0000 (16:25 +1100)]
glcolorconvert: implement usage of a buffer pool

Saves unnecessary glGenTextures and glDeleteTextures which may have a
non-trivial cost.

8 years agoglbasememory: fix copying GstGLAllocationParams
Matthew Waters [Wed, 6 Jan 2016 04:50:07 +0000 (15:50 +1100)]
glbasememory: fix copying GstGLAllocationParams

Fixes a GST_IS_GL_CONTEXT critical

8 years agoglmemorypbo: remove unused code
Matthew Waters [Wed, 6 Jan 2016 04:44:52 +0000 (15:44 +1100)]
glmemorypbo: remove unused code

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

8 years agoapplemedia: avfvideosrc: small negotiation fix
Alessandro Decina [Wed, 6 Jan 2016 02:20:17 +0000 (13:20 +1100)]
applemedia: avfvideosrc: small negotiation fix

Fix negotiation when GLMemory is requested but a context is not available

8 years agoapplemedia: vtenc: accept UYVY on Mac
Alessandro Decina [Wed, 6 Jan 2016 00:40:38 +0000 (11:40 +1100)]
applemedia: vtenc: accept UYVY on Mac

When doing GLMemory avfvideosrc negotiates UYVY. This change allows avfvideosrc
! tee name=t ! ... ! glimagesink t. ! ... ! gldownload ! vtenc_h264 ! ...
to do GLMemory and 0-copy with the encoder (with the CV meta).

8 years agoapplemedia: avfvideosrc: change texture format from BGRA to NV12 on iOS
Alessandro Decina [Wed, 6 Jan 2016 00:29:15 +0000 (11:29 +1100)]
applemedia: avfvideosrc: change texture format from BGRA to NV12 on iOS

Change texture format from BGRA to NV12. This allows a pipeline like avfvideosrc
! tee name=t ! ... ! glimagesink t. ! ... ! gldownload ! vtenc_h264 ! ...  to
negotiate GLMemory. This makes the glimagesink branch much faster (obviously)
and triggers the 0-copy path between avfvideosrc and vtenc (using the CV meta).
Combined this results in a huge perf improvement on iOS (25-30% of CPU time in a
pipeline like the one above).

Note that this doesn't introduce a new shader conversion in the sink, since BGRA
textures had to be copied/converted from format=BGRA,texture-target=RECTANGLE to
format=RGBA,texture-target=2D anyway.

8 years agoglupload: always add texture-target field to GL caps
Matthew Waters [Mon, 4 Jan 2016 09:26:09 +0000 (20:26 +1100)]
glupload: always add texture-target field to GL caps

1. Various elements/base classes only perform a subset check on accept-caps
2. Some GL elements have texture-target in their pad template
3. When checking subsets, only the caps to check are allowed to contain extra
   fields.  If the 'template' caps have extra fields, the subset fails.
Thus without texture-target on the caps, various accept-caps implementations
were failing.

Also, add some convenience functions for setting and retrieving
texture targets to/from GValue.

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

8 years agoglupload: passthrough composition caps features
Matthew Waters [Tue, 29 Dec 2015 07:16:04 +0000 (18:16 +1100)]
glupload: passthrough composition caps features

Don't unconditionally add it to any and all caps transformations.

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

8 years agoplayer: Remove gst_player_new() and make gst_player_new_full() the normal constructor
Sebastian Dröge [Mon, 4 Jan 2016 07:52:47 +0000 (09:52 +0200)]
player: Remove gst_player_new() and make gst_player_new_full() the normal constructor

In very few cases the simple version was actually needed and having the
parameters hidden by a _full() version caused application that actually needed
it to not use it.

8 years agoglviewconvert: Fix stereoscopic handling w/ texture-target
Jan Schmidt [Sun, 3 Jan 2016 14:03:08 +0000 (01:03 +1100)]
glviewconvert: Fix stereoscopic handling w/ texture-target

The addition of texture-target negotiation broke stereoscopic
handling when not in passthrough mode, so fix that.

8 years agosdpdemux: replace duplicated codes to call new base sdp apis
Hyunjun Ko [Wed, 7 Oct 2015 09:53:43 +0000 (18:53 +0900)]
sdpdemux: replace duplicated codes to call new base sdp apis

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

8 years agortmp: refer to both elements in the README
Reynaldo H. Verdejo Pinochet [Thu, 31 Dec 2015 02:00:47 +0000 (18:00 -0800)]
rtmp: refer to both elements in the README

8 years agortmpsrc: check for failed RTMP context alloc
Reynaldo H. Verdejo Pinochet [Tue, 29 Dec 2015 22:35:14 +0000 (14:35 -0800)]
rtmpsrc: check for failed RTMP context alloc

Avoids an unlikely crash.

Arguably, if allocation fails we have no chance of
recovering but nonetheless, RTMP_Alloc can fail and
librtmp's RTMP_init() (called next) assumes a non-NULL
pointer is passed without checking.

Additionally, unify exit path on error.

8 years agortmpsink: check for failed RTMP context alloc
Reynaldo H. Verdejo Pinochet [Tue, 29 Dec 2015 22:16:58 +0000 (14:16 -0800)]
rtmpsink: check for failed RTMP context alloc

Avoids an unlikely crash.

Arguably, if allocation fails we have no chance of
recovering but nonetheless, RTMP_Alloc can fail and
librtmp's RTMP_init() (called next) assumes a non-NULL
pointer is passed without checking.

Additionally, unify exit path on error.

8 years agortmp: correct librtmp log-level mappings
Reynaldo H. Verdejo Pinochet [Tue, 29 Dec 2015 19:58:31 +0000 (11:58 -0800)]
rtmp: correct librtmp log-level mappings

Additionally, move to a switch in _set_debug_level()
to make easier to follow and compare with the
mappings in _log_callback()

8 years agocodecparsers: vp9: minor clean-up
Tim-Philipp Müller [Wed, 30 Dec 2015 13:16:40 +0000 (13:16 +0000)]
codecparsers: vp9: minor clean-up

Remove setting of parser variable to NULL after free,
that makes no sense (and coverity is no doubt going
to complain about it).

8 years agocodecparsers: vp9: fix macro namespacing and rename GstVp9InterpFilter
Tim-Philipp Müller [Wed, 30 Dec 2015 13:12:13 +0000 (13:12 +0000)]
codecparsers: vp9: fix macro namespacing and rename GstVp9InterpFilter

8 years agocodecparsers: vp9: fix doc typos and sprinkle some Since markers
Tim-Philipp Müller [Wed, 30 Dec 2015 13:08:30 +0000 (13:08 +0000)]
codecparsers: vp9: fix doc typos and sprinkle some Since markers

8 years agocodecparsers: vp9: move license blurb into header and remove aux files
Tim-Philipp Müller [Wed, 30 Dec 2015 11:03:04 +0000 (11:03 +0000)]
codecparsers: vp9: move license blurb into header and remove aux files

This is just a bunch of lookup tables..

8 years agowin32: Update libgstcodecparsers.def with the new symbols
Sebastian Dröge [Wed, 30 Dec 2015 09:54:25 +0000 (11:54 +0200)]
win32: Update libgstcodecparsers.def with the new symbols

8 years agocodecparsers: Add another G_GNUC_INTERNAL
Sebastian Dröge [Wed, 30 Dec 2015 09:54:14 +0000 (11:54 +0200)]
codecparsers: Add another G_GNUC_INTERNAL

8 years agocodecparsers: Spread some G_GNUC_INTERNAL in various places
Sebastian Dröge [Wed, 30 Dec 2015 09:40:59 +0000 (11:40 +0200)]
codecparsers: Spread some G_GNUC_INTERNAL in various places

8 years agovp9parser: Fix indentation to make gst-indent happier
Sebastian Dröge [Wed, 30 Dec 2015 09:38:14 +0000 (11:38 +0200)]
vp9parser: Fix indentation to make gst-indent happier

8 years agovp9parser: Rename symbols to prevent symbol conflicts
Sebastian Dröge [Wed, 30 Dec 2015 09:36:45 +0000 (11:36 +0200)]
vp9parser: Rename symbols to prevent symbol conflicts

Also make clamp() a static function for the same reason and use CLAMP (as
defined by GLib) in the GStreamer code.

8 years agocodecparsers: Add VP9 codec parser
Sreerenj Balachandran [Wed, 30 Dec 2015 09:19:33 +0000 (11:19 +0200)]
codecparsers: Add VP9 codec parser

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

8 years agoglmemorypbo: fix wrapping data on GL 2.1
Matthew Waters [Wed, 30 Dec 2015 01:12:17 +0000 (12:12 +1100)]
glmemorypbo: fix wrapping data on GL 2.1

GL 2.1 only supports pbo upload.

The wrapped data pointer was only being set on the pbo memory and on the
glmemory so when a download was requested (in GL 2.1), glmemory was
allocating a new data pointer and thus not returning the wrapped data.

8 years agoglmemorypbo: only create a pbo memory if the context actually supports it
Matthew Waters [Wed, 30 Dec 2015 01:11:09 +0000 (12:11 +1100)]
glmemorypbo: only create a pbo memory if the context actually supports it

e.g. GL <= 2.0 does not support pbo usage and GL 2.1 only supports pbo upload.

8 years agoglmemory: small code reformat
Matthew Waters [Wed, 30 Dec 2015 01:09:29 +0000 (12:09 +1100)]
glmemory: small code reformat

makes the alloc_params selections fit on a single line.

8 years agotests/glmemory: output data pointer values on failure
Matthew Waters [Wed, 30 Dec 2015 01:06:17 +0000 (12:06 +1100)]
tests/glmemory: output data pointer values on failure

Allows quicker inspection of what failed.

8 years agogleffects: fix shader compilation with legacy opengl
Matthew Waters [Tue, 29 Dec 2015 06:04:57 +0000 (17:04 +1100)]
gleffects: fix shader compilation with legacy opengl

All the gleffects shaders can be run against a gles2 or a legacy opengl glsl
compiler but weren't being advertised as such.

Fixes gleffects under desktop opengl < 3.2.

8 years agoglbasememory: Remove bogus NULL check
Sebastian Dröge [Tue, 29 Dec 2015 16:01:30 +0000 (18:01 +0200)]
glbasememory: Remove bogus NULL check

CID 1346534

8 years agoapplemedia: avfvideosrc: output at highest fps/resolution by default
Alessandro Decina [Mon, 28 Dec 2015 23:57:36 +0000 (10:57 +1100)]
applemedia: avfvideosrc: output at highest fps/resolution by default

Fixate to the highest possible resolution and fps. Otherwise by default we end
up fixating at 2fps and the lowest supported resolution, which is hardly what
someone who bought an overpriced smartphone wants.

8 years agogl: Add \0 terminators for the Apple sync extension
Sebastian Dröge [Mon, 28 Dec 2015 13:53:59 +0000 (15:53 +0200)]
gl: Add \0 terminators for the Apple sync extension

Otherwise GL initialization might check for extensions forever and never finishes.

8 years agoglcontext: Add some debug output when the GL thread is actually running
Sebastian Dröge [Mon, 28 Dec 2015 12:41:59 +0000 (14:41 +0200)]
glcontext: Add some debug output when the GL thread is actually running

8 years agodashdemux: removed unnecessary space trimming in gst_dash_demux_parse_http_head
Florin Apostol [Tue, 22 Dec 2015 11:23:19 +0000 (11:23 +0000)]
dashdemux: removed unnecessary space trimming in gst_dash_demux_parse_http_head

sscanf has removed all spaces when it has constructed zone string. There is
no need to search for leading spaces.

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

8 years agodashdemux: accept 2 or 4 digit year when using HTTP HEAD for calculating clock compen...
Florin Apostol [Mon, 21 Dec 2015 14:50:15 +0000 (14:50 +0000)]
dashdemux: accept 2 or 4 digit year when using HTTP HEAD for calculating clock compensation

Convert year from 2 digits to 4 digits in gst_dash_demux_parse_http_head

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

Also updated references to Rfc822 to Rfc5322

8 years agoglshader: fix usage doc
Florent Thiéry [Sun, 27 Dec 2015 10:37:09 +0000 (11:37 +0100)]
glshader: fix usage doc

The property location has been changed in favor of vertex/fragment
string properties; the doc had not been updated and was still referring
to the previous property; also, now the #version header has become mandatory

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

8 years agoglimagesink: Post unhandled navigation events on the bus
Florent Thiéry [Sat, 26 Dec 2015 21:34:29 +0000 (22:34 +0100)]
glimagesink: Post unhandled navigation events on the bus

Based off xvimagesink implementation

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

8 years agomotioncells: fix splitting of RGB color string
Reynaldo H. Verdejo Pinochet [Mon, 28 Dec 2015 06:32:22 +0000 (22:32 -0800)]
motioncells: fix splitting of RGB color string

No need to attempt splitting the RGB string in 255 tokens
if we only expect 3.

Left max_tokens at 4 to preserve the current logic (which
allows for extra stuff at the end) and added a warning on
parsing failure instead of silently discarding the value.

8 years agomotioncells: fix typo in header
Reynaldo H. Verdejo Pinochet [Mon, 28 Dec 2015 05:23:37 +0000 (21:23 -0800)]
motioncells: fix typo in header

8 years agomotioncells: fix misleading warning message
Reynaldo H. Verdejo Pinochet [Mon, 28 Dec 2015 05:19:19 +0000 (21:19 -0800)]
motioncells: fix misleading warning message

calculate_motion != FALSE means the motion computation
logic is disabled, not a mapping error.

8 years agomotioncells: rework property descriptions
Reynaldo H. Verdejo Pinochet [Mon, 28 Dec 2015 05:11:18 +0000 (21:11 -0800)]
motioncells: rework property descriptions

8 years agomotioncells: use NULL instead of g_strdup(NULL)
Reynaldo H. Verdejo Pinochet [Sun, 27 Dec 2015 09:11:42 +0000 (01:11 -0800)]
motioncells: use NULL instead of g_strdup(NULL)

8 years agoglbufferpool: Fix build error
Vineeth TM [Mon, 28 Dec 2015 00:04:12 +0000 (09:04 +0900)]
glbufferpool: Fix build error

When GST_GL_HAVE_PLATFORM_EGL is not defined, then info variable
will not be used and this results in build error

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

8 years agoBack to development
Sebastian Dröge [Thu, 24 Dec 2015 14:28:26 +0000 (15:28 +0100)]
Back to development

8 years agoRelease 1.7.1
Sebastian Dröge [Thu, 24 Dec 2015 13:28:42 +0000 (14:28 +0100)]
Release 1.7.1

8 years agoUpdate .po files
Sebastian Dröge [Thu, 24 Dec 2015 13:00:54 +0000 (14:00 +0100)]
Update .po files

8 years agopo: Update translations
Sebastian Dröge [Thu, 24 Dec 2015 11:23:00 +0000 (12:23 +0100)]
po: Update translations

8 years agotests: fix indentation
Tim-Philipp Müller [Wed, 23 Dec 2015 23:13:21 +0000 (23:13 +0000)]
tests: fix indentation

8 years agotests: pcapparse: add check for 0-sized packets
Tim-Philipp Müller [Wed, 23 Dec 2015 23:10:50 +0000 (23:10 +0000)]
tests: pcapparse: add check for 0-sized packets

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

8 years agopcapparse: don't crash on 0-sized packets
Tim-Philipp Müller [Wed, 23 Dec 2015 20:24:46 +0000 (20:24 +0000)]
pcapparse: don't crash on 0-sized packets

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

8 years agoUpdate common
Sebastian Dröge [Wed, 23 Dec 2015 12:06:45 +0000 (13:06 +0100)]
Update common

8 years agoplayer: Add pkg-config files
Sebastian Dröge [Wed, 23 Dec 2015 12:04:23 +0000 (13:04 +0100)]
player: Add pkg-config files

8 years agoautogen.sh: Enable player tests by default
Sebastian Dröge [Wed, 23 Dec 2015 11:16:54 +0000 (12:16 +0100)]
autogen.sh: Enable player tests by default

This will be automatically be updated together with the next common update
again.

8 years agoplayer: Add unit test that is disabled by default
Sebastian Dröge [Wed, 23 Dec 2015 08:55:26 +0000 (09:55 +0100)]
player: Add unit test that is disabled by default

The unit test is downloading a few small media files from the Internet,
which are then used during the test. "make clean" removes the files again.

8 years agoplayer: Integrate into the documentation build system
Sebastian Dröge [Tue, 22 Dec 2015 13:44:28 +0000 (14:44 +0100)]
player: Integrate into the documentation build system

8 years agoplayer: Import GstPlayer playback convenience API
Sebastian Dröge [Tue, 22 Dec 2015 13:24:00 +0000 (14:24 +0100)]
player: Import GstPlayer playback convenience API

Based on https://github.com/sdroege/gst-player
commit 9ce6ae0dbb8eeeefaf794cfae80e279a03cc598d

8 years agoglmemorypbo: Comment out unused functions to fix compilation with clang
Sebastian Dröge [Wed, 23 Dec 2015 08:50:13 +0000 (09:50 +0100)]
glmemorypbo: Comment out unused functions to fix compilation with clang

It's not clear if these are intentionally unused or the code should be
changed, but this fixes compilation for the time being at least.

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

8 years agohlsdemux: tests: check URL joining if media URL contains a '/' character
Alex Ashley [Tue, 10 Nov 2015 16:25:53 +0000 (16:25 +0000)]
hlsdemux: tests: check URL joining if media URL contains a '/' character

If the query parameter (for example
http://example.net/1054559_1500k.mp4/master.m3u8?acl=/*1054559_1500k.mp4),
check that m3u8.c correctly converts the relative URLs of the media
playlists in to absolute URLs. It must not use the last '/' it finds in
the URL, as according to RFC3986 the '/' character is allowed in
the query part of the URL.

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

8 years agohlsdemux: unquote all the quoted-string attributes
Alex Ashley [Tue, 10 Nov 2015 16:23:59 +0000 (16:23 +0000)]
hlsdemux: unquote all the quoted-string attributes

The URI attribute from the EXT-X-KEY tag and the URI attribute from the
EXT-X-I-FRAMES-ONLY tag are both quoted-string attibutes that have their
quotation marks removed during parsing. The CODECS attribute of the
EXT-X-STREAM-INF is also a quoted-string attribute, but this attribute
was not being un-quoted.

This commit changes the parser to always unquote all quoted-string
attributes and adjusts the unit tests to this new bevahiour for the
CODECS attribute.

An additional test is added to check that parsing of all of the fields
in the EXT-X-STREAM tag is correct, including those that contain comma
characters.

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

8 years agohlsdemux: tests: add unit tests for hlsdemux
Alex Ashley [Tue, 10 Nov 2015 16:41:02 +0000 (16:41 +0000)]
hlsdemux: tests: add unit tests for hlsdemux

Using the new GstAdaptiveDemux test framework, add tests that
exercise hlsdemux. The following tests are added:

simpleTest
A simple playlist that contains some media URLs

testMediaPlaylist
A master playlist with a variant playlist that contains media URLs

testMediaPlaylistNotFound
A master playlist that points to a missing variant playlist

testFragmentNotFound
A master playlist with a variant playlist that contains media URLs
There is a missing media file referenced from the variant playlist.

testFragmentDownloadError
A master playlist with a variant playlist that contains media URLs
During the download of one media file, the test simulates the network
connection being dropped.

testSeek
A simple test of trying to perform a seek on an HLS stream.

8 years agodashdemux: tests: Refactor into adaptive_engine components
Alex Ashley [Tue, 10 Nov 2015 13:13:35 +0000 (13:13 +0000)]
dashdemux: tests: Refactor into adaptive_engine components

To allow code from dash_demux.c to be used by other elements
that are based upon GstAdaptiveDemux, the code has been
refactored into four new files:

adaptive_demux_engine.[ch]
adaptive_demux_common.[ch]

The code in adaptive_demux_engine.c provides a generic
test engine for elements based upon GstAdaptiveDemux.

The code in adaptive_demux_common.c provides a set
of utility functions that are common between the tests
for hlsdemux and dashdemux.

As part of the refactoring, variables in structures were
renamed from using camelCase to underscore_case to match other
GStreamer source code.

The fake_http_src was renamed test_http_src and changed to use
callbacks to provide input data and error conditions. Rather than
using an array of input data that tries to encode all the
possible use cases for the GstTestHTTPSrc element, use a struct of
callbacks.

Users of this element are obliged to implement at least the src_start
callback, which provides a way to link from a URI to the settings
for that URI.

8 years agonvenc: fix high CPU use on initialization of multiple encoders at the same time
Matthew Marsh [Tue, 22 Dec 2015 09:10:31 +0000 (11:10 +0200)]
nvenc: fix high CPU use on initialization of multiple encoders at the same time

We need a static lock to protect various NVENC methods in _set_format(). Without
this the CPU use increases dramatically on initialisation of the element when
there are multiple elements being initialised at the same time.

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

8 years agohlsdemux: make sure every bad update_playlist return sets an error
Thiago Santos [Tue, 22 Dec 2015 13:15:39 +0000 (10:15 -0300)]
hlsdemux: make sure every bad update_playlist return sets an error

Otherwise it segfaults when reporting the error in the bus

8 years agoteletextdec: Use NULL instead of g_strdup('\0')
Sebastian Dröge [Mon, 21 Dec 2015 12:57:04 +0000 (13:57 +0100)]
teletextdec: Use NULL instead of g_strdup('\0')

Which is equivalent to g_strdup(NULL).

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

8 years agoconfigure: Use -Bsymbolic-functions if available
Sebastian Dröge [Mon, 21 Dec 2015 11:33:25 +0000 (12:33 +0100)]
configure: Use -Bsymbolic-functions if available

While this is more useful for libraries, some of our plugins with multiple
files and some internal API can also benefit from this.

8 years agoglcolorconvert: Fix name of testsuite
Sebastian Dröge [Mon, 21 Dec 2015 11:19:11 +0000 (12:19 +0100)]
glcolorconvert: Fix name of testsuite

8 years agoglcontext: Signal context creation from inside the context loop and use g_thread_join...
Sebastian Dröge [Mon, 21 Dec 2015 11:13:15 +0000 (12:13 +0100)]
glcontext: Signal context creation from inside the context loop and use g_thread_join() instead of a custom condition variable

Also protect against spurious condition variable wakeups during context
creation.

8 years agoglwindow: Hide navigation specific internal API and add API to asynchronously send...
Sebastian Dröge [Mon, 21 Dec 2015 10:27:09 +0000 (11:27 +0100)]
glwindow: Hide navigation specific internal API and add API to asynchronously send navigation events

Exposing the navigation thread's main context, GSourceFuncs and structs called
key_event and mouse_event is exposing a bit too much of the internals. Let's
just go with two functions to asynchronously send navigation events on the
window with the same API as the synchronous ones.

8 years agoglwindow: Use g_thread_join() instead of a custom condition variable for waiting...
Sebastian Dröge [Mon, 21 Dec 2015 09:46:52 +0000 (10:46 +0100)]
glwindow: Use g_thread_join() instead of a custom condition variable for waiting for the navigation thread to finish

Also hide some internal functions and fields while we're at it and fix
a race condition with the startup condition variable.

8 years agoglwindow: Fix memory leak of navigation thread
Haihua Hu [Mon, 30 Nov 2015 01:36:09 +0000 (09:36 +0800)]
glwindow: Fix memory leak of navigation thread

When stopping the navigation thread, call g_thread_join() to release
the resources hold by it.

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

8 years agoassrender, dvbsuboverlay: fix example pipelines in docs
Tim-Philipp Müller [Sat, 19 Dec 2015 21:25:49 +0000 (21:25 +0000)]
assrender, dvbsuboverlay: fix example pipelines in docs

8 years agohlsdemux: reflow update_playlist a bit
Tim-Philipp Müller [Sat, 19 Dec 2015 21:10:56 +0000 (21:10 +0000)]
hlsdemux: reflow update_playlist a bit

Reduce indentation by erroring out directly on failure.

8 years agohlsdemux: fix potential error leak
Tim-Philipp Müller [Sat, 19 Dec 2015 20:59:12 +0000 (20:59 +0000)]
hlsdemux: fix potential error leak

Clear error as soon as we determine that the download failed,
otherwise there are code paths where we might return without
clearing it ever, which would leak the GError then. Also, we
can pass a NULL GError pointer to _fetch_uri(), so just do that
instead of passing one that we're going to just free again
right away anyway.

8 years agoopencv: remove unneeded sink_event function in pyramidsegment
Luis de Bethencourt [Sat, 19 Dec 2015 12:05:59 +0000 (12:05 +0000)]
opencv: remove unneeded sink_event function in pyramidsegment

8 years agoopencv: remove unneeded sink_event function in textoverlay
Luis de Bethencourt [Sat, 19 Dec 2015 12:04:01 +0000 (12:04 +0000)]
opencv: remove unneeded sink_event function in textoverlay

8 years agotemplatematch: remove useless function
Thiago Santos [Fri, 18 Dec 2015 21:51:49 +0000 (18:51 -0300)]
templatematch: remove useless function

8 years agohlsdemux: always set timestamp on reverse playback
Thiago Santos [Fri, 18 Dec 2015 14:56:17 +0000 (11:56 -0300)]
hlsdemux: always set timestamp on reverse playback

Downstream needs to be able to restore the timestamps after a discont
to do reverse playback

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

8 years agoglconvert: Fix compilation of GRAY16_LE/BE shader
Nicolas Dufresne [Fri, 18 Dec 2015 20:36:40 +0000 (15:36 -0500)]
glconvert: Fix compilation of GRAY16_LE/BE shader

8 years agoglupload: Add dmabuf upload method.
Nicolas Dufresne [Fri, 13 Nov 2015 16:24:30 +0000 (17:24 +0100)]
glupload: Add dmabuf upload method.

This upload method detect and optimize uploads of DMABuf memory. This is
done by creating and caching EGLImages wrapper around DMABuf. The
EGLImages are then binded to a texture which get converter using
standard shader.

Example pipeline:

GST_GL_PLATFORM=egl \
gst-launch-1.0 v4l2src device=/dev/video1 io-mode=4 ! \
               video/x-raw,format=NV12 ! glimagesink

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

8 years agoeglimagememory: Also import BGR16, ABGR, xBGR, AYUV, GRAY16_LE/BE and Y444
Nicolas Dufresne [Fri, 18 Dec 2015 20:52:46 +0000 (15:52 -0500)]
eglimagememory: Also import BGR16, ABGR, xBGR, AYUV, GRAY16_LE/BE and Y444

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

8 years agoeglimagememory: Add RGB/BGR DMABuf importation support
Nicolas Dufresne [Fri, 18 Dec 2015 16:08:29 +0000 (11:08 -0500)]
eglimagememory: Add RGB/BGR DMABuf importation support

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

8 years agoeglimagememory: Methods to create GstGLMemory from dmabufs
Lubosz Sarnecki [Fri, 13 Nov 2015 16:40:08 +0000 (17:40 +0100)]
eglimagememory: Methods to create GstGLMemory from dmabufs

Maps GstVideoFormats to suitable DRM fourccs which work with
glcolorconvert, using gst_gl_memory_alloc(). We require mostly
only 4 formats to be supported by the driver. We require DRM
equivalent to RGB16, RGBA, R8 and RG88. This way it's compatible with
DesktopGL, since GL_TEXTURE_2D is used and limit driver requirements.
With this we can virtually support all formats the glcolorconvert
supports.

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

8 years agobuild: Add dmabuf build condition.
Lubosz Sarnecki [Fri, 2 Oct 2015 11:31:39 +0000 (13:31 +0200)]
build: Add dmabuf build condition.

configure.ac: Build dmabuf when EGL and drm_fourcc.h is available.
gl: Link gst-allocators.

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

8 years agoglimagesink: Show error when video frame is not mapped.
Lubosz Sarnecki [Fri, 13 Nov 2015 16:09:13 +0000 (17:09 +0100)]
glimagesink: Show error when video frame is not mapped.

Adds more meaningful error than
"Failed to convert multiview video buffer", which is always used
when prepare_next_buffer() fails in gst_glimage_sink_prepare().

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

8 years agogstglcontext_egl: Expose gst_gl_context_egl_get_error_string.
Lubosz Sarnecki [Fri, 13 Nov 2015 16:05:11 +0000 (17:05 +0100)]
gstglcontext_egl: Expose gst_gl_context_egl_get_error_string.

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

8 years agoopencv: update opencvtextoverlay to GstOpencvVideoFilter
Luis de Bethencourt [Fri, 18 Dec 2015 16:56:04 +0000 (16:56 +0000)]
opencv: update opencvtextoverlay to GstOpencvVideoFilter

Update opencvtextoverlay to inherit from GstOpencvVideoFilter instead of
from GstElement. This means less code and more uniformity with other OpenCV
elements. The chain/transform function is now a third of the size than
before.

8 years agoopencv: update templatematch to GstOpencvVideoFilter
Luis de Bethencourt [Fri, 18 Dec 2015 16:18:52 +0000 (16:18 +0000)]
opencv: update templatematch to GstOpencvVideoFilter

Update pyramidsegment to inherit from GstOpencvVideoFilter instead of from
GstElement. This means less code and more uniformity with other OpenCV
elements.

8 years agoopencv: update pyramidsegment to GstOpencvVideoFilter
Luis de Bethencourt [Fri, 18 Dec 2015 15:48:16 +0000 (15:48 +0000)]
opencv: update pyramidsegment to GstOpencvVideoFilter

Update pyramidsegment to inherit from GstOpencvVideoFilter instead of from
GstElement. This means less code and more uniformity with other OpenCV
elements.

8 years agodecklinkvideosink: Made "auto" mode work according to caps
Vivia Nikolaidou [Thu, 17 Dec 2015 15:26:29 +0000 (17:26 +0200)]
decklinkvideosink: Made "auto" mode work according to caps

When the mode of decklinkvideosink is set to "auto", the sink claims to
support the full set of caps that it can support for all modes. Then, every
time new caps are set, the sink will automatically find the correct mode for
these caps and set it.

Caveat: We have no way to know whether a specific mode will actually work for
your hardware. Therefore, if you try sending 4K video to a 1080 screen, it
will silently fail, we have no way to know that in advance. Manually setting
that mode at least gave the user a way to double-check what they are doing.

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

8 years agoopencv: update motioncells to GstOpencvVideoFilter
Luis de Bethencourt [Fri, 18 Dec 2015 12:28:23 +0000 (12:28 +0000)]
opencv: update motioncells to GstOpencvVideoFilter

Update motioncells to inherit from GstOpencvVideoFilter instead of from
GstElement. This means less code and more uniformity with other OpenCV
elements.