platform/upstream/gstreamer.git
9 years agogl: avoid overwriting display and context to NULL
Julien Isorce [Fri, 13 Mar 2015 15:34:55 +0000 (15:34 +0000)]
gl: avoid overwriting display and context to NULL

It happens when the application provides display
and/or context.

9 years agoglshader: attribute locations are -1 on error
Matthew Waters [Fri, 13 Mar 2015 17:41:17 +0000 (17:41 +0000)]
glshader: attribute locations are -1 on error

9 years agoglshader: prevent from getting attributes without vertex shader
Neos3452 [Fri, 13 Mar 2015 17:04:17 +0000 (17:04 +0000)]
glshader: prevent from getting attributes without vertex shader

It doesn't make sense to query for vertex attributes without a vertex
shader. Moreover this is causing a crash on OSX.

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

9 years agoGL: Remove annoying printf in the filterbin class_init
Jan Schmidt [Fri, 13 Mar 2015 15:53:00 +0000 (02:53 +1100)]
GL: Remove annoying printf in the filterbin class_init

9 years agoRestricted activeVideoMaxFrameDuration to fix frame rate
ijsf [Thu, 12 Mar 2015 08:27:30 +0000 (09:27 +0100)]
Restricted activeVideoMaxFrameDuration to fix frame rate

9 years agoglimagesink: add pixel-aspect-ratio property on the bin
Matthew Waters [Fri, 13 Mar 2015 12:43:13 +0000 (12:43 +0000)]
glimagesink: add pixel-aspect-ratio property on the bin

9 years agoglupload: unref the bufferpool
Matthew Waters [Fri, 13 Mar 2015 12:40:04 +0000 (12:40 +0000)]
glupload: unref the bufferpool

9 years agoglimagesink: forward ALL the properties on the bin
Matthew Waters [Fri, 13 Mar 2015 12:29:54 +0000 (12:29 +0000)]
glimagesink: forward ALL the properties on the bin

9 years agogluploadelement: properly unref buffers that are the same as the input
Matthew Waters [Fri, 13 Mar 2015 12:28:36 +0000 (12:28 +0000)]
gluploadelement: properly unref buffers that are the same as the input

basetransform doesn't unref equal input and output buffers

9 years agogl: get the context from basemixer/basefilter
Matthew Waters [Fri, 13 Mar 2015 10:25:35 +0000 (10:25 +0000)]
gl: get the context from basemixer/basefilter

9 years agogl: retreive the gldisplay/app gl context as soon as possible
Matthew Waters [Fri, 13 Mar 2015 09:38:54 +0000 (09:38 +0000)]
gl: retreive the gldisplay/app gl context as soon as possible

fixes the usage of gst_gl_display_filter_gl_api

9 years agogl/tests: fix deadlock on glcontext wrapped context test
Matthew Waters [Fri, 13 Mar 2015 09:37:46 +0000 (09:37 +0000)]
gl/tests: fix deadlock on glcontext wrapped context test

9 years agoglcolorconvert: cache indices in a buffer object
Julien Isorce [Thu, 12 Mar 2015 16:46:44 +0000 (16:46 +0000)]
glcolorconvert: cache indices in a buffer object

9 years agoaudiomixer: Fix discont detection and buffer alignment code
Sebastian Dröge [Thu, 12 Mar 2015 17:11:31 +0000 (17:11 +0000)]
audiomixer: Fix discont detection and buffer alignment code

Actually accumulate the sample counter to check the accumulated error
between actual timestamps and expected ones instead of just resetting
the error back to 0 with every new buffer.

Also don't reset discont_time whenever we don't resync. The whole point of
discont_time is to remember when we first detected a discont until we actually
act on it a bit later if the discont stayed around for discont_wait time.

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

9 years agocaopengllayersink: implement as a bin like glimagesink
Matthew Waters [Sun, 8 Mar 2015 07:16:04 +0000 (18:16 +1100)]
caopengllayersink: implement as a bin like glimagesink

9 years agogl/cocoa: avoid deadlock when creating context on the main thread.
Matthew Waters [Tue, 3 Mar 2015 07:05:04 +0000 (18:05 +1100)]
gl/cocoa: avoid deadlock when creating context on the main thread.

Make window/view creation async so that it is possible to
gst_gl_context_create from the main thread.

