Commit graph

17872 commits

Author SHA1 Message Date
Tim-Philipp Müller 5299d683ee glfilterapp: fix unused variable compiler warning
When GST_GL_HAVE_OPENGL is 0 or unset.
2014-11-28 16:04:54 +00:00
Sebastian Dröge c180012d02 decklinksrc: For the source, unsetting the callback already deletes it 2014-11-28 15:06:42 +01:00
Sebastian Dröge 820894a871 decklinksink: Wait for the pipeline clock instead of the decklink clock
Otherwise we're going to starve other elements if the decklink clock
is slower than the pipeline clock, or starts much later.

Of course this will still cause problems if the decklink clock and ours are
completely out of sync, or running at a very different rate. But this at least
works better now.
2014-11-28 14:58:41 +01:00
Sebastian Dröge d191fb4476 decklinksink: Schedule video frames according to their timestamps, not according to a frame counter 2014-11-28 14:58:41 +01:00
Sebastian Dröge b4695f60e5 decklinksink: Add some FIXME comments about synchronization 2014-11-28 14:58:41 +01:00
Sebastian Dröge 50c4ea54f6 decklinksrc: Sample the pipeline clock for the timestamps instead of coming up with our own
If we just count the frames and calculate timestamps from that, all frames
will arrive late in the sink as we have a live source here. Instead take
the pipeline clock at capture time as reference.
2014-11-28 14:56:19 +01:00
Sebastian Dröge ee8766b342 decklinksrc: Handle callback/delegate object the same way as in the sink
Potentially fixes crashes.
2014-11-28 14:51:53 +01:00
Sebastian Dröge 2a0123d79a decklinksink: Don't crash when going to READY another time
We have to handle the callback object a bit different:
a) it needs a virtual destructor
b) we need to set the callback to NULL when we're done with the output
c) create a new one every time

https://bugzilla.gnome.org/show_bug.cgi?id=740616
2014-11-28 14:51:52 +01:00
Sebastian Dröge 06013a0a6c compositor: Failure to map a video frame is not just a warning
Also add some warning debug output if mapping a output buffer fails
2014-11-28 10:23:55 +01:00
Sebastian Dröge 8a8444ebe7 videoaggregator: Failure to map a video frame is not just a warning 2014-11-28 10:22:44 +01:00
Matthew Waters 26fc4e2bd5 glfilterapp is now available on gles2 as well so build it 2014-11-28 14:08:40 +11:00
Matthew Waters e653ae9fc2 gl: fixup compat definition for GLuint64 for OS X 2014-11-28 13:04:21 +11:00
Matthew Waters b0faa2dd77 gl: add compat definition for GLuint64 for android
../../../../gst-libs/gst/gl/glprototypes/sync.h:41:23: error: unknown type name 'GLuint64'
                       GLuint64 timeout))
2014-11-28 11:57:25 +11:00
Danny Song d6489ee96c basecamerasrc: fix typo in docs
https://bugzilla.gnome.org/show_bug.cgi?id=740815
2014-11-28 00:13:22 +00:00
Matthew Waters 3e92a8ef53 glsync: fix build with desktop gl 2014-11-28 11:11:43 +11:00
Matthew Waters 820162f84c gl: fix typo in #if
GST_GL_API_HAVE_OPENGL doesn't exist
2014-11-28 11:04:22 +11:00
Matthew Waters 57898fec2a gl: fix various build errors without desktop gl 2014-11-28 10:59:46 +11:00
Matthew Waters f67190d3ca gldisplay: fix build error
gstgldisplay.c:234:541: error: 'return' with no value, in function returning non-void [-Werror]
   g_return_if_fail (GST_IS_GL_DISPLAY (display));
2014-11-28 10:03:18 +11:00
Matthew Waters 3c1e77eb31 gldisplay: implement runtime GL api filtering
Needed so that the pipeline/application can limit the choice of GL api
to what it supports
2014-11-28 09:14:26 +11:00
Matthew Waters 6bd1150ca8 gl: remove the use of glu 2014-11-28 09:14:26 +11:00
Matthew Waters f2af65ee2d gl: add a sync meta for synchronizing across GL contexts
A context can create a GLsync object that can be waited on in order
to ensure that GL resources created in one context are able to be
used in another shared context without any chance of reading invalid
data.

