Commit graph

18972 commits

Author SHA1 Message Date
Sebastian Dröge
d387cf67df 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.
2015-03-03 20:06:48 +01:00
Xavier Claessens
128c2a141a gltransformation: normalize translations
https://bugzilla.gnome.org/show_bug.cgi?id=744763

* Lubosz: use maxfloat for transformation range
2015-03-03 14:05:21 -05:00
Xavier Claessens
80f97eaee7 gltransformation: Fix doc typo
https://bugzilla.gnome.org/show_bug.cgi?id=744763
2015-03-03 14:05:21 -05:00
Nicolas Dufresne
34402920d2 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
2015-03-03 14:05:21 -05:00
Luis de Bethencourt
dc79b8d761 waylandsink: g_mkstemp is safer than mkstep 2015-03-03 16:53:32 +00:00
Luis de Bethencourt
bed7a679b5 Revert "waylandsink: mkstemp requires setting permission mask"
This reverts commit 1890e7355a.

Better to use g_mkstemp that takes care of the mask without affecting the
entire process.
2015-03-03 16:51:49 +00:00
Edward Hervey
4220fe41be gl: Fix context leaks
Introduced by a12ca13750
2015-03-03 17:36:06 +01:00
Luis de Bethencourt
e3418a963a 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
2015-03-03 16:23:43 +00:00
Luis de Bethencourt
1890e7355a 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.
2015-03-03 15:51:55 +00:00
Sebastian Dröge
4521524de3 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.
2015-03-02 16:45:45 +01:00
Sebastian Dröge
8e362aab14 decklink{audio,video}src: Add some more debug output 2015-03-02 13:57:24 +01:00
DanielD10
034ed48023 decklink: Incorrect frame rate for interlaced modes
https://bugzilla.gnome.org/show_bug.cgi?id=744386
2015-03-02 11:59:31 +01:00
Julien Isorce
74c294892d 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.
2015-03-02 07:49:26 +00:00
Julien Isorce
4801db552d gl/cocoa: instead of class_init use g_once to setup nsapp 2015-03-02 07:44:52 +00:00
Julien Isorce
8a0a71ff03 gl/cocoa: check for deprecated constants prior to OSX 10.10 2015-03-02 07:44:25 +00:00
Nicolas Dufresne
283aca3b51 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
2015-03-01 09:43:32 -05:00
Nicolas Dufresne
56d4ff8773 gl-test: Port unit tests to new API 2015-03-01 00:08:42 -05:00
Nicolas Dufresne
04377cfc5e glmemory: Support offset when downloading
Make sure we support offset and video alignment when downloading too.
This is currently not used (plane_start is always 0), but it makes
the code correct if we want to use that later.
2015-02-28 15:01:59 -05:00
Nicolas Dufresne
8c0fcef818 glmemory: Provide correct size on upload
Provide the right size to GL when uploading. Using maxsize is wrong
since we offset the data point with the memory offset and video
alignement offset.

https://bugzilla.gnome.org/show_bug.cgi?id=744246
2015-02-28 14:32:40 -05:00
Nicolas Dufresne
e9bec9ec0e glmemory: Provide correct size on download
Provide the right size to GL when downloading. This fixes downloading
from GLMemory that where created for libav.

https://bugzilla.gnome.org/show_bug.cgi?id=744246
2015-02-28 14:32:40 -05:00
Nicolas Dufresne
4db0ef5789 glmemory: Use fallback for partial copy
When the memory is partial copy, the texture size and videoinfo no
longer make sense. As we cannot guess what the application wants, we
safely copy into a sysmem memory.

https://bugzilla.gnome.org/show_bug.cgi?id=744246
2015-02-28 14:32:40 -05:00
Nicolas Dufresne
b8f168cd65 glmemory: Add GstAllocationParams and alignment support
This implements support for GstAllocationParams and memory alignments.
The parameters where simply ignored which could lead to crash on
certain platform when used with libav and no luck.

https://bugzilla.gnome.org/show_bug.cgi?id=744246
2015-02-28 14:32:39 -05:00
Matthew Waters
03b5288f64 glupload: perform egl upload on the gl thread
Fixes EGLImage usage on raspberry pi

https://bugzilla.gnome.org/show_bug.cgi?id=743914
2015-02-28 18:29:52 +11:00
Sebastian Dröge
72b440cc89 decklinkvideosrc: Fix scaling with rate of internal/external clock 2015-02-27 11:08:14 +02:00
Arun Raghavan
2e5d6c3a3e aggregator: Use standard upstream latency querying logic
The same functionality is duplicated in the default latency querying
now.
2015-02-27 01:05:51 +05:30
Arun Raghavan
5f8f18df9b liveadder: Use default upstream latency querying logic
We can rely on the standard upstream latency querying logic and then add
our own latency.
2015-02-27 01:05:51 +05:30
Víctor Manuel Jáquez Leal
75e875b022 glupload: Set freed method implementation to NULL
When trying to render buffers with meta:GLTextureUpload the glimagesink crashes
with a segmentation fault.

This patch workarounds this crash setting to NULL the method implementation
after free.

