platform/upstream/gstreamer.git
8 years agovulkan: Minor string fix
Thibault Saunier [Wed, 23 Mar 2016 12:43:46 +0000 (13:43 +0100)]
vulkan: Minor string fix

8 years agovulkan: VK_API_VERSION has been removed
Matthew Waters [Wed, 23 Mar 2016 11:13:47 +0000 (22:13 +1100)]
vulkan: VK_API_VERSION has been removed

In a stable release too, naughty.

Use VK_API_VERSION_1_0 instead

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

8 years agogl/proto: sync operations are available on GLES 3.0
Matthew Waters [Tue, 22 Mar 2016 07:20:59 +0000 (07:20 +0000)]
gl/proto: sync operations are available on GLES 3.0

Without the GST_GL_API_GLES2 bit set, we will not even attempt to look
for the function pointers in the core library and will fallback to
glFlush/glFinish.

8 years agogl/build: add GST_GL_HAVE_DMABUF to gstglconfig.h
Matthew Waters [Tue, 22 Mar 2016 07:16:34 +0000 (07:16 +0000)]
gl/build: add GST_GL_HAVE_DMABUF to gstglconfig.h

it's exposed in public API so hiding it in an AC_DEFINE for config.h only
works when building libgstgl itself.  Attempting to use libgstgl (especially
on egl platforms) will throw a compilation error.

8 years agomxfdemux: Fix query memory leak
Jimmy Ohn [Mon, 21 Mar 2016 06:22:15 +0000 (15:22 +0900)]
mxfdemux: Fix query memory leak

Peer query isn't being freed in case of GST_QUERY_SEEKING.

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

8 years agovulkan: Ship missing headers with tarballs
Sebastian Dröge [Fri, 18 Mar 2016 17:45:09 +0000 (19:45 +0200)]
vulkan: Ship missing headers with tarballs

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

8 years agoh264parse, h265parse: fix handling of downstream force-key-unit events
Aleksander Wabik [Thu, 17 Mar 2016 19:24:32 +0000 (19:24 +0000)]
h264parse, h265parse: fix handling of downstream force-key-unit events

The parser handles the downstream force-key-unit event incorrectly,
it tries to parse it as an upstream force-key-unit event, does not
check the return value, and then uses uninitialized memory in
"all_headers" boolean variable.

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

8 years agoglmemory: unset GL_UNPACK_ROW_LENGTH in opengl3
Matthew Waters [Thu, 17 Mar 2016 11:43:12 +0000 (22:43 +1100)]
glmemory: unset GL_UNPACK_ROW_LENGTH in opengl3

If the user uploads their own texture without setting the unpack length, then
then the result will have the appearance of stride mismanagement due to
an incorrect row length.

8 years agogl/examples/qt: restrict the GL API to opengl where needed
Matthew Waters [Thu, 17 Mar 2016 05:34:42 +0000 (16:34 +1100)]
gl/examples/qt: restrict the GL API to opengl where needed

Until the examples are ported to opengl3/gles2, they will not work with any
other GL api.

8 years agogl/examples/gtk: call XInitThreads
Matthew Waters [Thu, 17 Mar 2016 05:31:52 +0000 (16:31 +1100)]
gl/examples/gtk: call XInitThreads

Fixes some sporadic X11 threading assertions.

8 years agoglutils: remove custom code for setting caps features
Matthew Waters [Wed, 16 Mar 2016 16:06:05 +0000 (03:06 +1100)]
glutils: remove custom code for setting caps features

Just use gst_caps_set_features() instead.

8 years agoglfilter: only allow the same src/sink caps when we are in passthrough mode
Matthew Waters [Wed, 16 Mar 2016 14:52:00 +0000 (01:52 +1100)]
glfilter: only allow the same src/sink caps when we are in passthrough mode

If we are given caps with extra features (like the overlay composition
features), we can only deal with that when we are in passthrough mode.

Previously we were bailing entirely and not allowing passthrough filter elements
with things like textoverlay.

Fixes the following pipeline (assuming glfilter supports passthrough):
gl ! textoverlay ! glfilter ! ... ! glimagesinkelement

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

8 years agoglupload: deal with the ANY caps feature correctly
Matthew Waters [Wed, 16 Mar 2016 11:48:00 +0000 (22:48 +1100)]
glupload: deal with the ANY caps feature correctly

When transforming, xplode it out into the necessary caps features both
with and without the passthough features.

Fixes negotiation in the following class of pipelines:

gl ! textoverlay ! glupload ! glimagesinkelement

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

8 years agowayland: fix null pointer dereference on error
Matthew Waters [Wed, 16 Mar 2016 11:19:25 +0000 (22:19 +1100)]
wayland: fix null pointer dereference on error

gnome-shell doesn't the support wl_scaler interface which makes creating a
wayland display fail creation.

Found in the generic state changes test

8 years agoglstereo{mix,split}: allow running on GLES 2/3
Matthew Waters [Wed, 16 Mar 2016 11:16:34 +0000 (22:16 +1100)]
glstereo{mix,split}: allow running on GLES 2/3

It's mostly supported for GLES 2.x, fully supported on GLES 3.x