9 years agogl: store the list of contexts within gldisplay
Matthew Waters [Tue, 3 Mar 2015 06:26:47 +0000 (17:26 +1100)]
gl: store the list of contexts within gldisplay

Removes the reliance on the allocation query to propogate GL contexts.

Allows thread safely getting a context for the a specific thread.

9 years agoglimagesink: unset the current shader after rendering
Matthew Waters [Tue, 3 Mar 2015 05:48:24 +0000 (16:48 +1100)]
glimagesink: unset the current shader after rendering

fixes gltestsrc ! glimagesink when gltestsrc doesn't use a shader

9 years agogltestsrc: remove usage of gldownload library object
Matthew Waters [Tue, 3 Mar 2015 05:38:56 +0000 (16:38 +1100)]
gltestsrc: remove usage of gldownload library object

9 years agoglcontext: store the thread current context
Matthew Waters [Fri, 27 Feb 2015 13:30:38 +0000 (00:30 +1100)]
glcontext: store the thread current context

9 years agogl: new glsrcbin element
Matthew Waters [Thu, 26 Feb 2015 07:26:36 +0000 (18:26 +1100)]
gl: new glsrcbin element

9 years agoglvideomixer: implement with glmixerbin
Matthew Waters [Thu, 26 Feb 2015 02:45:56 +0000 (13:45 +1100)]
glvideomixer: implement with glmixerbin

The relevant properties are forwarded to/from the containing bin
and sink pads.

9 years agoglmixer: remove usage of upload/download objects
Matthew Waters [Wed, 25 Feb 2015 13:20:37 +0000 (00:20 +1100)]
glmixer: remove usage of upload/download objects

9 years agogl: new glmixerbin element
Matthew Waters [Wed, 25 Feb 2015 12:48:56 +0000 (23:48 +1100)]
gl: new glmixerbin element

9 years agoglimagesink: implement as a bin
Matthew Waters [Fri, 20 Feb 2015 05:47:01 +0000 (16:47 +1100)]
glimagesink: implement as a bin

glupload ! glcolorconvert ! sink

Some properties are manually forwarded.  The rest are available using
GstChildProxy.

The two signals are forwarded as well.

9 years agogl: new glsinkbin element
Matthew Waters [Thu, 19 Feb 2015 07:23:37 +0000 (18:23 +1100)]
gl: new glsinkbin element

similar to glfilterbin but for sinks

9 years agoglfilter: don't use the library upload/convert objects
Matthew Waters [Thu, 19 Feb 2015 03:19:59 +0000 (14:19 +1100)]
glfilter: don't use the library upload/convert objects

9 years agogl: new element glfilterbin
Matthew Waters [Thu, 19 Feb 2015 02:33:28 +0000 (13:33 +1100)]
gl: new element glfilterbin

It encapsulates a confiurable GL processing element in the
upload/colorconvert/download dance required to transparently process
the majority of GstBuffer's.

9 years agogl: add new gldownloadelement
Matthew Waters [Thu, 19 Feb 2015 02:24:59 +0000 (13:24 +1100)]
gl: add new gldownloadelement

Simply transforms caps to/from raw/glmemory capsfeatures

9 years agogl: add a new glcolorconvert element based on the glcolorconvert library object
Matthew Waters [Thu, 12 Feb 2015 06:59:27 +0000 (17:59 +1100)]
gl: add a new glcolorconvert element based on the glcolorconvert library object

9 years agoglupload: implement propose_allocation pool handling for glmemory upload
Matthew Waters [Wed, 11 Mar 2015 16:56:16 +0000 (16:56 +0000)]
glupload: implement propose_allocation pool handling for glmemory upload

9 years agogl: add a new glupload element based on the glupload library object
Matthew Waters [Wed, 11 Feb 2015 12:29:01 +0000 (23:29 +1100)]
gl: add a new glupload element based on the glupload library object

9 years agogl: add a new glbasemixer class below glmixer
Matthew Waters [Wed, 11 Feb 2015 03:48:45 +0000 (14:48 +1100)]
gl: add a new glbasemixer class below glmixer

It deals with propagating the gl display/contexts throughout the
application/pipeline

9 years agogl: add a new glbasefilter class below glfilter
Matthew Waters [Tue, 10 Feb 2015 14:48:11 +0000 (01:48 +1100)]
gl: add a new glbasefilter class below glfilter

It deals with propagating the gl display/contexts throughout the
application/pipeline

