platform/upstream/gstreamer.git
9 years agoapplemedia: vtdec: fix CMBlockBufferRef leak
Alessandro Decina [Tue, 27 Jan 2015 13:53:59 +0000 (00:53 +1100)]
applemedia: vtdec: fix CMBlockBufferRef leak

Fix huge leak that went unnoticed for too long. Oops.

9 years agolibgstgl: run a custom shader to convert YUV to RGB on mac and ios
Alessandro Decina [Tue, 27 Jan 2015 13:48:27 +0000 (00:48 +1100)]
libgstgl: run a custom shader to convert YUV to RGB on mac and ios

When GL_APPLE_ycbcr_422 is available, run a custom shader to convert
GL_TEXTURE_RECTANGLE textures from YUV to RGB.

See https://www.opengl.org/registry/specs/APPLE/ycbcr_422.txt

9 years agoapplemedia: don't call CVPixelBufferLockBaseAddress when doing texture sharing
Alessandro Decina [Tue, 27 Jan 2015 13:43:09 +0000 (00:43 +1100)]
applemedia: don't call CVPixelBufferLockBaseAddress when doing texture sharing

When doing texture sharing we don't need to call CVPixelBufferLockBaseAddress to
map the buffer in CPU. This cuts about 10% relative cpu time from a vtdec !
glimagesink pipeline.

9 years agogl: initial support for texture targets other than GL_TEXTURE_2D
Alessandro Decina [Tue, 27 Jan 2015 13:13:46 +0000 (00:13 +1100)]
gl: initial support for texture targets other than GL_TEXTURE_2D

Make GstGLMemory hold the texture target (tex_target) the texture it represents
(tex_id) is bound to. Modify gst_gl_memory_wrapped_texture and
gst_gl_download_perform_with_data to take the texture target as an argument.

This change is needed to support wrapping textures created outside libgstgl,
which might be bound to a target other than GL_TEXTURE_2D. For example on OSX
textures coming from VideoToolbox have target GL_TEXTURE_RECTANGLE.

With this change we still keep (and sometimes imply) GL_TEXTURE_2D as the
target of textures created with libgstgl.

API: modify GstGLMemory
API: modify gst_gl_memory_wrapped_texture
API: gst_gl_download_perform_with_data

9 years agogstglcolorconvert: micro optimization
Alessandro Decina [Thu, 22 Jan 2015 02:18:23 +0000 (13:18 +1100)]
gstglcolorconvert: micro optimization

Don't call glClear && glClearColor at each draw since we're going to draw the
whole viewport anyway. Gets rid of a glFlush triggered by glClear on OSX.

9 years agoapplemedia: corevideobuffer: make mapping the CVPixelBuffer in CPU optional
Alessandro Decina [Thu, 22 Jan 2015 02:17:11 +0000 (13:17 +1100)]
applemedia: corevideobuffer: make mapping the CVPixelBuffer in CPU optional

Mapping is not necessary and impacts performance when doing texture sharing with
downstream

9 years agogstglcolorconvert: relax caps features check
Alessandro Decina [Thu, 22 Jan 2015 02:11:46 +0000 (13:11 +1100)]
gstglcolorconvert: relax caps features check

Require caps to have the GST_CAPS_FEATURE_MEMORY_GL_MEMORY feature but allow
them to have more features.

9 years agoopusenc: change audio property to audio-type
Vincent Penquerc'h [Wed, 28 Jan 2015 16:43:59 +0000 (16:43 +0000)]
opusenc: change audio property to audio-type

This is now an enum with values generic (default) and voice.

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

9 years agogl/win32: fixup compilation
Matthew Waters [Thu, 29 Jan 2015 12:45:15 +0000 (23:45 +1100)]
gl/win32: fixup compilation

9 years agoaudiovisualizer: remove double-setting of render function
Luis de Bethencourt [Thu, 29 Jan 2015 11:54:35 +0000 (11:54 +0000)]
audiovisualizer: remove double-setting of render function

No need to set the audiovisualizer->render function twice. Once is enough.