This meta would be placed on buffers that are known to cross from
one context to another.  The receiving element would then wait
on the sync object to ensure that the data to be used is complete.
2014-11-28 09:14:25 +11:00
Matthew Waters 480d3f97eb glprototypes: add sync function definitions 2014-11-28 09:14:25 +11:00
Matthew Waters 18ae2d35e9 glfilterapp: port to gles2 and gl3 2014-11-28 09:14:25 +11:00
Matthew Waters 1331cbc54e gloverlay: support gl3 2014-11-28 09:14:25 +11:00
Matthew Waters 45ac7be402 glvideomixer: add support for gl3 2014-11-28 09:14:25 +11:00
Matthew Waters d661fb959e glfiltercube: add a gl3 code path 2014-11-28 09:14:25 +11:00
Matthew Waters 67762e8d58 glfiltershader: support gl3 2014-11-28 09:14:25 +11:00
Matthew Waters 3772c83f94 gltransformation: support gl3 2014-11-28 09:14:25 +11:00
Matthew Waters dd80a40604 gleffects: support gl3 whereever gles2 is supported 2014-11-28 09:14:25 +11:00
Matthew Waters f2d1f7dd0f glcolorscale: support gl3 2014-11-28 09:14:25 +11:00
Matthew Waters 6d39e04992 glfilter: add a gl3 code path using vao's and vbo's 2014-11-28 09:14:25 +11:00
Matthew Waters 5ff5f8c1ee glframebuffer: add support for gl3 2014-11-28 09:14:25 +11:00
Matthew Waters a32f29f2ce glcolorconvert: add support for gl3 2014-11-28 09:14:25 +11:00
Matthew Waters f0d2346c52 glimagesink: use vbo's and vao's for gl3 2014-11-28 09:14:25 +11:00
Matthew Waters fca0bc97a4 glshader add support for gl3 2014-11-28 09:14:25 +11:00
Matthew Waters 2c24b97cf0 glx: ask for a GL3 core context 2014-11-28 09:14:25 +11:00
Sebastian Dröge 1200f2f94b videoaggregator: Minor cleanup 2014-11-27 21:23:36 +01:00
Sebastian Dröge 2a5aed6966 compositor: Implement rescaling of the input via pad properties
compositor has now the same interface as glvideomixer.
2014-11-27 21:23:04 +01:00
Sebastian Dröge fbf7595ca8 videoaggregator: Copy over more fields from the relevant video-info
gst_video_info_set_format() will reset the complete video-info, but
we want to keep values like the PAR, colorimetry and chroma site.
Otherwise we risk setting different values on the srcpad caps than
what is actually inside the buffers.
2014-11-27 20:34:25 +01:00
Sebastian Dröge b301cb1fc9 videoaggregator: Directly use the converters video-info instead of recalculating it 2014-11-27 20:25:29 +01:00
Sebastian Dröge 11740d78b1 videoaggregator: Do source pad negotiation only from the aggregated function
Otherwise we might negotiate from the sinkpad streaming threads at
the same time as on the srcpad streaming thread, and then all kinds
of crazy bugs happen that don't make any sense at all.
2014-11-27 19:54:10 +01:00
Thibault Saunier a61d2e4e07 videoconvert: Hide all conversion related fields
And do not delay the setting of the conversion_info

https://bugzilla.gnome.org/show_bug.cgi?id=740768
2014-11-27 19:10:58 +01:00
Thibault Saunier d2cea992c0 audiomixer: Do not try to resize a buffer to a negative size on EOS 2014-11-27 19:10:58 +01:00
Thibault Saunier 9d8055186d videoaggregator: Expose vmethods to set converters and prepare/clean frames
This gives more flexibility to the subclasses and permits to remove the
GstVideoAggregatorClass->disable_frame_conversion ugly API.

WARNING: This breaks the API as it removes the disable_frame_conversion
field

API:
  + GstVideoAggregatorClass->find_best_format
  + GstVideoAggregatorPadClass->set_format
  + GstVideoAggregatorPadClass->prepare_frame
  + GstVideoAggregatorPadClass->clean_frame

  - GstVideoAggregatorClass->disable_frame_conversion

https://bugzilla.gnome.org/show_bug.cgi?id=740768
2014-11-27 19:10:58 +01:00
Thibault Saunier 31679e56bb watchdog: Handle FLUSHING seek events even in PAUSED state
https://bugzilla.gnome.org/show_bug.cgi?id=740757
2014-11-27 19:10:58 +01:00
Thibault Saunier eb24d9d607 watchdog: Properly handle PAUSED state
In PAUSED state we should just preroll, so get one buffer
and stop monitoring.

https://bugzilla.gnome.org/show_bug.cgi?id=740757
2014-11-27 19:10:58 +01:00
Thibault Saunier c7b7f98df2 videoaggregator: Let a full renegotiation happen after removing the last pad
With the current code, we will end up setting the preferred downstream
format as the srcpad format, and it might not be accepted by the next
sinkpad to be added. We should instead let the next sinkpad reconfigure
everything.
2014-11-27 19:10:58 +01:00
Alessandro Decina d25813c9bc vtenc: add quality property 2014-11-27 18:41:21 +01:00
Alessandro Decina 6a4270d5cc vtenc: set profile and level in caps 2014-11-27 18:41:21 +01:00
Sebastian Dröge 082c12b8e2 glcolorconvert: Unref buffer with the correct function 2014-11-27 18:09:58 +01:00