8 years agoopenslesringbuffer: Warn if the position reported by OpenSL is higher than what we...
Sebastian Dröge [Wed, 16 Mar 2016 10:03:53 +0000 (12:03 +0200)]
openslesringbuffer: Warn if the position reported by OpenSL is higher than what we queued up so far

This would hint at wrong position reporting, and apparently sometimes happens
after a seek.

8 years agomxfmux: Fix typo in JPEG2000 colorspace
Sebastian Dröge [Wed, 16 Mar 2016 09:34:46 +0000 (11:34 +0200)]
mxfmux: Fix typo in JPEG2000 colorspace

sRGC -> sRGB

8 years agoRelease 1.7.91
Sebastian Dröge [Tue, 15 Mar 2016 10:13:17 +0000 (12:13 +0200)]
Release 1.7.91

8 years agoUpdate .po files
Sebastian Dröge [Tue, 15 Mar 2016 09:56:59 +0000 (11:56 +0200)]
Update .po files

8 years agotsdemux: add video/x-h265 to template caps
Tim-Philipp Müller [Sat, 12 Mar 2016 15:44:54 +0000 (15:44 +0000)]
tsdemux: add video/x-h265 to template caps

8 years agompegts: Don't leave freed programs in the hash table
Jan Schmidt [Fri, 11 Mar 2016 16:00:14 +0000 (03:00 +1100)]
mpegts: Don't leave freed programs in the hash table

When the sub-class claims a program for later freeing, make
sure it's not left in the hash table, or it can cause crashes on shutdown.

Make sure tsdemux frees any program it has kept around at shutdown
if it wasn't freed already.

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

8 years agovideoparsers: h265: Fix segfault while transforming hevc to nal aligned bytestream
Sreerenj Balachandran [Fri, 11 Mar 2016 15:34:03 +0000 (17:34 +0200)]
videoparsers: h265: Fix segfault while transforming hevc to nal aligned bytestream

Create temporary ParseFrame and copy the nal size buffer region
for each nal unit like we did for h264.

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

8 years agoamc: Correctly handle NULL input buffers
Sebastian Dröge [Fri, 11 Mar 2016 08:08:28 +0000 (10:08 +0200)]
amc: Correctly handle NULL input buffers

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

8 years agoamcvideodec: getOutputBuffers() returns a NULL array when a surface was configured
Sebastian Dröge [Fri, 11 Mar 2016 08:00:39 +0000 (10:00 +0200)]
amcvideodec: getOutputBuffers() returns a NULL array when a surface was configured

So don't error out if it does.

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

8 years agogleffects; give each effect a unique long name and description
Matthew Waters [Thu, 10 Mar 2016 14:40:39 +0000 (01:40 +1100)]
gleffects; give each effect a unique long name and description

Gives applications that scrape the factory details more detailed and unique
details on the exact element.

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

8 years agoglshader: some compatibility changes for GL 1.4
Matthew Waters [Thu, 10 Mar 2016 06:46:05 +0000 (17:46 +1100)]
glshader: some compatibility changes for GL 1.4

GL 1.4 (with GL_ARB_shader_objects) doesn't have glIsProgram or glIsShader
equivalents.  As they are simply assertions, skip them when there isn't a
valid function pointer.

8 years agoglfilterapp: update for the use of shaders
Matthew Waters [Wed, 9 Mar 2016 13:29:41 +0000 (00:29 +1100)]
glfilterapp: update for the use of shaders

Fixes black output when placed in pipelines (using the default drawing).

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

8 years agoglfilter: retrieve the shader attributes from the GL thread
Matthew Waters [Wed, 9 Mar 2016 13:27:53 +0000 (00:27 +1100)]
glfilter: retrieve the shader attributes from the GL thread

Otherwise we will receive bogus values

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

8 years agogl/examples/cube*: choose opengl by default
Matthew Waters [Wed, 9 Mar 2016 13:24:48 +0000 (00:24 +1100)]
gl/examples/cube*: choose opengl by default

The examples don't work with any other GL API.

Also fix the yuv example to not translate the cube out of the clipping area.

8 years agogl/examples/fxtest: add needed glupload to the pipeline
Matthew Waters [Wed, 9 Mar 2016 13:23:14 +0000 (00:23 +1100)]
gl/examples/fxtest: add needed glupload to the pipeline

Fixes a negotiation failure in the example

8 years agompegvideoparser: Handle non-hierarchical profiles again
Edward Hervey [Mon, 7 Mar 2016 12:04:08 +0000 (13:04 +0100)]
mpegvideoparser: Handle non-hierarchical profiles again

This is a regression from since mpegvideoparser was switched to
use the codecparsing library.

The problem is that the high bit of the profile_and_level is used
to specify non-hierarchical profiles and levels. Unfortunately we
were discarding that information.

Expose that escape bit, and use it in the element

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

8 years agoglimagesink: Fix window memory leak
Vineeth TM [Wed, 9 Mar 2016 02:58:43 +0000 (11:58 +0900)]
glimagesink: Fix window memory leak

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

8 years agotsdemux: Don't reset/recalculate segments with accurate seeks
Edward Hervey [Tue, 8 Mar 2016 10:41:49 +0000 (11:41 +0100)]
tsdemux: Don't reset/recalculate segments with accurate seeks

When dealing with accurate seeks, we must send out a segment which
is exactly what is requested.

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