9 years agoglwindow: make showing a window explicit
Matthew Waters [Thu, 29 Jan 2015 11:25:00 +0000 (22:25 +1100)]
glwindow: make showing a window explicit

Also fixes the cgl context always displaying a window to render to for
every GstGLContextCocoa created

9 years agoaggregator: Cleanup locking around AggregatorPad flush related fields
Thibault Saunier [Mon, 26 Jan 2015 16:06:29 +0000 (17:06 +0100)]
aggregator: Cleanup locking around AggregatorPad flush related fields

And document the locking

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

9 years agoaggregator: keep chain functions as dumb as possible.
Mathieu Duponchelle [Mon, 26 Jan 2015 12:11:05 +0000 (13:11 +0100)]
aggregator: keep chain functions as dumb as possible.

+ A pad chain function has no business checking other pads,
  that's what the aggregate thread is for.

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

9 years agoaggregator: More fixes around locking when accessing protected private fields
Thibault Saunier [Mon, 26 Jan 2015 10:32:47 +0000 (11:32 +0100)]
aggregator: More fixes around locking when accessing protected private fields

In some more places we were accessing GstAggregator->segment
and GstAggregator->seqnum without holding the GST_OBJECT_LOCK

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

9 years agoaggregator: Make the PAD_LOCK private
Thibault Saunier [Mon, 26 Jan 2015 10:29:08 +0000 (11:29 +0100)]
aggregator: Make the PAD_LOCK private

Instead of using the GST_OBJECT_LOCK we should have
a dedicated mutex for the pad as it is also associated
with the mutex on the EVENT_MUTEX on which we wait
in the _chain function of the pad.

The GstAggregatorPad.segment is still protected with the
GST_OBJECT_LOCK.

Remove the gst_aggregator_pad_peak_unlocked method as it does not make
sense anymore with a private lock.

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

9 years agoaggregator: Hide GstAggregatorPad buffer and EOS fileds
Thibault Saunier [Mon, 26 Jan 2015 10:25:54 +0000 (11:25 +0100)]
aggregator: Hide GstAggregatorPad buffer and EOS fileds

And add a getter for the EOS.

The user should always use the various getters to access
those fields

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

9 years agoaudiomixer: Make flush start/stop test non-racy
Olivier Crête [Thu, 22 Jan 2015 00:09:13 +0000 (19:09 -0500)]
audiomixer: Make flush start/stop test non-racy

The flush stop could have happened between the source trying
to push the segment event and the buffer, this would cause a warning.
Prevent that by taking the source's stream lock while flushing.

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

9 years agoaudiomixer: Replace racy timeout based tested with drain query
Olivier Crête [Thu, 22 Jan 2015 22:41:24 +0000 (17:41 -0500)]
audiomixer: Replace racy timeout based tested with drain query

Using the drain query, we can be certain that the buffer has done going
through the aggregator by taking the stream locks.

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

9 years agoaggregator: Document locking of GstAggregatorPrivate members
Olivier Crête [Wed, 21 Jan 2015 23:41:43 +0000 (18:41 -0500)]
aggregator: Document locking of GstAggregatorPrivate members

Most of them are protected by the object lock, specify
which ones use a different lock.

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

9 years agoaggregator: Document how the segment is protected
Olivier Crête [Wed, 21 Jan 2015 23:47:09 +0000 (18:47 -0500)]
aggregator: Document how the segment is protected

Document that it can only be accessed with the object lock.

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

9 years agoaggregator: Protect all latency related members with the object lock
Olivier Crête [Thu, 22 Jan 2015 00:44:57 +0000 (19:44 -0500)]
aggregator: Protect all latency related members with the object lock

The locking was not consistent, now consistently use the object lock.

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

9 years agoaggregator: Document locking for gst_aggregator_get_latency_unlocked()
Olivier Crête [Thu, 22 Jan 2015 00:43:12 +0000 (19:43 -0500)]
aggregator: Document locking for gst_aggregator_get_latency_unlocked()

Renamed it to _unlocked() to make it clear.

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