9 years agoglutils: expose running a query on a set of src/sink pads
Matthew Waters [Tue, 10 Feb 2015 14:27:28 +0000 (01:27 +1100)]
glutils: expose running a query on a set of src/sink pads

9 years agoopusenc: replace cbr and constrained-vbr properties with an enum
Vincent Penquerc'h [Thu, 12 Mar 2015 12:49:40 +0000 (12:49 +0000)]
opusenc: replace cbr and constrained-vbr properties with an enum

It was deemed confusing before.

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

9 years agoglfilter: advertise resize in the caps negotiation properly
Matthew Waters [Thu, 12 Mar 2015 10:14:50 +0000 (10:14 +0000)]
glfilter: advertise resize in the caps negotiation properly

9 years agoaudiomixer: Add locking to fill_buffer and fix mix_buffer
Nirbheek Chauhan [Wed, 11 Mar 2015 20:19:58 +0000 (01:49 +0530)]
audiomixer: Add locking to fill_buffer and fix mix_buffer

The audiomixer pad struct fields may be changed from other threads

9 years agoaudiomixer: Mark a discont when we receive a new segment event
Nirbheek Chauhan [Wed, 11 Mar 2015 20:26:44 +0000 (01:56 +0530)]
audiomixer: Mark a discont when we receive a new segment event

This allows us to handle new segment events correctly; either by dropping
buffers or inserting silence; for example if the offset is changed on an srcpad
connected to audiomixer.

9 years agoglcolorconvert: we don't do resizing of the video frames
Matthew Waters [Thu, 12 Mar 2015 09:46:02 +0000 (09:46 +0000)]
glcolorconvert: we don't do resizing of the video frames

As we cannot do accurate texel sampling then due to the texture
coordinates being interpolated based on the output frame size.

9 years agovideoaggregator: While aggregating, sync values for all pads before converting frames
Nirbheek Chauhan [Tue, 20 Jan 2015 14:23:09 +0000 (19:53 +0530)]
videoaggregator: While aggregating, sync values for all pads before converting frames

9 years agogl/x11: don't XGetWindowAttributes every XEvent
Matthew Waters [Wed, 11 Mar 2015 18:49:22 +0000 (18:49 +0000)]
gl/x11: don't XGetWindowAttributes every XEvent

fixes a deadlock in xcb where the X window may not exist.

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

9 years agogl/window: hopefully fixup compile warnings on android/ios
Matthew Waters [Wed, 11 Mar 2015 14:50:28 +0000 (14:50 +0000)]
gl/window: hopefully fixup compile warnings on android/ios

9 years agoglfilter: Remove redundant check for clearing context on reset.
Jan Schmidt [Wed, 11 Mar 2015 06:19:17 +0000 (17:19 +1100)]
glfilter: Remove redundant check for clearing context on reset.

The context is already cleared a few lines above.

9 years agoRemove a bunch of silly ';;' typos at the end of lines
Jan Schmidt [Wed, 11 Mar 2015 05:55:14 +0000 (16:55 +1100)]
Remove a bunch of silly ';;' typos at the end of lines

9 years agogl/window: create the main loop/context on init/finalize
Matthew Waters [Fri, 6 Mar 2015 04:31:18 +0000 (15:31 +1100)]
gl/window: create the main loop/context on init/finalize

Avoids races setting the window handle from the main thread.

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

9 years agoaggregatory: don't redefine GST_FLOW_CUSTOM_SUCCESS
Matthew Waters [Sat, 7 Mar 2015 15:04:11 +0000 (02:04 +1100)]
aggregatory: don't redefine GST_FLOW_CUSTOM_SUCCESS

9 years agoandroidmedia: Remove unused label/variable
Edward Hervey [Wed, 4 Mar 2015 10:12:32 +0000 (11:12 +0100)]
androidmedia: Remove unused label/variable

9 years agoadaptivedemux: fix get_presentation_offset check.
Mathieu Duponchelle [Tue, 10 Mar 2015 14:31:21 +0000 (15:31 +0100)]
adaptivedemux: fix get_presentation_offset check.

And return 0 isntead of FALSE.

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

9 years agodashdemux: implement get_presentation_offset.
Mathieu Duponchelle [Mon, 2 Mar 2015 13:00:03 +0000 (14:00 +0100)]
dashdemux: implement get_presentation_offset.

To account for presentationTimeOffset as per section 7.2.1 .

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