8 years agoglvideomixer: signal continuation in reset
Matthew Waters [Mon, 7 Mar 2016 15:06:46 +0000 (02:06 +1100)]
glvideomixer: signal continuation in reset

We want to iterate over all the pads, not just the first one.  Fix by returning
TRUE in the GstAggregatorPadForeachFunc.

Removes a GST_IS_GL_CONTEXT() assertion on shutdown with >2 inputs
using gst-launch.

8 years agogldisplay: make readding the same context a no-op
Matthew Waters [Mon, 7 Mar 2016 13:35:22 +0000 (00:35 +1100)]
gldisplay: make readding the same context a no-op

With e38af2304427db908a16bbae0e60aa68be1ba5b5 returning the correct contexts,
gst_gl_display_add_context() was susceptible to causing infinte loops when
adding the same GstGLContext more than once.  Fix and add a test for
gst_gl_display_add_context().

Fixes glvideomixer gst-validate tests.

8 years agoRevert "libgstgl: cocoa, eagl: don't marshal GL calls to the context thread"
Sebastian Dröge [Mon, 7 Mar 2016 06:52:54 +0000 (08:52 +0200)]
Revert "libgstgl: cocoa, eagl: don't marshal GL calls to the context thread"

This reverts commit 797d6415dfd6e111efb2cab544958a67cbf22b17.

We're frozen for 1.8.0 release and this change might have bigger impact.

8 years agolibgstgl: cocoa, eagl: don't marshal GL calls to the context thread
Alessandro Decina [Mon, 7 Mar 2016 05:03:25 +0000 (16:03 +1100)]
libgstgl: cocoa, eagl: don't marshal GL calls to the context thread

Execute GL calls without marshalling them to the context thread. In the cocoa
and eagl backends calling gst_gl_context_activate is cheap and therefore calling
it on the current thread and serializing GL calls with a per-context lock is
more efficient (faster and has less overhead) than marshalling everything to the
context thread.

This optimization cuts a large overhead in g_poll (continuously waking up the
context thread) and in g_mutex_*/g_cond_* (waiting for results from the context
thread).

8 years agogldisplay: really retrieve glcontext for a specific thread
Mark Nauwelaerts [Sat, 5 Mar 2016 16:16:24 +0000 (17:16 +0100)]
gldisplay: really retrieve glcontext for a specific thread

When requesting a glcontext (regardless of thread), the result was correct.
However, when requesting current glcontext on a specific thread, it could
come up with a glcontext active on another thread.

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

8 years agogl: misc docs fixes/additions
Matthew Waters [Sun, 6 Mar 2016 08:35:38 +0000 (19:35 +1100)]
gl: misc docs fixes/additions

8 years agogl*memory: document new functionality and objects
Matthew Waters [Sun, 6 Mar 2016 08:32:21 +0000 (19:32 +1100)]
gl*memory: document new functionality and objects

8 years agodocs: add new GL api to .types file for type/signal introspection
Matthew Waters [Sun, 6 Mar 2016 08:23:06 +0000 (19:23 +1100)]
docs: add new GL api to .types file for type/signal introspection

8 years agodocs: ignore some private GL headers
Matthew Waters [Sun, 6 Mar 2016 08:22:31 +0000 (19:22 +1100)]
docs: ignore some private GL headers

8 years agodocs/gl: add gl functions/structs from -unused into the docs
Matthew Waters [Sun, 6 Mar 2016 08:18:54 +0000 (19:18 +1100)]
docs/gl: add gl functions/structs from -unused into the docs

8 years agoglfilter: handle some more unfixed fields when fixating caps
Mark Nauwelaerts [Sat, 5 Mar 2016 18:48:45 +0000 (19:48 +0100)]
glfilter: handle some more unfixed fields when fixating caps

8 years agogtk: examples: #define GST_USE_UNSTABLE_API and link with X11_LIBS
Sebastian Dröge [Sat, 5 Mar 2016 09:38:46 +0000 (11:38 +0200)]
gtk: examples: #define GST_USE_UNSTABLE_API and link with X11_LIBS

X11_LIBS is needed for XInitThreads() and without the #define we get
warnings about the GL API being still unstable.

8 years agoandroidmedia: Remove unused file
Justin Kim [Wed, 2 Mar 2016 10:32:13 +0000 (19:32 +0900)]
androidmedia: Remove unused file

ahcsrc is registered by gstamc.c

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

8 years agoamc: properly deinit when ahcsrc register fails
Martin Kelly [Wed, 17 Feb 2016 17:36:15 +0000 (09:36 -0800)]
amc: properly deinit when ahcsrc register fails

In the androidmedia plugin_init, we initialize various resources on the
Android device. If anything fails during this series of initializations,
we need to deinitialize any initializations that already occurred.
However, we don't do so if we fail to register the ahcsrc element. Fix
this.

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

8 years agoahc: correct error message
Martin Kelly [Thu, 18 Feb 2016 19:00:50 +0000 (11:00 -0800)]
ahc: correct error message

The error message is specific to only one of the failure cases and is
misleading in the others. Correct it to be more generic and cover all
the failure cases.

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

8 years agoahc: remove unneeded #include <stdio.h>
Martin Kelly [Tue, 16 Feb 2016 19:45:01 +0000 (11:45 -0800)]
ahc: remove unneeded #include <stdio.h>

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