9 years agoaggregator: Protect the srcpad caps negotiation with the stream lock
Olivier Crête [Thu, 22 Jan 2015 00:35:25 +0000 (19:35 -0500)]
aggregator: Protect the srcpad caps negotiation with the stream lock

Instead of adding another lock, use the srcpad stream lock, which is already
taken anyway to push out the new caps if needed.

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

9 years agoaggregator: Protect the tags with the object lock
Olivier Crête [Thu, 22 Jan 2015 00:33:18 +0000 (19:33 -0500)]
aggregator: Protect the tags with the object lock

The tags related variables were sometimes protected, sometimes not and
sometimes atomic. Put them all under the object lock.

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

9 years agoaudiomixer: Avoid race in caps negotiation
Olivier Crête [Thu, 22 Jan 2015 00:32:34 +0000 (19:32 -0500)]
audiomixer: Avoid race in caps negotiation

With the current audiomixer, the input caps need to be the same,
otherwise there is an unavoidable race in the caps negotiation. So
enforce that using capsfilters

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

9 years agoaggregator: Consistenly lock the flow_return state
Olivier Crête [Wed, 21 Jan 2015 23:53:20 +0000 (18:53 -0500)]
aggregator: Consistenly lock the flow_return state

Use the object's lock to protect it.

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

9 years agoaudiomixer: Clear GstAudioInfo the the caps
Olivier Crête [Wed, 21 Jan 2015 23:47:40 +0000 (18:47 -0500)]
audiomixer: Clear GstAudioInfo the the caps

When clearing the caps, also clear the matching GstAudioInfo

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

9 years agoaggregator: Consistently lock some members
Olivier Crête [Wed, 21 Jan 2015 23:45:36 +0000 (18:45 -0500)]
aggregator: Consistently lock some members

Some members sometimes used atomic access, sometimes where not locked at
all. Instead consistently use a mutex to protect them, also document
that.

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

9 years agoaudiomixer: Don't reset caps on flush
Olivier Crête [Wed, 21 Jan 2015 23:39:24 +0000 (18:39 -0500)]
audiomixer: Don't reset caps on flush

A flush event doesn't invalidate the previous caps event.

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

9 years agovideoaggregator: Lock access to members of GstAggregatorPad
Olivier Crête [Wed, 14 Jan 2015 19:45:06 +0000 (14:45 -0500)]
videoaggregator: Lock access to members of GstAggregatorPad

Take the pad's object lock before accessing members of the
GstAggregatorPad structure.

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

9 years agoaggregator: Protect exported pad members with the pad's object lock
Olivier Crête [Wed, 14 Jan 2015 19:38:09 +0000 (14:38 -0500)]
aggregator: Protect exported pad members with the pad's object lock

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

9 years agoaggregator: Replace event lock with pad's object lock
Olivier Crête [Wed, 14 Jan 2015 19:35:15 +0000 (14:35 -0500)]
aggregator: Replace event lock with pad's object lock

Reduce the number of locks simplify code, what is protects
is exposed, but the lock was not.

Also means adding an _unlocked version of gst_aggregator_pad_steal_buffer().

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

9 years agoaggregator: Protect data with the same mutex as GCond
Olivier Crête [Sat, 10 Jan 2015 03:01:00 +0000 (22:01 -0500)]
aggregator: Protect data with the same mutex as GCond

Whenever a GCond is used, the safest paradigm is to protect
the variable which change is signalled by the GCond with the same
mutex that the GCond depends on.

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

9 years agovideoaggregator: If getting a timeout before having caps, just advance our position
Nirbheek Chauhan [Wed, 28 Jan 2015 20:58:38 +0000 (02:28 +0530)]
videoaggregator: If getting a timeout before having caps, just advance our position

This can happen if this is a live pipeline and no source produced any buffer
and sent no caps until an output buffer should've been produced according to the
latency.

This fix is similar in spirit to commit be7034d1 by Sebastian for audiomixer.

9 years agogl/calayer: add resize callback based on the bounds rectangle
Matthew Waters [Thu, 29 Jan 2015 06:31:09 +0000 (17:31 +1100)]
gl/calayer: add resize callback based on the bounds rectangle