9 years agoadaptivedemux: [API]: get_presentation_offset virtual method.
Mathieu Duponchelle [Mon, 2 Mar 2015 12:53:03 +0000 (13:53 +0100)]
adaptivedemux: [API]: get_presentation_offset virtual method.

Asks the subclass for a potential time offset to apply to each
separate stream, in dash streams can have "presentation time offsets",
which can be different for each stream.

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

9 years agogstmpdparser: Really set the default value for startNumber.
Mathieu Duponchelle [Fri, 6 Mar 2015 11:24:44 +0000 (12:24 +0100)]
gstmpdparser: Really set the default value for startNumber.

+ The specs ask for a default of 1, the current code only did
 set a default when the field was present.

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

9 years agovideoparser: unused value
Luis de Bethencourt [Mon, 9 Mar 2015 11:11:16 +0000 (11:11 +0000)]
videoparser: unused value

Value set in off will be immediately overwritten after going to next.

CID #1226476

9 years agoy4mdec: remove unnecessary semicolon
hoonhee.lee [Mon, 9 Mar 2015 03:51:21 +0000 (12:51 +0900)]
y4mdec: remove unnecessary semicolon

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

9 years agotests: glcontext: remove unnecessary semicolon
hoonhee.lee [Mon, 9 Mar 2015 03:41:59 +0000 (12:41 +0900)]
tests: glcontext: remove unnecessary semicolon

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

9 years agocamerabin: update zoom param spec if video source changes its max-zoom
Mohammed Hassan [Fri, 6 Mar 2015 12:49:20 +0000 (14:49 +0200)]
camerabin: update zoom param spec if video source changes its max-zoom

If the video source happens to allow max-zoom to be greater than our maximum hard coded
value of 10 then the user cannot set anything greater than our maximum specified in the
param spec. We have to update our param spec to prevent glib from capping the value

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

9 years agovtdec: Register a hardware-only vtdec_hw on OSX and give it a higher rank
Sebastian Dröge [Sat, 7 Mar 2015 09:28:35 +0000 (10:28 +0100)]
vtdec: Register a hardware-only vtdec_hw on OSX and give it a higher rank

while having the default vtdec at secondary rank. This allows decodebin/playbin
to prefer the hardware based decoders, and if that fails to initialize because
hardware resources are busy to fall back to e.g. the libav based h264 decoder
instead of the software based vtdec (which is slower), and only fall back to
the software based vtdec if there is no higher ranked decoder available.

9 years agoglmixer: Don't share our downstream pool with upstream
Nicolas Dufresne [Sat, 7 Mar 2015 01:11:00 +0000 (20:11 -0500)]
glmixer: Don't share our downstream pool with upstream

Pool cannot have multiple owner. This can lead to spurious
pool was flushing error.

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

9 years agoglfilter: Don't chain downstream pool
Nicolas Dufresne [Thu, 5 Mar 2015 21:28:36 +0000 (16:28 -0500)]
glfilter: Don't chain downstream pool

Chaining a downstream pool would lead to two owner of the same
pool. In dynamic pipeline, if one owner is removed from the pipeline
the pool will be stopped, and the rest of the pipeline will fail
since the pool will now be flushing. Also fix proposed pool caching,
filter->pool was never set, never unrefed.

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

9 years agoglimagesink: Only cache pool, don't manage it
Nicolas Dufresne [Thu, 5 Mar 2015 20:49:50 +0000 (15:49 -0500)]
glimagesink: Only cache pool, don't manage it

GLImage does not use any kind of internal pool. There was some
remaining code and comment stating that it was managing the
pool, and it was in fact setting the active state when doing
to ready state.

* Only create the pool if requested and in propose_allocation
* Cache the pool to avoid reallocation on spurious reconfigure
* Don't try to deactivate the pool (we don't own it)

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

9 years agopngparse: stop spamming info messages
Xavier Claessens [Fri, 6 Mar 2015 17:07:47 +0000 (12:07 -0500)]
pngparse: stop spamming info messages

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

9 years agogldownload: Simplify caps feature setting code
Sebastian Dröge [Fri, 6 Mar 2015 17:54:24 +0000 (18:54 +0100)]
gldownload: Simplify caps feature setting code

9 years agogl: Remove format info in glcolorconvert's transform_caps function instead of on...
Sebastian Dröge [Fri, 6 Mar 2015 17:15:11 +0000 (18:15 +0100)]
gl: Remove format info in glcolorconvert's transform_caps function instead of on every caller