8 years agoahc: typo fix
Martin Kelly [Fri, 19 Feb 2016 00:00:18 +0000 (16:00 -0800)]
ahc: typo fix

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

8 years agohls: Add OPENSSL_CFLAGS to CFLAGS
Joe Gorse [Fri, 4 Mar 2016 03:15:07 +0000 (22:15 -0500)]
hls: Add OPENSSL_CFLAGS to CFLAGS

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

8 years agoglbasememory: Don't change maxsize at run-time
Nicolas Dufresne [Fri, 4 Mar 2016 00:45:43 +0000 (19:45 -0500)]
glbasememory: Don't change maxsize at run-time

Maxsize is initialized once and should never change. Allocating data
should have no impact on the selected max size for this memory. This
causing memory map failure as the maxsize would become smaller then
size. This happened when using direct rendering in avviddec on GL that
does not support PBO transfer.

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

8 years agoqml: Fix leak of the OpenGL contexts
Sergey Borovkov [Tue, 1 Mar 2016 15:22:37 +0000 (18:22 +0300)]
qml: Fix leak of the OpenGL contexts

[Matthew Waters]: add NULL checks before unreffing

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

8 years agovksink: fix spelling on failed _ensure_data() error message
Reynaldo H. Verdejo Pinochet [Mon, 29 Feb 2016 22:24:46 +0000 (14:24 -0800)]
vksink: fix spelling on failed _ensure_data() error message

8 years agompeg2enc: Provide format as a string instead of a char to gst_structure_new
Vivia Nikolaidou [Wed, 2 Mar 2016 19:46:44 +0000 (21:46 +0200)]
mpeg2enc: Provide format as a string instead of a char to gst_structure_new

The format was provided as 'I420' instead of "I420", causing a crash.

8 years agompegtspacketizer: handle early PTS conversion when a group has been found
Aurélien Zanelli [Tue, 20 Jan 2015 15:20:10 +0000 (16:20 +0100)]
mpegtspacketizer: handle early PTS conversion when a group has been found

In some cases, the PTS might be smaller than the first observed PCR
value which causes element to apply wraparound leading to bogus
timestamp. To solve this, we only apply it if the PTS-PCR difference is
greater that 1 second to be sure that it's a real wraparound.

Moreover, using unsigned 32 bits values to handle wrapover could end up
with bogus value, so it use pts value to handle it.

Also, convert pcr time to gst time before comparing it to pts.
Since refpcr is expressed in PCR time base while pts is expressed in GStreamer
time.

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

8 years agoadaptivedemux: Fix REMOVE_SNAP_FLAGS() macro
Sebastian Dröge [Wed, 2 Mar 2016 08:41:17 +0000 (10:41 +0200)]
adaptivedemux: Fix REMOVE_SNAP_FLAGS() macro

!(flag1 | flag2 | flag3) is always evaluation to 0. ~ was meant here
instead of !.

CID 1352032.

8 years agoRelease 1.7.90
Sebastian Dröge [Tue, 1 Mar 2016 16:23:36 +0000 (18:23 +0200)]
Release 1.7.90

8 years agoUpdate .po files
Sebastian Dröge [Tue, 1 Mar 2016 15:10:28 +0000 (17:10 +0200)]
Update .po files

8 years agopo: Update translations
Sebastian Dröge [Tue, 1 Mar 2016 14:53:50 +0000 (16:53 +0200)]
po: Update translations

8 years agovideoparsers: h264: Disable passthorugh mode enabling
Sreerenj Balachandran [Mon, 29 Feb 2016 10:35:58 +0000 (12:35 +0200)]
videoparsers: h264: Disable passthorugh mode enabling

Enabling passthorugh mode is causing multiple issue:
For nal aligned multiresoluton streams, passthrough mode
make h264parse unable to advertise the new resoultions.
Also causing issues while parsing MVC streams which have two
separate layers (base-view and non-base-view).

This fix is only a temporary workaround.

For MVC, proper fixes needed in many places:
(handle prefix nal unit, handle non-base-view slice nal extension,
fix the picture_start detection for multi-layer-mvc streams etc)

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

8 years agosdpdemux: Set caps to application/x-rtp instead of application/x-unknown as returned...
Sebastian Dröge [Mon, 29 Feb 2016 09:53:19 +0000 (11:53 +0200)]
sdpdemux: Set caps to application/x-rtp instead of application/x-unknown as returned by the SDP helpers

The SDP helpers can't know if this is going to be RTP, SRTP, or ....

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

8 years agosdpdemux: Add pads with the correct names in case an rtpbin is used
Sebastian Dröge [Mon, 29 Feb 2016 09:51:28 +0000 (11:51 +0200)]
sdpdemux: Add pads with the correct names in case an rtpbin is used

They're supposed to be stream_%u and not recv_rtp_src_%u_%u_%u.

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

8 years agovkswapper/vkutils: Fix gerror memory leak
Vineeth TM [Mon, 29 Feb 2016 01:38:32 +0000 (10:38 +0900)]
vkswapper/vkutils: Fix gerror memory leak

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

8 years agovkdevice: Fix duplicate assignment of queue variable
Vineeth TM [Mon, 29 Feb 2016 01:37:11 +0000 (10:37 +0900)]
vkdevice: Fix duplicate assignment of queue variable

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