9 years agogl/caopengllayer: draw asynchronously
Matthew Waters [Thu, 29 Jan 2015 04:26:21 +0000 (15:26 +1100)]
gl/caopengllayer: draw asynchronously

This essentially makes the CAOpenGLLayer draw every refresh cycle.

9 years agogl/cocoa: don't segfault if we have a NULL draw/resize/close callback
Matthew Waters [Wed, 28 Jan 2015 06:59:42 +0000 (17:59 +1100)]
gl/cocoa: don't segfault if we have a NULL draw/resize/close callback

9 years agocgl/calayer: use a callback instead of hardcoding the draw functionality
Matthew Waters [Wed, 28 Jan 2015 06:16:14 +0000 (17:16 +1100)]
cgl/calayer: use a callback instead of hardcoding the draw functionality

9 years agocgl: install the gl context and gl layer headers
Matthew Waters [Wed, 28 Jan 2015 06:13:05 +0000 (17:13 +1100)]
cgl: install the gl context and gl layer headers

9 years agocgl: add a header for the CAOpenGLLayer support
Matthew Waters [Wed, 28 Jan 2015 06:05:14 +0000 (17:05 +1100)]
cgl: add a header for the CAOpenGLLayer support

9 years agodecklinkvideosink: Always lock the mutex before starting the streams
Sebastian Dröge [Wed, 28 Jan 2015 16:02:59 +0000 (17:02 +0100)]
decklinkvideosink: Always lock the mutex before starting the streams

9 years agodecklinkvideosink: Fix deadlock
Sebastian Dröge [Wed, 28 Jan 2015 15:58:27 +0000 (16:58 +0100)]
decklinkvideosink: Fix deadlock

9 years agodecklink{audio,video}sink: Only start scheduled playback once both sources are ready...
Sebastian Dröge [Wed, 28 Jan 2015 14:48:26 +0000 (15:48 +0100)]
decklink{audio,video}sink: Only start scheduled playback once both sources are ready and we are in PLAYING

Otherwise we might start the scheduled playback before the audio or video streams are
actually enabled, and then error out later because they are enabled to late.

We enable the streams when getting the caps, which might be *after* we were
set to PLAYING state.

9 years agodecklink{audio,video}src: Only start the streams once both sources are ready and...
Sebastian Dröge [Wed, 28 Jan 2015 14:26:17 +0000 (15:26 +0100)]
decklink{audio,video}src: Only start the streams once both sources are ready and we are in PLAYING

Otherwise we might start the streams before the audio or video streams are
actually enabled, and then error out later because they are enabled to late.

We enable the streams when getting the caps, which might be *after* we were
set to PLAYING state.

9 years agodecklink: Make sure our clock never returns NONE, always advances and does not jump...
Sebastian Dröge [Wed, 28 Jan 2015 13:21:40 +0000 (14:21 +0100)]
decklink: Make sure our clock never returns NONE, always advances and does not jump when going from PAUSED to PLAYING

It basically behaves the same as the audio clocks.

9 years agodecklinkvideosink: Handle the clock returning GST_CLOCK_TIME_NONE properly
Sebastian Dröge [Wed, 28 Jan 2015 11:20:05 +0000 (12:20 +0100)]
decklinkvideosink: Handle the clock returning GST_CLOCK_TIME_NONE properly

9 years agodecklinkvideo{sink,src}: Make elements more similar to the audio elements by enabling...
Sebastian Dröge [Wed, 28 Jan 2015 10:41:17 +0000 (11:41 +0100)]
decklinkvideo{sink,src}: Make elements more similar to the audio elements by enabling the video input/output only when getting the actual caps

This will also make it easier later to support caps changes and support
selecting the mode based on the caps if that should ever be implemented.

9 years agodecklinkvideosrc: Properly report caps if mode!=auto and handle caps changes properly...
Sebastian Dröge [Mon, 26 Jan 2015 18:02:04 +0000 (19:02 +0100)]
decklinkvideosrc: Properly report caps if mode!=auto and handle caps changes properly for mode=auto