https://bugzilla.gnome.org/show_bug.cgi?id=745206
2015-02-26 14:39:32 +02:00
Roman Nowicki
29098129be d3dvideosink: release existing D3D swap chain on init
https://bugzilla.gnome.org/show_bug.cgi?id=745159
2015-02-25 16:19:57 +02:00
Nicolas Dufresne
c20c6cfb92 opengl: Clean Makefile.am
+ Split headers from source
+ Remove uneeded AM_CFLAGS, AM_LDFLAGS
+ Always set OBJCFLAGS

Due to the presence of a .m and regardless of the conditional values,
automake will promote the link command to OBJC using OBJCFLAGS. Only
the basic flags (like warnings and optimization) are going to make a
difference though.

This cleanup builds up the makefile with less specific files first
toward more specific file. FLAGS are built with the basic that unused
flags will have empty variable.
2015-02-24 19:01:45 -05:00
Xavier Claessens
e25f4f1a60 glimagesink: cosmetic cleanup
https://bugzilla.gnome.org/show_bug.cgi?id=745105
2015-02-24 15:22:34 -05:00
Tim-Philipp Müller
004e910006 opengl: don't add --tag=CC twice to LIBTOOLFLAGS 2015-02-24 19:52:59 +00:00
Nicolas Dufresne
0feaeb38f9 opengl: Add --tag=CC to LIBTOOLCLFAGS
This is required for static build.
2015-02-24 14:35:37 -05:00
Luis de Bethencourt
b383ae0fbd jpegparse: interlaced doesn't mean progressive scan
Removing interlaced variable since it is meant to mean progressive scan
and that isn't used.
2015-02-24 18:50:28 +00:00
Luis de Bethencourt
e45db8ca1e Revert "tests: check jpegparse for progressive marker"
This reverts commit 1c77d12ce8.

"interlaced" in the caps don't mean the same thing as the SOF2 marker in the
JPEG format. This test passes because of broken behaviour.
2015-02-24 18:38:31 +00:00
Luis de Bethencourt
1c77d12ce8 tests: check jpegparse for progressive marker 2015-02-24 17:42:15 +00:00
Edward Hervey
a12ca13750 glwindow: Deactivate window before changing handle
When setting a new window handle, we need to ensure all implementations
will detect the change.

For that we deactivate the context before setting the window handle, then
reactivate the context

https://bugzilla.gnome.org/show_bug.cgi?id=745090
2015-02-24 17:42:13 +01:00
Edward Hervey
7075b25288 gl/egl: Detect window handle changes
When (re)activating the context, the backing window handle might have changed.
If that happened, destroy the previous surface and create a new one

https://bugzilla.gnome.org/show_bug.cgi?id=745090
2015-02-24 17:42:13 +01:00
Luis de Bethencourt
0b1d11b2b6 gl: remove docbook related warnings 2015-02-24 14:30:44 +00:00
Luis de Bethencourt
65e5f68437 modplug: remove unused variable 2015-02-24 14:01:18 +00:00
Luis de Bethencourt
9078702b52 modplug: not using deprecated API anymore 2015-02-24 14:01:18 +00:00
Luis de Bethencourt
4d6b9c450d modplug: update example pipeline command 2015-02-24 14:01:18 +00:00
Arun Raghavan
70ed4fd438 mpegts: Fix a compiler warning
Causes the following warning on clang:

gst-dvb-section.c:567:36: error: format specifies type 'unsigned long' but the argument has type 'int' [-Werror,-Wformat]
          descriptors_loop_length, end - 4 - data);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
2015-02-24 19:06:30 +05:30
Matthew Waters
c873c57430 vtdec: only attempt use of the texture cache with GLMemory caps features
Otherwise we send rectangle textures to glimagesink
2015-02-25 00:03:34 +11:00
Matthew Waters
e3ec517838 caopengllayersink: render black when we don't have a texture to display
Like when the winsys asks us to redraw before the pipeline has started
2015-02-25 00:03:28 +11:00
Matthew Waters
08b1d27e14 glmemory: allow sharing between buffers
There was no real reason why the flag was set.  We should be able
to handle it.  Fixes last-sample handling on gl sinks
2015-02-25 00:00:48 +11:00
Matthew Waters
21e95ef9fd glsyncmeta: add compat definition for gles2 2015-02-24 20:35:32 +11:00
Sebastian Dröge
e36c27cd46 d3dvideosink: Don't initialize the render window swap chain while the device is lost and we're waiting for reset
https://bugzilla.gnome.org/show_bug.cgi?id=744615
2015-02-24 11:19:48 +02:00
Sebastian Dröge
f53bc227a8 d3dvideosink: Deactivate the fallback buffer pool when replacing it during caps changes
https://bugzilla.gnome.org/show_bug.cgi?id=744615
2015-02-24 11:19:48 +02:00
Matthew Waters
021bfa99a1 new caopengllayersink element
renders gstreamer gl scene/video frames to a caopengllayer retreivable
from the "layer" property.
2015-02-24 19:12:10 +11:00
Matthew Waters
e505f6257c applemedia: new AVSampleBufferLayerSink
Renders buffers using the CALayer subclass AVSampleBufferDisplayLayer
which can be placed inside a Core Animation render tree.
2015-02-24 19:12:10 +11:00