8 years agovksink: Fix GError memory leak
Vineeth TM [Mon, 29 Feb 2016 01:33:45 +0000 (10:33 +0900)]
vksink: Fix GError memory leak

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

8 years agowin32: update exports for new libgstgl function
Tim-Philipp Müller [Sun, 28 Feb 2016 14:06:14 +0000 (14:06 +0000)]
win32: update exports for new libgstgl function

8 years agoamcvideodec: When outputting on a surface, accept all color formats
Sebastian Dröge [Sun, 28 Feb 2016 08:12:01 +0000 (10:12 +0200)]
amcvideodec: When outputting on a surface, accept all color formats

We don't have to understand them, we handle them as a GL texture.

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

8 years agoadaptivedemux: handle snap seeking without setting any position
Thiago Santos [Fri, 26 Feb 2016 21:17:37 +0000 (18:17 -0300)]
adaptivedemux: handle snap seeking without setting any position

When the start_type is GST_SEEK_TYPE_NONE for a forward seek
(or stop_type for a reverse) is not set on a snap seeking operation,
the element should use the current position and then snap as requested.

Also fixes uninitialized variable complaint by clang about
'ts' variable.

8 years agodashdemux: sync index and the selected chunk when seeking
Thiago Santos [Fri, 26 Feb 2016 20:31:44 +0000 (17:31 -0300)]
dashdemux: sync index and the selected chunk when seeking

Otherwise the chunk selected isn't matched to the index and
the timing will be different, causing it to actually start
from a different position

8 years agoAutomatic update of common submodule
Sebastian Dröge [Fri, 26 Feb 2016 10:41:13 +0000 (12:41 +0200)]
Automatic update of common submodule

From a253974 to 6f2d209

8 years agoeglimagememory: add compatibility definitions for EGL dmabuf
Matthew Waters [Wed, 17 Feb 2016 09:13:21 +0000 (20:13 +1100)]
eglimagememory: add compatibility definitions for EGL dmabuf

e.g. the RPi doesn't have them defined

8 years agoopus: rename plugin to opusparse for the time being
Tim-Philipp Müller [Fri, 26 Feb 2016 00:35:30 +0000 (00:35 +0000)]
opus: rename plugin to opusparse for the time being

Until we fix it up and get rid of the opus dependency and
move it elsewhere too.

8 years agoopus: remove Opus encoder/decoder, moved to -base
Tim-Philipp Müller [Fri, 19 Feb 2016 00:38:33 +0000 (00:38 +0000)]
opus: remove Opus encoder/decoder, moved to -base

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

8 years agoglcontext: add a method to add a context to another share group
Matthew Waters [Thu, 25 Feb 2016 21:34:11 +0000 (08:34 +1100)]
glcontext: add a method to add a context to another share group

Intended for use with wrapped contexts that are created shared with gst's
gl contexts in order to manage the internal sharegroup state correctly.

e.g. with caopengllayer (which is used in glimagesink and caopengllayersink
on OS X), we create a CGL context from the gst context and the sharing state
was not being correctly set on either GL context and gst_gl_context_is_shared()
was always returning FALSE.

With 11fb4fff80b63b9d67a731d4bb238b6c0a29d774 only flushing with multiple
shared contexts, the required flush was not occuring causing screen
corruption or stuttering.

Note: this didn't affect GST_GL_API=opengl pipelines

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

8 years agoopus: remove Opus RTP elements, they have moved to -good
Tim-Philipp Müller [Wed, 17 Feb 2016 15:20:47 +0000 (15:20 +0000)]
opus: remove Opus RTP elements, they have moved to -good

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

8 years agohlsdemux: tests: pass test name into test setup function
Alex Ashley [Mon, 18 Jan 2016 08:50:34 +0000 (08:50 +0000)]
hlsdemux: tests: pass test name into test setup function

All hlsdemux tests create a GstStructure called "state" that can be used
by test cases to store information during a test. The name of this
structure is arbitrary. When the code was written, the intention was
to use the name of the test, to aid debugging. However, during
development this was lost, so that the state GstStructure is always
given the name "setup_test_variables".

This commit changes this so that the name of the test is used.

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

8 years agotests: compositor: drop special case for valgrind timeout
Thiago Santos [Tue, 23 Feb 2016 15:42:19 +0000 (12:42 -0300)]
tests: compositor: drop special case for valgrind timeout

The default one is 6 minutes, the test was using 5 minutes so just
resort to using the default.

For the non-valgrind test also use the default 20 secs instead of
reducing it to 6s. No real reason to set a custom value here.

8 years agotests: compositor: add tests for caps queries
Thiago Santos [Tue, 23 Feb 2016 15:17:59 +0000 (12:17 -0300)]
tests: compositor: add tests for caps queries

Verifies that proper caps are returned based on what downstream
restricts.

8 years agovideoaggregator: fix caps queries to allow proper renegotiation
Thiago Santos [Thu, 18 Feb 2016 13:57:51 +0000 (10:57 -0300)]
videoaggregator: fix caps queries to allow proper renegotiation

When caps are already negotiated it should be possible to
select formats other than the one that was negotiated. If downstream
allows alpha video caps and it has already negotiated to a non-alpha
format, caps queries should still return the alpha caps as a possible
format as caps renegotiation can happen.