9 years agodecklinkaudiosrc: Don't release input device twice on errors in set_caps()
Sebastian Dröge [Mon, 26 Jan 2015 17:27:10 +0000 (18:27 +0100)]
decklinkaudiosrc: Don't release input device twice on errors in set_caps()

9 years agogl/dispmanx: fix build
Philippe Normand [Tue, 27 Jan 2015 10:25:53 +0000 (11:25 +0100)]
gl/dispmanx: fix build

Commit ab48bb6f0f55091662e595a001e178154ce60cdb changed the API of
GstGLWindow.

9 years agoglmemory: more compatibility defines for gles2 systems
Matthew Waters [Tue, 27 Jan 2015 03:52:47 +0000 (14:52 +1100)]
glmemory: more compatibility defines for gles2 systems

9 years agoglmemory: add some thread safety for gl operations
Matthew Waters [Tue, 27 Jan 2015 01:15:43 +0000 (12:15 +1100)]
glmemory: add some thread safety for gl operations

9 years agoglmemory: use pbo's for download
Matthew Waters [Tue, 27 Jan 2015 00:53:51 +0000 (11:53 +1100)]
glmemory: use pbo's for download

In order to use pbo's efficiently, the transfer operation has to
be separated from the use of the downloaded data which requires some
rearchitecturing around glcolorconvert/gldownload and elements

9 years agoglprototypes: add some (un)map buffer variants for GL/GLES
Matthew Waters [Tue, 27 Jan 2015 00:04:07 +0000 (11:04 +1100)]
glprototypes: add some (un)map buffer variants for GL/GLES

9 years agodashdemux: use audio_%02u and video_%02u names for pads
Thiago Santos [Mon, 26 Jan 2015 20:51:22 +0000 (17:51 -0300)]
dashdemux: use audio_%02u and video_%02u names for pads

Instead of using the default ghostpad%u naming. The audio_/video_
names are more common in demuxers

9 years agodecklinkaudiosrc: Release the audio input on errors, not the video input
Sebastian Dröge [Mon, 26 Jan 2015 14:33:23 +0000 (15:33 +0100)]
decklinkaudiosrc: Release the audio input on errors, not the video input

9 years agoaiffparse: remove unnecessary variable
Luis de Bethencourt [Mon, 26 Jan 2015 13:46:44 +0000 (13:46 +0000)]
aiffparse: remove unnecessary variable

The bps variable is declared with value aiff->bps, read once and never written.
aiff->bps can be used directly instead.

9 years agoaiffparse: fix which stop variable is used in assignment
Luis de Bethencourt [Mon, 26 Jan 2015 12:49:45 +0000 (12:49 +0000)]
aiffparse: fix which stop variable is used in assignment

Assignment is done to variable segment.stop when the intention was to assign to
local variable stop. Instead of overwriting it, the value is now clamped and
segment.stop is set to it soon after.

CID #1265772

9 years agovideoaggregator: fix crash when receiving buffer without timestamps
Tim-Philipp Müller [Mon, 26 Jan 2015 09:22:23 +0000 (09:22 +0000)]
videoaggregator: fix crash when receiving buffer without timestamps

Unset out buffer in clip function when we unref the buffer to be
clipped, otherwise aggregator will continue to use the already-
freed buffer. Fixes crash when buffers without timestamps are
being fed to aggregator. Partly because aggregator ignores the
error flow return.

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

9 years agoRemove unported directdraw plugin
Tim-Philipp Müller [Sun, 18 Jan 2015 18:05:31 +0000 (18:05 +0000)]
Remove unported directdraw plugin

This API has been deprecated for eternities and microsoft
stopped shipping the headers in 2010 accoding to wikipedia,
so let's just remove it and focus on bringing the plugins
based on the newer APIs up to snuff.

9 years agoaiffmux: write padding byte at end of SSND chunk if needed
Matthieu Bouron [Wed, 26 Mar 2014 17:43:33 +0000 (17:43 +0000)]
aiffmux: write padding byte at end of SSND chunk if needed

AIFF chunks are supposed to be even aligned.

Aligning the SSND chunk will allow the aiff muxer to properly write
chunks (like the ID3 one) at the end of the file.

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