... and let glmixer actually transform the caps it is supposed to transform
instead of inventing new caps.

9 years agoRevert "videoaggregator: Create new caps from the video-info"
Sebastian Dröge [Fri, 6 Mar 2015 17:49:16 +0000 (18:49 +0100)]
Revert "videoaggregator: Create new caps from the video-info"

This reverts commit 78215be0dfbb4e8ed4f249e161a94c644328d28d.

because it broke glvideomixer with custom caps features.

9 years agoglupload: Simplify caps feature setting code
Sebastian Dröge [Fri, 6 Mar 2015 17:36:12 +0000 (18:36 +0100)]
glupload: Simplify caps feature setting code

9 years agortp: donl_present variable unused
Luis de Bethencourt [Fri, 6 Mar 2015 14:54:41 +0000 (14:54 +0000)]
rtp: donl_present variable unused

donl_present is not implemented, yet the value is set and checked a few times.
Cleaning this.

CID #1249687

9 years agompegtsmux: fall through switch statement
Luis de Bethencourt [Fri, 6 Mar 2015 14:27:44 +0000 (14:27 +0000)]
mpegtsmux: fall through switch statement

Adding a comment makes coverity happy and quells the issue.

CID #1139748

9 years agovideoaggregator: Create new caps from the video-info
Sebastian Dröge [Fri, 6 Mar 2015 13:36:26 +0000 (14:36 +0100)]
videoaggregator: Create new caps from the video-info

In case the original caps were missing some optional fields like
interlace-mode. We assume default values for those everywhere,
but they can still cause negotiation to fail if a downstream element
expects the field to be there and at a specific value.

9 years agoavfvideosrc: allow "capture-screen" mode to select which screen to capture via the...
Florian Zwoch [Wed, 25 Feb 2015 12:52:21 +0000 (13:52 +0100)]
avfvideosrc: allow "capture-screen" mode to select which screen to capture via the "device-index" option

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

9 years agogldisplay: Only use debugging if we have valid values
Edward Hervey [Thu, 5 Mar 2015 18:09:49 +0000 (19:09 +0100)]
gldisplay: Only use debugging if we have valid values

The debug category won't have been created/activated if it's not a
valid display

9 years agomotioncells: protect against not found id
Luis de Bethencourt [Thu, 5 Mar 2015 15:54:55 +0000 (15:54 +0000)]
motioncells: protect against not found id

If searchIdx() doesn't find the id it returns -1, which breaks
motioncelssvector.at (idx). Check for it and return if not found.

Changing a few other lines for style consistency.

9 years agoopencv: remove always-true check
Luis de Bethencourt [Thu, 5 Mar 2015 15:34:09 +0000 (15:34 +0000)]
opencv: remove always-true check

filter->cvImage has just been used/dereferenced, there would be an error
there if the pointer was NULL. No need to check since it will always be true.

9 years agodecklinkaudiosrc: Calculate the duration more accurately from the capture time and...
Sebastian Dröge [Wed, 4 Mar 2015 15:13:30 +0000 (16:13 +0100)]
decklinkaudiosrc: Calculate the duration more accurately from the capture time and numbers of samples

This should prevent any accumulating rounding errors with the duration.

9 years agodecklinkaudiosrc: Fix the timestamp and offset calculations even more
Sebastian Dröge [Wed, 4 Mar 2015 15:05:28 +0000 (16:05 +0100)]
decklinkaudiosrc: Fix the timestamp and offset calculations even more

9 years agodecklinkaudiosrc: Don't subtract the duration from the capture time
Sebastian Dröge [Wed, 4 Mar 2015 15:04:18 +0000 (16:04 +0100)]
decklinkaudiosrc: Don't subtract the duration from the capture time

We already have the real capture time, not the time when we received
the end of the packet.

9 years agoRevert "audiomixer: Latency is twice the output buffer duration, not only once"
Sebastian Dröge [Wed, 4 Mar 2015 12:16:03 +0000 (13:16 +0100)]
Revert "audiomixer: Latency is twice the output buffer duration, not only once"

This reverts commit d387cf67df91b59540f32ee17b4c02f747969add.

The analysis was wrong: The first 20ms of latency are introduced by the source
already and put into the latency query, making it only necessary to cover the
additional 20ms of audiomixer inside audiomixer.