Includes tests (for compositor) to check that caps queries done after
a caps has been negotiated returns complete results

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

8 years agovtdec: Negotiate the decoder in set_format() already
Sebastian Dröge [Wed, 24 Feb 2016 15:07:17 +0000 (17:07 +0200)]
vtdec: Negotiate the decoder in set_format() already

Don't wait until later, we want to know here if the codec can be opened or not
for the requested format. This was removed (accidentially?) by
  119e09eac315f79ac2cf45b4441ad1d932130614

Without this decodebin has no way to switch to a different decoder if this one
does not work.

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

8 years agoavfvideosrc: Frame durations as CTime to the API, not double
Joe Gorse [Thu, 25 Feb 2016 09:34:40 +0000 (11:34 +0200)]
avfvideosrc: Frame durations as CTime to the API, not double

Newer iOS seems to automatically convert, older iOS/OSX just crashes.

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

8 years agonvenc: release the frames and list when searching for an output buffer
Matthew Waters [Wed, 24 Feb 2016 12:48:19 +0000 (23:48 +1100)]
nvenc: release the frames and  list when searching for an output buffer

Fixes a massive leak in:

videotestsrc ! nvh264enc ! fakesink

8 years agoqt: use a static_cast instead of dynamic one
Matthew Waters [Tue, 23 Feb 2016 12:10:20 +0000 (23:10 +1100)]
qt: use a static_cast instead of dynamic one

The dynamic_cast is a little but of overkill as the app will still crash if it
fails in the later g_assert.

Allows compilation with -fno-rtti

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

8 years agoglmixer: iterator didn't advance in continue statement
Wang Xin-yu (王昕宇) [Wed, 24 Feb 2016 02:45:17 +0000 (10:45 +0800)]
glmixer: iterator didn't advance in continue statement

Leading to a deadlock.

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

8 years agodataurisrc: Don't assume that get_current_caps() returns non-NULL caps after has_curr...
Sebastian Dröge [Tue, 23 Feb 2016 16:17:42 +0000 (18:17 +0200)]
dataurisrc: Don't assume that get_current_caps() returns non-NULL caps after has_current_caps()

Remove calls to gst_pad_has_current_caps() which then go on to call
gst_pad_get_current_caps() as the caps can go to NULL in between. Instead just
use gst_pad_get_current_caps() and check for NULL.

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

8 years agodisparity: Don't assume that get_current_caps() returns non-NULL caps after has_curre...
Dave Craig [Tue, 23 Feb 2016 16:13:37 +0000 (18:13 +0200)]
disparity: Don't assume that get_current_caps() returns non-NULL caps after has_current_caps()

Remove calls to gst_pad_has_current_caps() which then go on to call
gst_pad_get_current_caps() as the caps can go to NULL in between. Instead just
use gst_pad_get_current_caps() and check for NULL.

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

8 years agodashdemux: correctly handle an HTTP-XSDATE that is exactly the size of the date string
Florin Apostol [Tue, 23 Feb 2016 10:49:40 +0000 (10:49 +0000)]
dashdemux: correctly handle an HTTP-XSDATE that is exactly the size of the date string

The code in the gst_dash_demux_parse_http_xsdate() was trying to
handle the case where the string is not null terminated by resizing
the buffer and appending a zero byte. This does not work if the buffer
is exactly the length of the string because the gst_buffer_resize()
function does not re-allocate the buffer, it just changes its size.

If a buffer is passed to gst_dash_demux_parse_http_xsdate() that is
exactly the length of the string, the function fails with an assert
failure in gst_buffer_resize().

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

8 years agodocs: Add audiointerleave
Sebastian Dröge [Tue, 23 Feb 2016 09:59:52 +0000 (11:59 +0200)]
docs: Add audiointerleave

8 years agofbdevsink: fix bytes per pixel calculation
Peter Seiderer [Mon, 22 Feb 2016 09:21:47 +0000 (10:21 +0100)]
fbdevsink: fix bytes per pixel calculation

Simple pipeline

$ gst-launch-1.0 videotestsrc ! fbdevsink

crashes with SIGSEGV in case the frambuffer xres is smaller
than the virtual xres resolution, e.g.:

$ fbset

  mode "800x480-0"
          # D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
          geometry 800 480 1920 1200 16
          timings 0 0 0 0 0 0 0
          accel true
          rgba 5/11,6/5,5/0,0/0
  endmode