9 years agowaylandsink: Free leaked GstStructure
Edward Hervey [Fri, 23 Jan 2015 11:44:22 +0000 (12:44 +0100)]
waylandsink: Free leaked GstStructure

Coverity CID : 1256565

9 years agogltestsrc: Ensure variable is initialized before usage
Edward Hervey [Fri, 23 Jan 2015 11:41:29 +0000 (12:41 +0100)]
gltestsrc: Ensure variable is initialized before usage

Coverity CID: 1256569

9 years agocodecparsers: Indent file
Edward Hervey [Fri, 23 Jan 2015 11:26:16 +0000 (12:26 +0100)]
codecparsers: Indent file

Someone's been commiting without using gst-indent :)

9 years agocodecparsers: Add READ_UE_MAX macro
Edward Hervey [Fri, 23 Jan 2015 11:24:52 +0000 (12:24 +0100)]
codecparsers: Add READ_UE_MAX macro

READ_UE_ALLOWED was almost exclusively used with min == 0, which doesn't
make much point for unsigned integers.

Add a READ_UE_MAX variant and use that instead. Also replaced two usages
of CHECK_ALLOWED (a,0,something) by CHECK_ALLOWED_MAX (a, something)

9 years agointervideosrc: Fix GAP flag setting on non-black frames
Arun Raghavan [Fri, 23 Jan 2015 06:58:42 +0000 (12:28 +0530)]
intervideosrc: Fix GAP flag setting on non-black frames

The previous commit fixed setting the GAP flag on black frames, but
incorrectly dropped the flag on repeated pushes of the same video
buffer.

9 years agogl/tests: update glwindow api change
Matthew Waters [Fri, 23 Jan 2015 06:27:42 +0000 (17:27 +1100)]
gl/tests: update glwindow api change

9 years agogl/window/eagl: fix a couple of typos
Matthew Waters [Fri, 23 Jan 2015 05:52:25 +0000 (16:52 +1100)]
gl/window/eagl: fix a couple of typos

9 years agoglwindow: cleanup/reorganize functions/members into logical groups
Matthew Waters [Fri, 23 Jan 2015 05:39:44 +0000 (16:39 +1100)]
glwindow: cleanup/reorganize functions/members into logical groups

9 years agoapplemedia: update for gstgl cocoa -> cgl change
Matthew Waters [Fri, 23 Jan 2015 04:02:55 +0000 (15:02 +1100)]
applemedia: update for gstgl cocoa -> cgl change

9 years agogl/qt/examples: update for NSOpenGL -> CGL change
Matthew Waters [Fri, 23 Jan 2015 03:18:12 +0000 (14:18 +1100)]
gl/qt/examples: update for NSOpenGL -> CGL change

9 years agoglwindow: remove width/height from _draw()
Matthew Waters [Fri, 23 Jan 2015 03:11:48 +0000 (14:11 +1100)]
glwindow: remove width/height from _draw()

Depending on the platform, it was only ever implemented to 1) set a
default surface size, 2) resize based on the video frame or 3) nothing.
Instead, provide a set_preferred_size () that elements/applications
can use to request a certain size which may be ignored for
videooverlay/other cases.

9 years agoglcontext/cocoa: avoid destroying a possibly 0 GSource id
Matthew Waters [Thu, 22 Jan 2015 10:43:51 +0000 (21:43 +1100)]
glcontext/cocoa: avoid destroying a possibly 0 GSource id

9 years agogl/cocoa: move to CGL and CAOpenGLLayer for rendering
Matthew Waters [Tue, 20 Jan 2015 11:01:39 +0000 (22:01 +1100)]
gl/cocoa: move to CGL and CAOpenGLLayer for rendering

Removes the use of NSOpenGL* variety and functions.  Any Cocoa
specific functions that took/returned a NSOpenGL* object now
take/return the CGL equivalents.

9 years agoglcontext/cocoa: add debug category
Matthew Waters [Thu, 22 Jan 2015 05:08:11 +0000 (16:08 +1100)]
glcontext/cocoa: add debug category