9 years agoopusdec: fix latency query in FEC case
Vincent Penquerc'h [Wed, 4 Mar 2015 09:24:27 +0000 (09:24 +0000)]
opusdec: fix latency query in FEC case

The max latency parameter is "the maximum time an element
synchronizing to the clock is allowed to wait for receiving all
data for the current running time" (docs/design/part-latency.txt).

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

9 years agoh264parse: reset the parser information when caps changes
Thiago Santos [Tue, 3 Mar 2015 14:42:09 +0000 (11:42 -0300)]
h264parse: reset the parser information when caps changes

This prevents it from going into passthrough after receiving 2
byte-stream caps (different ones) as it would keep the have_pps and
have_sps set to true and would just go into passthrough without
updating its caps.

This patch makes it reset its stream information to restart properly
when new caps are received.

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

9 years agohlsdemux: set timestamp on discont buffers
Thiago Santos [Tue, 3 Mar 2015 20:47:51 +0000 (17:47 -0300)]
hlsdemux: set timestamp on discont buffers

Make sure discont buffers have its timestamp set to allow downstream
to resync if needed

9 years agocamerabin2: check negotiated caps avoid reseting of the pipe
Oleksij Rempel [Thu, 22 Mar 2012 07:47:57 +0000 (08:47 +0100)]
camerabin2: check negotiated caps avoid reseting of the pipe

To avoid useless renegotiation of the pipe we can check for
negotiated caps on src_filter and compare it with requested
filter. If the caps intersect, avoid restart.

Signed-off-by: Oleksij Rempel <bug-track@fisher-privat.net>
https://bugzilla.gnome.org/show_bug.cgi?id=672610

9 years agompegtsmux: Remove duplicate code
Ilya Averyanov [Sun, 1 Mar 2015 22:08:15 +0000 (01:08 +0300)]
mpegtsmux: Remove duplicate code

The muxer is already allocated in reset(), which is called soon afterwards.

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

9 years agodvbsuboverlay: Set query ALLOCATION need_pool to FALSE
Song Bing [Tue, 3 Mar 2015 02:12:11 +0000 (10:12 +0800)]
dvbsuboverlay: Set query ALLOCATION need_pool to FALSE

Set query ALLOCATION need_pool to FALSE as it only need query if can
support video overlay composition meta.

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

9 years agoapplemedia/avsamplesink: utilise a pull based approach of displaying video frames
Matthew Waters [Wed, 4 Mar 2015 03:38:36 +0000 (14:38 +1100)]
applemedia/avsamplesink: utilise a pull based approach of displaying video frames

Using requestMediaDataWhenReadyOnQueue the layer will execute a block
when it would like more frames. Using this we can provide the current
frame and avoid needlessly filling the layer's buffer queue causing
older frames to be displayed when under resource pressure.

9 years agogloverlay: Fix upside down and miss-aligned JPEG
Nicolas Dufresne [Tue, 3 Mar 2015 20:22:38 +0000 (15:22 -0500)]
gloverlay: Fix upside down and miss-aligned JPEG

LibJPEG uses macroblock of 8x8 sample. In this element we use RGB and
Y444, two 24bit formats that are stored in 32bit pixels. This mean we
have 32x32 bytes macroblocks. For this reason, we need to allocate
our buffer slightly larger. We also need to pass the line pointer in
the right order, otherwise the image endup upside-down.

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

9 years agoaudiomixer: Latency is twice the output buffer duration, not only once
Sebastian Dröge [Tue, 3 Mar 2015 19:03:55 +0000 (20:03 +0100)]
audiomixer: Latency is twice the output buffer duration, not only once

Let's assume a source that outputs outputs 20ms buffers, and audiomixer having
a 20ms output buffer duration. However timestamps don't align perfectly, the
source buffers are offsetted by 5ms.

For our ASCII art picture, each letter is 5ms, each pipe is the start of a
20ms buffer. So what happens is the following:

0   20  40  60
OOOOOOOOOOOOOOOO
|   |   |   |

  5   25  45  65
  IIIIIIIIIIIIIIII
  |   |   |   |

This means that the second output buffer (20 to 40ms) only gets its last 5ms
at time 45ms (the timestamp of the next buffer is the time when the buffer
arrives). But if we only have a latency of 20ms, we would wait until 40ms
to generate the output buffer and miss the last 5ms of the input buffer.