Debug:
$ gdb gst-launch-1.0
  (gdb) run videotestsrc ! fbdevsink
  (gdb) where
  #0  0xb6bd2d24 in __memcpy_neon ()
      at ../sysdeps/arm/armv7/multiarch/memcpy_impl.S:591
  #1  0xb69b04e8 in gst_fbdevsink_show_frame (videosink=0x10a3378,
      buf=0xb5c08838) at gstfbdevsink.c:269
  #2  0xb69e88c4 in gst_base_sink_do_preroll (sink=sink@entry=0x10a3378,
      obj=0xb5c08838, obj@entry=0xa0) at gstbasesink.c:2281
  #3  0xb69e92bc in gst_base_sink_do_sync (basesink=basesink@entry=0x10a3378,
      obj=0xa0, obj@entry=0xb5c08838, late=0x0, late@entry=0xb6548ba0,
      step_end=0x140, step_end@entry=0xb6548ba4) at gstbasesink.c:2500
  #4  0xb69ea67c in gst_base_sink_chain_unlocked (
      basesink=basesink@entry=0x10a3378, obj=0x0, obj@entry=0xb5c08838,
      is_list=is_list@entry=0, pad=<optimized out>) at gstbasesink.c:3486
  #5  0xb69ec1c0 in gst_base_sink_chain_main (basesink=0x10a3378,
      pad=<optimized out>, obj=0xb5c08838, is_list=0) at gstbasesink.c:3647
  #6  0xb6eb5b10 in gst_pad_chain_data_unchecked (pad=0x10a6170,
      type=<optimized out>, data=0xb5c08838) at gstpad.c:4086
  #7  0xb6eb7a34 in gst_pad_push_data (pad=pad@entry=0x10a6020,
      type=type@entry=4112, data=0xb5c08838) at gstpad.c:4338
  #8  0xb6ebf344 in gst_pad_push (pad=pad@entry=0x10a6020,
      buffer=<optimized out>) at gstpad.c:4454
  #9  0xb69f22f0 in gst_base_src_loop (pad=0x10a6020) at gstbasesrc.c:2845
  #10 0xb6eeddfc in gst_task_func (task=0x10a8828) at gsttask.c:331
  #11 0xb6d485a0 in g_thread_pool_thread_proxy (data=<optimized out>)
   at gthreadpoQuit
  (gdb) frame 1
  #1  0xb69b04e8 in gst_fbdevsink_show_frame (videosink=0x10a3378,
      buf=0xb5c08838) at gstfbdevsink.c:269
  269     gstfbdevsink.c: No such file or directory.
  (gdb) p fbdevsink
  $1 = (GstFBDEVSink *) 0x10a3378
  (gdb) p *fbdevsink
  $2 = {videosink = {element = {element = {object = {object = {
              g_type_instance = {g_class = 0x10a2d60}, ref_count = 3,
              qdata = 0x0}, lock = {p = 0x0, i = {0, 0}},
            name = 0x10a2f30 "fbdevsink0", parent = 0x10a70a0, flags = 32,
            control_bindings = 0x0, control_rate = 100000000,
            last_sync = 18446744073709551615, _gst_reserved = 0x0},
          state_lock = {p = 0x109f9a8, i = {0, 0}}, state_cond = {p = 0x0, i = {
              3, 0}}, state_cookie = 2, target_state = GST_STATE_PAUSED,
          current_state = GST_STATE_READY, next_state = GST_STATE_PAUSED,
          pending_state = GST_STATE_PAUSED,
          last_return = GST_STATE_CHANGE_ASYNC, bus = 0x108bcb8, clock = 0x0,
          base_time = 0, start_time = 0, numpads = 1, pads = 0x109cc20,
          numsrcpads = 0, srcpads = 0x0, numsinkpads = 1, sinkpads = 0x109cc30,
          pads_cookie = 1, _gst_reserved = {0x0, 0x0, 0x0, 0x0}},
        sinkpad = 0x10a6170, pad_mode = GST_PAD_MODE_PUSH, offset = 0,
        can_activate_pull = 0, can_activate_push = 1, preroll_lock = {p = 0x1,
          i = {1, 0}}, preroll_cond = {p = 0x0, i = {0, 0}}, eos = 0,
        need_preroll = 1, have_preroll = 0, playing_async = 1,
        have_newsegment = 1, segment = {flags = GST_SEGMENT_FLAG_NONE, rate = 1,
          applied_rate = 1, format = GST_FORMAT_TIME, base = 0, offset = 0,
          start = 0, stop = 18446744073709551615, time = 0, position = 33333333,
          duration = 18446744073709551615, _gst_reserved = {0x0, 0x0, 0x0,
            0x0}}, clock_id = 0x0, sync = 1, flushing = 0, running = 0,
        max_lateness = 20000000, priv = 0x10a3188, _gst_reserved = {
          0x0 <repeats 20 times>}}, width = 0, height = 0, priv = 0x10a3180,
      _gst_reserved = {0x0, 0x0, 0x0, 0x0}}, fixinfo = {
      id = '\000' <repeats 15 times>, smem_start = 1078984704,
      smem_len = 4608000, type = 0, type_aux = 0, visual = 2, xpanstep = 1,
      ypanstep = 1, ywrapstep = 0, line_length = 3840, mmio_start = 0,
      mmio_len = 0, accel = 0, capabilities = 0, reserved = {0, 0}}, varinfo = {
    xres = 800, yres = 480, xres_virtual = 1920, yres_virtual = 1200,
    xoffset = 0, yoffset = 0, bits_per_pixel = 16, grayscale = 0, red = {
      offset = 11, length = 5, msb_right = 0}, green = {offset = 5,
      length = 6, msb_right = 0}, blue = {offset = 0, length = 5,
      msb_right = 0}, transp = {offset = 0, length = 0, msb_right = 0},
      nonstd = 0, activate = 0, height = 4294967295, width = 4294967295,
      accel_flags = 1, pixclock = 0, left_margin = 0, right_margin = 0,
      upper_margin = 0, lower_margin = 0, hsync_len = 0, vsync_len = 0,
      sync = 0, vmode = 0, rotate = 0, colorspace = 0, reserved = {0, 0, 0, 0}},
    fd = 5,
    framebuffer = 0xb654a000 <error: Cannot access memory at address 0xb654a000>, device = 0x10a38d8 "/dev/fb0", width = 320, height = 240, cx = 240, cy = 120,
    linelen = 1280, lines = 240, bytespp = 4, fps_n = 30, fps_d = 1}
  (gdb) p map
  $3 = {memory = 0xb5d24008, flags = GST_MAP_READ,
    data = 0xb5d24058 '\377' <repeats 90 times>, "\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\377\a\377\a\377\a\377\a\377\a\377\a\377\a\377\a\377\a"...,
    size = 153600, maxsize = 153603, user_data = {0x0,
      0xb69e3ba4 <gst_base_sink_set_last_buffer_unlocked+92>, 0x10a3378, 0x0},
    _gst_reserved = {0x1, 0x10a3378, 0xb6f50dd8 <_gst_debug_min>, 0xb5c08838}}
  (gdb) p i
  $4 = 121