9 years agointervideosrc: Fix GAP flag setting on black frames correctly
Arun Raghavan [Thu, 22 Jan 2015 05:20:23 +0000 (10:50 +0530)]
intervideosrc: Fix GAP flag setting on black frames correctly

This did not actually work since the video_buffer was set to NULL after
the first black frame.

Reported by: Patrik Oldsberg <patrik.oldsberg@ericsson.com>

9 years agointervideosrc: Fix max value of the timeout property
Arun Raghavan [Wed, 21 Jan 2015 18:07:10 +0000 (23:37 +0530)]
intervideosrc: Fix max value of the timeout property

Reported by: Patrik Oldsberg <patrik.oldsberg@ericsson.com>

9 years agoopenh264: Implement the preset interface
Arun Raghavan [Wed, 21 Jan 2015 18:05:55 +0000 (23:35 +0530)]
openh264: Implement the preset interface

Will be useful when we want to set presets on the encoder via encodebin
or such.

9 years agoaudiovisualizer: sync with base class in -base
Luis de Bethencourt [Wed, 21 Jan 2015 15:31:21 +0000 (15:31 +0000)]
audiovisualizer: sync with base class in -base

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

9 years agoaudiovisualizer: ensure default query/event handlers are used
Luis de Bethencourt [Wed, 21 Jan 2015 15:06:21 +0000 (15:06 +0000)]
audiovisualizer: ensure default query/event handlers are used

Sync audiovisualizer class implementation to the one in gst-plugins-base. This
commit matches 9dd0e6cccc971d8a6bcca4e9e4d2ee1dbb20fffa in that module.

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

9 years agosiren: Make some local variables non-static for thread-safety
Sebastian Dröge [Wed, 21 Jan 2015 09:18:11 +0000 (10:18 +0100)]
siren: Make some local variables non-static for thread-safety

Otherwise we will override values from another thread if we encode
or decode frames at the same time in different threads.

9 years agoConstify some static arrays everywhere
Sebastian Dröge [Wed, 21 Jan 2015 09:17:04 +0000 (10:17 +0100)]
Constify some static arrays everywhere

9 years agopo: Fix list of files tracked
Edward Hervey [Wed, 21 Jan 2015 07:49:23 +0000 (08:49 +0100)]
po: Fix list of files tracked

sfsink/sfsrc haven't been ported (and therefore dist'ed) in 1.x

9 years agompegdemux: minor debug update
Edward Hervey [Tue, 9 Dec 2014 08:58:03 +0000 (09:58 +0100)]
mpegdemux: minor debug update

Only show PTS/DTS when they are valid, and include the stream id

9 years agoadaptivedemux: do not skip the first fragment
Thiago Santos [Tue, 20 Jan 2015 17:55:05 +0000 (14:55 -0300)]
adaptivedemux: do not skip the first fragment

Avoid advancing fragment right after downloading the header. If it
is the header, by default, don't advance to the next fragment.

9 years agopo: update POTFILES
Piotr Drąg [Tue, 20 Jan 2015 15:57:15 +0000 (16:57 +0100)]
po: update POTFILES

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

9 years agoh264parse: expose stereo-high profile
Víctor Manuel Jáquez Leal [Fri, 16 Jan 2015 18:32:15 +0000 (19:32 +0100)]
h264parse: expose stereo-high profile

Exposing stereo-high profile as a compatible profile of multiview-high
if the maximum number of encoded views in the stream is two.

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

9 years agoh264parse: parse SPS subset
Víctor Manuel Jáquez Leal [Mon, 19 Jan 2015 16:31:26 +0000 (17:31 +0100)]
h264parse: parse SPS subset

This patch calls gst_h264_parser_parse_subset_sps() when a
SPS subset NAL type is found.

All the bits required for parsing the SPS subset in NALs were
already there, just we need to call them when the this NAL type
is found.

With this parsing, the number of views (minus 1) attribute is
filled, which was a requirement for negotiating the stereo-high
profile.

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

9 years agoh264parse: add initial support for MVC NAL units.
Sreerenj Balachandran [Tue, 19 Mar 2013 12:23:00 +0000 (14:23 +0200)]
h264parse: add initial support for MVC NAL units.