9 years agogltransformation: normalize translations
Xavier Claessens [Thu, 19 Feb 2015 02:21:01 +0000 (21:21 -0500)]
gltransformation: normalize translations

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

* Lubosz: use maxfloat for transformation range

9 years agogltransformation: Fix doc typo
Xavier Claessens [Thu, 19 Feb 2015 01:41:14 +0000 (20:41 -0500)]
gltransformation: Fix doc typo

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

9 years agoglfilter: Get rid of uploader if caps have changed
Nicolas Dufresne [Tue, 3 Mar 2015 18:45:46 +0000 (13:45 -0500)]
glfilter: Get rid of uploader if caps have changed

We need to update the uploader format if that caps have changed.

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

9 years agowaylandsink: g_mkstemp is safer than mkstep
Luis de Bethencourt [Tue, 3 Mar 2015 16:50:30 +0000 (16:50 +0000)]
waylandsink: g_mkstemp is safer than mkstep

9 years agoRevert "waylandsink: mkstemp requires setting permission mask"
Luis de Bethencourt [Tue, 3 Mar 2015 16:49:07 +0000 (16:49 +0000)]
Revert "waylandsink: mkstemp requires setting permission mask"

This reverts commit 1890e7355a5464fcfff58633851265b3fc7a3731.

Better to use g_mkstemp that takes care of the mask without affecting the
entire process.

9 years agogl: Fix context leaks
Edward Hervey [Tue, 3 Mar 2015 15:55:26 +0000 (16:55 +0100)]
gl: Fix context leaks

Introduced by a12ca13750a15300ab3c718ebde2984dc3d587b3

9 years agoasfmux: remove unnecessary conditional
Luis de Bethencourt [Tue, 3 Mar 2015 16:23:40 +0000 (16:23 +0000)]
asfmux: remove unnecessary conditional

The two branches of the if conditional are identical, which means in all cases
the same gst_asf_put_guid() will be executed. Do it directly.

CID #1226448

9 years agowaylandsink: mkstemp requires setting permission mask
Luis de Bethencourt [Tue, 3 Mar 2015 15:51:50 +0000 (15:51 +0000)]
waylandsink: mkstemp requires setting permission mask

Using mkstemp without setting the permission mask is potentially harmful.
POSIX specification of mkstemp() does not say anything about file modes, so we
need to make sure its file mode creation mask is set appropriately before
calling it.

9 years agodecklink: Reset the clock calibration when unsetting the master clock
Sebastian Dröge [Mon, 2 Mar 2015 15:45:45 +0000 (16:45 +0100)]
decklink: Reset the clock calibration when unsetting the master clock

Otherwise the old calibration will stick around for the next time we use it,
potentially giving us completely wrong times.

9 years agodecklink{audio,video}src: Add some more debug output
Sebastian Dröge [Mon, 2 Mar 2015 12:57:24 +0000 (13:57 +0100)]
decklink{audio,video}src: Add some more debug output

9 years agodecklink: Incorrect frame rate for interlaced modes
DanielD10 [Thu, 12 Feb 2015 12:43:30 +0000 (13:43 +0100)]
decklink: Incorrect frame rate for interlaced modes

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

9 years agogl/cocoa: register only one custom nsapp loop
Julien Isorce [Sun, 1 Mar 2015 19:57:23 +0000 (19:57 +0000)]
gl/cocoa: register only one custom nsapp loop

Otherwise the pipeline stalls when running
more than one glimagesink with gst-launch.

Also only register the custom nsapp loop
when setting up the nsapp from gstgl.

9 years agogl/cocoa: instead of class_init use g_once to setup nsapp
Julien Isorce [Sun, 1 Mar 2015 16:54:10 +0000 (16:54 +0000)]
gl/cocoa: instead of class_init use g_once to setup nsapp

9 years agogl/cocoa: check for deprecated constants prior to OSX 10.10
Julien Isorce [Thu, 26 Feb 2015 23:04:09 +0000 (23:04 +0000)]
gl/cocoa: check for deprecated constants prior to OSX 10.10

9 years agoglbufferpool: Fix offset for odd height
Nicolas Dufresne [Sun, 1 Mar 2015 14:43:32 +0000 (09:43 -0500)]
glbufferpool: Fix offset for odd height

We also need to recalculate the offset, since otherwise the frame
mapping will be forward two lines in the U and V planes (I420) due
to gst_video_info_align() round up the Y plane to a even number of
lines.

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