Fix this by changing the fbdevsink->bytespp calculation using
the frame buffer xres_virtual size instead of xres.

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

8 years agoplayer: Expose more GstVideoOverlay API in the GstPlayerVideoOverlayVideoRenderer
Sebastian Dröge [Mon, 22 Feb 2016 10:53:00 +0000 (12:53 +0200)]
player: Expose more GstVideoOverlay API in the GstPlayerVideoOverlayVideoRenderer

Expose the expose() and set_render_rectangle() methods. These are useful for
proper functioning of the video overlay in various situations and toolkits.

8 years agogl: fix the build
Matthew Waters [Mon, 22 Feb 2016 10:03:14 +0000 (21:03 +1100)]
gl: fix the build

2d287812 was incomplete

8 years agogl: error out if the configured GL API is unsupported by our element
Matthew Waters [Mon, 22 Feb 2016 09:49:52 +0000 (20:49 +1100)]
gl: error out if the configured GL API is unsupported by our element

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

8 years agoqmlglsink: Schedule onSceneGrpahInitialized to execute on render thread
Sergey Borovkov [Sun, 24 Jan 2016 14:40:37 +0000 (17:40 +0300)]
qmlglsink: Schedule onSceneGrpahInitialized to execute on render thread

onSceneGraphInitialized() is called from non render thread currently when
scene graph is already initialized.

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

8 years agoaiffparse: fix negotiation errors with multi-channel files
Tim-Philipp Müller [Thu, 7 Jan 2016 18:26:26 +0000 (18:26 +0000)]
aiffparse: fix negotiation errors with multi-channel files

Set fallback channel layout on files with more than two
channels. Not clear where to retrieve the real layout from
or what the default layout is for AIFF files, the spec
only seems to specify some layout for up to 6 channels
and the file in question doesn't have a CHAN chunk.

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

8 years agowin32: remove outdated build cruft
Tim-Philipp Müller [Sun, 21 Feb 2016 10:34:56 +0000 (10:34 +0000)]
win32: remove outdated build cruft

This hasn't been touched for generations, doesn't work,
and is just causing confusion. We also don't want to
maintain these files manually.

8 years agodaala: don't use exported but undeclared core debug category symbols
Tim-Philipp Müller [Sat, 20 Feb 2016 12:55:08 +0000 (12:55 +0000)]
daala: don't use exported but undeclared core debug category symbols

It's not right and won't work on Windows with MSVC.

8 years agocodecparsers: h265: Fix initialization of slice_deblocking_filter_disabled_flag
Scott D Phillips [Fri, 19 Feb 2016 22:27:59 +0000 (14:27 -0800)]
codecparsers: h265: Fix initialization of slice_deblocking_filter_disabled_flag

H.265 7.4.7.1 says:

> When slice_deblocking_filter_disabled_flag is not present, it is
> inferred to be equal to pps_deblocking_filter_disabled_flag.

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

8 years agompeg4parser: prevent assertion when scanning for sync code
Thiago Santos [Fri, 19 Feb 2016 19:40:54 +0000 (16:40 -0300)]
mpeg4parser: prevent assertion when scanning for sync code

Only search if there is indeed enough data to be searched otherwise
an assertion is raised

8 years agotsparse: Fix per-program-pad pushing
Edward Hervey [Fri, 19 Feb 2016 16:48:55 +0000 (17:48 +0100)]
tsparse: Fix per-program-pad pushing

This fixes a couple of issues regarding the output of (request)
per-program pads output:

We would never push out PAT sections (ok, that was one reallly stupid
mistake. I guess nobody ever uses this feature ...).

In the case where the PMT section of a program was bigger than one
packet, we would only end up pushing the last packet of that PMT. Which
obviously results in the resulting stream never containing the proper
(complete) PMT.

The problem was that the program is only started (in the base class)
after the PMT section is completely parsed. When dealing with single-program
pads, tsparse only wants to push the PMT corresponding to the requested
program (and not the other ones). tsparse did that check by looking
at the streams of the program...
... but that program doesn't exist for the first packets of the initial
PMT.

The fix is to use the base class program information (if it parsed the
PAT it already has some information, like the PMT PID for a given program)
if the program hasn't started yet.