Initial support for MVC NAL units. It is only needed to propagate the
complete set of NAL units downstream at this time.

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

Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9 years agoadaptivedemux: add explicit cast to make clang happy
Thiago Santos [Tue, 20 Jan 2015 12:23:02 +0000 (09:23 -0300)]
adaptivedemux: add explicit cast to make clang happy

Fixes compilation

9 years agoadaptivedemux: refactor chunk downloading flow
Thiago Santos [Thu, 15 Jan 2015 20:44:45 +0000 (17:44 -0300)]
adaptivedemux: refactor chunk downloading flow

Add more power to the chunk_received function (renamed to data_received)
and also to the fragment_finish function.

The data_received function must parse/decrypt the data if necessary and
also push it using the new push_buffer function that is exposed now. The
default implementation gets data from the stream adapter (all available)
and pushes it.

The fragment_finish function must also advance the fragment. The default
implementation only advances the fragment.

This allows the subsegment handling in dashdemux to continuously download
the same file from the server instead of stopping at every subsegment
boundary and starting a new request

9 years agocompositor: fix illegal memory access in blend function with negative ypos
Vincent Penquerc'h [Mon, 19 Jan 2015 12:37:23 +0000 (12:37 +0000)]
compositor: fix illegal memory access in blend function with negative ypos

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

9 years agodashdemux: add log message about segment time information
Thiago Santos [Mon, 19 Jan 2015 11:37:59 +0000 (08:37 -0300)]
dashdemux: add log message about segment time information

For debugging purposes

9 years agoadaptivedemux: fix multi-period playback
Thiago Santos [Mon, 19 Jan 2015 11:36:42 +0000 (08:36 -0300)]
adaptivedemux: fix multi-period playback

If we say it is the first segment after a new period it will resync
the segment.start value and all buffers will be late for the new period
we are trying to play. Otherwise we want to keep the segment.start with
the previous value to allow the running time to smoothly increase

9 years agodashdemux: Fix compiler warning with clang
Sebastian Dröge [Mon, 19 Jan 2015 10:23:52 +0000 (11:23 +0100)]
dashdemux: Fix compiler warning with clang

gstdashdemux.c:1330:13: error: implicit conversion from enumeration type 'enum _GstAdaptiveDemuxFlowReturn' to different enumeration type
      'GstFlowReturn' [-Werror,-Wenum-conversion]
      ret = GST_ADAPTIVE_DEMUX_FLOW_SUBSEGMENT_END;
          ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

9 years agoglimagesink: fix memleak
Nicola Murino [Sun, 18 Jan 2015 20:05:44 +0000 (21:05 +0100)]
glimagesink: fix memleak

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

9 years agoRemove real plugin which is no longer needed and has never been ported
Tim-Philipp Müller [Sun, 18 Jan 2015 17:25:35 +0000 (17:25 +0000)]
Remove real plugin which is no longer needed and has never been ported

Decoders for these formats exist in gst-libav, if anyone
still has a need for them.

9 years agoRemove libgmyth-based MythTV source element which was never ported
Tim-Philipp Müller [Sun, 18 Jan 2015 17:10:37 +0000 (17:10 +0000)]
Remove libgmyth-based MythTV source element which was never ported

gmyth seems to be unmaintained upstream, and no one has asked
for this to be ported for a very long time, so let's just
remove it. Neither debian nor Fedora seem to ship libgmyth
any longer, and in any case it's most likely deprecated by
the UPnP support in MythTV.

9 years agoglapi: fix compilation with latest MSVC
Lasse Laursen [Fri, 16 Jan 2015 23:06:40 +0000 (10:06 +1100)]
glapi: fix compilation with latest MSVC

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

9 years agoglmemory: use the correct size for the pbo
Matthew Waters [Thu, 15 Jan 2015 01:57:59 +0000 (12:57 +1100)]
glmemory: use the correct size for the pbo

It was missing the GstVideoAlignment padding which could cause GL
errors related to overrunning the size of the pbo.