Johan Bjäreholt [Tue, 30 Oct 2018 09:05:03 +0000 (10:05 +0100)]
compositor: fix undeclared functions
Sebastian Dröge [Sat, 27 Oct 2018 15:44:27 +0000 (16:44 +0100)]
compositor: Implement different operators via per-pad property
This removes the crossfade-ratio property and replaces it with an
operator property. Currently this implements the following operators:
- SOURCE: Copy over the source and don't look at the destination
- OVER: Default blending of the source over the destination
- ADD: Like OVER but simply adding the alpha instead
See the example for how to implement crossfading with this.
https://bugzilla.gnome.org/show_bug.cgi?id=797169
Sebastian Dröge [Sat, 27 Oct 2018 11:37:07 +0000 (12:37 +0100)]
compositor: Remove extra header for the pad declaration
There's no reason for having this separate apart from making things less
discoverable.
Seungha Yang [Wed, 17 Oct 2018 12:09:22 +0000 (21:09 +0900)]
meson: Replace empty configuration_data() with copy keyword
Use 'copy' keyword to avoid meson warning message.
Note that 'copy' keyword in configure_file() is available
since meson 0.47.0
https://bugzilla.gnome.org/show_bug.cgi?id=797298
Matthew Waters [Thu, 4 Oct 2018 13:45:49 +0000 (23:45 +1000)]
glvideomixer: fix the default blend modes for unpremultipled alpha
Alpha in GStreamer is unpremultiplied
Matthew Waters [Thu, 27 Sep 2018 06:37:28 +0000 (16:37 +1000)]
glmixerbin: add gloverlaycompositor to each input stream
Flattens the overlay compositions into the stream before the mixer will
mix them.
https://bugzilla.gnome.org/show_bug.cgi?id=759867
Sebastian Dröge [Wed, 3 Oct 2018 13:00:23 +0000 (16:00 +0300)]
glstereomix: Fix build after deprecating misnamed GST_TYPE_GL_STEREO_DOWNMIX_MODE_TYPE
Sebastian Dröge [Mon, 24 Sep 2018 20:26:10 +0000 (23:26 +0300)]
glmixerbin: "latency" property on aggregator is uint64, not int64
Also update the property description and range with aggregator's values.
Matthew Waters [Wed, 19 Sep 2018 08:01:26 +0000 (18:01 +1000)]
glvideomixer: fix constant alpha enum value for constant alpha
Sebastian Dröge [Wed, 19 Sep 2018 07:28:56 +0000 (10:28 +0300)]
glvideomixer: Fix typo in property description
Sebastian Dröge [Thu, 16 Aug 2018 14:07:06 +0000 (17:07 +0300)]
compositor: Define crossfade-ratio to have range [0.0,1.0]
Previously negative values had the same effect as 0.0, which was
confusing.
https://bugzilla.gnome.org/show_bug.cgi?id=796845
Sebastian Dröge [Thu, 16 Aug 2018 07:02:42 +0000 (10:02 +0300)]
videoaggregator: Make sure to hold object lock while iterating sink pads
They might otherwise just change while we iterate.
Sebastian Dröge [Wed, 25 Jul 2018 21:20:02 +0000 (00:20 +0300)]
compositor: Don't leak all buffers while crossfading and not all pads are crossfading
Sebastian Dröge [Fri, 20 Jul 2018 13:25:02 +0000 (16:25 +0300)]
compositor: Use 255 as maximum alpha instead of 256
255 will easily become 0 in the blending function as they expect
the maximum value to be 255.
Can be reproduce with
gst-launch-1.0 videotestsrc pattern=ball ! c.sink_0 \
videotestsrc pattern=snow ! c.sink_1 \
compositor name=c \
sink_0::zorder=0 sink_1::zorder=1 sink_0::crossfade-ratio=0.5 \
background=black ! \
videoconvert ! xvimagesink
crossfade-ratio +/- 0.001 makes it work correctly and the same happens
at e.g. 0.25, 0.75, N*0.0625
https://bugzilla.gnome.org/show_bug.cgi?id=796846
Seungha Yang [Wed, 18 Jul 2018 11:05:26 +0000 (20:05 +0900)]
compositor: Update conversion info in property setter
... not in getter. Otherwise, video-converter will not be updated
with new width/height
https://bugzilla.gnome.org/show_bug.cgi?id=796828
Matthew Waters [Thu, 12 Jul 2018 02:48:39 +0000 (12:48 +1000)]
glvideomixer: fix default placement when different sized output
i.e. when expanding from 320x240 to 800x600, the resulting frame should
appear in the top left corner, not the middle.
https://bugzilla.gnome.org/show_bug.cgi?id=794401
Daniel Klamt [Wed, 25 Apr 2018 14:36:21 +0000 (16:36 +0200)]
glvideomixer: Moves the objects to zero on z axis
Matches the output from a similar glimagesink pipeline when
rotating from an upstream gltransformation passed through
the affine transformation meta with xpos/ypos being set.
https://bugzilla.gnome.org/show_bug.cgi?id=794401
Nicolas Dufresne [Tue, 10 Jul 2018 13:45:31 +0000 (09:45 -0400)]
glvideomixer: Fix coding style
Nicolas Dufresne [Tue, 10 Jul 2018 13:42:47 +0000 (09:42 -0400)]
glvideomixer: Add missing string.h include
Daniel Klamt [Wed, 25 Apr 2018 14:39:34 +0000 (16:39 +0200)]
Moved the pad offset and aspect ratio to a matrix so it will be added in view space and not in world space
https://bugzilla.gnome.org/show_bug.cgi?id=794401
Tim-Philipp Müller [Sat, 23 Jun 2018 22:17:26 +0000 (00:17 +0200)]
videoaggregator: Update for g_type_class_add_private() deprecation in recent GLib
Tim-Philipp Müller [Sat, 23 Jun 2018 22:17:26 +0000 (00:17 +0200)]
gl: Update for g_type_class_add_private() deprecation in recent GLib
Seungha Yang [Fri, 15 Jun 2018 13:48:42 +0000 (22:48 +0900)]
videoaggregator: Fix string leak
gst_video_colorimetry_to_string() returns allocated memory which
must be freed.
https://bugzilla.gnome.org/show_bug.cgi?id=796596
Tim-Philipp Müller [Mon, 11 Jun 2018 12:48:09 +0000 (13:48 +0100)]
videoaggregator: log an ERROR if we're going to return a flow error
Olivier Crête [Mon, 23 Apr 2018 17:30:38 +0000 (13:30 -0400)]
videoaggregator: Remove custom get_next_time implementation
GstAggregator now has the same thing in the simple implementation.
https://bugzilla.gnome.org/show_bug.cgi?id=795486
Sebastian Dröge [Mon, 7 May 2018 14:53:32 +0000 (17:53 +0300)]
videoaggregator: Set video-meta option on buffer pool configuration correctly
CID 1435451
Sebastian Dröge [Mon, 7 May 2018 07:17:16 +0000 (09:17 +0200)]
videoaggregator: First override set/get_property vfuncs, then install properties
Gives assertions otherwise.
Sebastian Dröge [Sun, 6 May 2018 14:49:43 +0000 (16:49 +0200)]
videoaggregator: Some more documentation fixes
Mathieu Duponchelle [Sun, 6 May 2018 14:44:47 +0000 (16:44 +0200)]
videoaggregator: expose converter-config on convert pads
This in order to allow users control over the conversion
process, for example the scaling method.
Sebastian Dröge [Sun, 6 May 2018 14:43:32 +0000 (16:43 +0200)]
videoaggregator: Fix up documentation some more
Sebastian Dröge [Sun, 6 May 2018 14:22:01 +0000 (16:22 +0200)]
videoaggregator: Clean up header and update docs a bit
Sebastian Dröge [Sun, 6 May 2018 14:05:28 +0000 (16:05 +0200)]
videoaggregator: Rename get_output_buffer() to create_output_buffer()
For consistency with GstAudioAggregator.
Sebastian Dröge [Sun, 6 May 2018 13:49:36 +0000 (15:49 +0200)]
videoaggregator: Validate pool configuration and create a new pool if it just does not work
Also pass the given allocator to the pool if one is set.
Sebastian Dröge [Sun, 6 May 2018 13:21:24 +0000 (15:21 +0200)]
videoaggregator: Switch to a GstVideoAggregatorConvertPad subclass
This moves all the conversion related code to a single place, allows
less code-duplication inside compositor and makes the glmixer code less
awkward. It's also the same pattern as used by GstAudioAggregator.
Sebastian Dröge [Sat, 5 May 2018 15:47:55 +0000 (17:47 +0200)]
glmixer: Include string.h for memset()
gstglmixer.c:143:5: error: implicit declaration of function ‘memset’ [-Werror=implicit-function-declaration]
memset (prepared_frame, 0, sizeof (GstVideoFrame));
^~~~~~
gstglmixer.c:143:5: error: incompatible implicit declaration of built-in function ‘memset’ [-Werror]
Sebastian Dröge [Sat, 5 May 2018 14:31:13 +0000 (16:31 +0200)]
videoaggregator: Remove sink_non_alpha_caps class field
This is only used for caching reasons and should never actually be in
the public API. If this is ever a bottleneck later, caching around a
class private struct could be implemented.
Sebastian Dröge [Sat, 5 May 2018 14:14:14 +0000 (16:14 +0200)]
videoaggregator: Move needs_alpha pad field to the private struct
And also trigger renegotiation if the value has changed.
https://bugzilla.gnome.org/show_bug.cgi?id=795836
Sebastian Dröge [Sat, 5 May 2018 13:49:17 +0000 (15:49 +0200)]
videoaggregator: Move aggregated_frame and the pad buffer into the private struct
The aggregated_frame is now called prepared_frame and passed to the
prepare_frame and cleanup_frame virtual methods directly. For the
currently queued buffer there is a method on the video aggregator pad
now.
Sebastian Dröge [Sat, 5 May 2018 10:16:35 +0000 (12:16 +0200)]
glmixer: Move frame/texture mapping/unmapping into prepare/clean_frame
Previously we assumed that the texture ID is going to be valid even
after unmapping the frame, as it was immediately unmapped before even
being used. Now we only unmap once we're done with the texture.
Sebastian Dröge [Fri, 4 May 2018 15:18:12 +0000 (17:18 +0200)]
videoaggregator: Move property storage to private pad struct
Sebastian Dröge [Fri, 4 May 2018 14:46:00 +0000 (16:46 +0200)]
videoaggregator: Rename ignore-eos pad property to repeat-after-eos
What it does is to repeat the last frame forever after EOS, it does not
literally ignore EOS.
Sebastian Dröge [Fri, 4 May 2018 14:13:16 +0000 (16:13 +0200)]
videoaggregator: Move GstChildProxy implementations into leaf classes
Not every subclass will want to expose the pads via the interface.
https://bugzilla.gnome.org/show_bug.cgi?id=739011
Sebastian Dröge [Fri, 4 May 2018 12:53:21 +0000 (14:53 +0200)]
videoaggregator: Get rid of separate header for the aggregator pad
Xavier Claessens [Tue, 24 Apr 2018 18:05:30 +0000 (14:05 -0400)]
Meson: Generate pc file for all plugins in bad
https://bugzilla.gnome.org/show_bug.cgi?id=794568
Tim-Philipp Müller [Tue, 13 Mar 2018 13:07:52 +0000 (13:07 +0000)]
video: GST_EXPORT -> GST_URI_VIDEO_BAD_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
Mathieu Duponchelle [Wed, 28 Feb 2018 23:34:40 +0000 (00:34 +0100)]
Port to latest GstAggregator segment API
The aggregator segment is now exposed on the src pad
https://bugzilla.gnome.org/show_bug.cgi?id=793946
Tim-Philipp Müller [Thu, 15 Feb 2018 18:50:51 +0000 (18:50 +0000)]
Dist compositor crossfade example and pythons script for meson build
And add to autotools build so it gets disted.
Edward Hervey [Wed, 14 Feb 2018 13:36:00 +0000 (14:36 +0100)]
Update ORC fallback disted code
Vincent Penquerc'h [Mon, 3 Oct 2016 12:11:07 +0000 (13:11 +0100)]
glvideomixer: fix vertex_buffer leak
We call the base class first as this will remove the pad from
the aggregator, thus stopping misc callbacks from being called,
one of which (process_textures) will recreate the vertex_buffer
if it is destroyed
https://bugzilla.gnome.org/show_bug.cgi?id=760873
Mathieu Duponchelle [Thu, 28 Dec 2017 11:15:21 +0000 (12:15 +0100)]
videoaggregatorpad: implement skip_buffer
Skip buffers from sources with a framerate higher than the output
framerate.
https://bugzilla.gnome.org/show_bug.cgi?id=781928
Tim-Philipp Müller [Tue, 23 Jan 2018 09:01:00 +0000 (09:01 +0000)]
Update for renamed aggregator pad API
https://bugzilla.gnome.org/show_bug.cgi?id=791204
Tim-Philipp Müller [Sat, 2 Dec 2017 16:01:25 +0000 (16:01 +0000)]
Remove GstAggregator from -bad, moved to core
https://bugzilla.gnome.org/show_bug.cgi?id=739010
Edward Hervey [Sat, 25 Nov 2017 11:48:40 +0000 (12:48 +0100)]
videoaggregator: Don't leak string
The result of gst_video_colorimetry_to_string () needs to be free'd
Mathieu Duponchelle [Mon, 6 Nov 2017 20:07:51 +0000 (21:07 +0100)]
aggregator: Remove klass->sinkpads_type
This posed problems for the python bindings (and possibly others).
Instead, subclasses now use add_pad_template_with_gtype.
https://bugzilla.gnome.org/show_bug.cgi?id=789986
Tim-Philipp Müller [Thu, 2 Nov 2017 12:46:26 +0000 (12:46 +0000)]
videoaggregator: use new gst_element_foreach_sink_pad()
Instead of gst_aggregator_iterate_sinkpads() which will
soon be removed.
https://bugzilla.gnome.org/show_bug.cgi?id=785679
Tim-Philipp Müller [Thu, 2 Nov 2017 12:56:57 +0000 (12:56 +0000)]
videoaggregator: add CAST macros
Tim-Philipp Müller [Thu, 2 Nov 2017 12:17:38 +0000 (12:17 +0000)]
gl: use new gst_element_foreach_sink_pad()
Instead of gst_aggregator_iterate_sinkpads() which will
soon be removed.
https://bugzilla.gnome.org/show_bug.cgi?id=785679
Tim-Philipp Müller [Thu, 2 Nov 2017 11:57:24 +0000 (11:57 +0000)]
videoaggregator: drop ABI compat in padding for new struct member
Don't really have to do that while it's in -bad and most users
are in-tree anyway.
Tim-Philipp Müller [Fri, 13 Oct 2017 10:46:09 +0000 (11:46 +0100)]
videoaggregator: use GstFlowReturn for flow returns
Ponnam Srinivas [Mon, 25 Sep 2017 11:50:58 +0000 (17:20 +0530)]
glmixer: Unmap video frame in error case
https://bugzilla.gnome.org/show_bug.cgi?id=788127
Haihua Hu [Wed, 20 Sep 2017 12:00:03 +0000 (20:00 +0800)]
glvidemixer: need reconfigure output gemotry after caps renegotiated
Matthew Waters [Thu, 21 Sep 2017 01:59:22 +0000 (11:59 +1000)]
Revert "glvideomixer: need update output geometry after src caps reconfigure"
This reverts commit
d6e538dc5651fb03c85d7c7614bcf6c689f2db2f.
Haihua Hu [Mon, 18 Sep 2017 07:42:00 +0000 (15:42 +0800)]
glvideomixer: need update output geometry after src caps reconfigure
Need update output geometry when sink caps changed and use
gst_structure_set to update caps if structure is fixed
https://bugzilla.gnome.org/show_bug.cgi?id=787820
Nicolas Dufresne [Tue, 5 Sep 2017 20:20:44 +0000 (16:20 -0400)]
Request minimum buffer even if need_pool is FALSE
When tee is used, it will not request a pool, but still it wants to
know how many buffers are required.
https://bugzilla.gnome.org/show_bug.cgi?id=730758
Julien Isorce [Fri, 7 Jul 2017 15:15:12 +0000 (16:15 +0100)]
gl: do not include GL headers in public gstgl headers
Except for gst/gl/gstglfuncs.h
It is up to the client app to include these headers.
It is coherent with the fact that gstreamer-gl.pc does not
require any egl.pc/gles.pc. I.e. it is the responsability
of the app to search these headers within its build setup.
For example gstreamer-vaapi includes explicitly EGL/egl.h
and search for it in its configure.ac.
For example with this patch, if an app includes the headers
gst/gl/egl/gstglcontext_egl.h
gst/gl/egl/gstgldisplay_egl.h
gst/gl/egl/gstglmemoryegl.h
it will *no longer* automatically include EGL/egl.h and GLES2/gl2.h.
Which is good because the app might want to use the gstgl api only
without the need to bother about gl headers.
Also added a test: cd tests/check && make libs/gstglheaders.check
https://bugzilla.gnome.org/show_bug.cgi?id=784779
Mathieu Duponchelle [Wed, 9 Aug 2017 23:48:18 +0000 (01:48 +0200)]
videoaggregator: use colorimetry from find_best_format.
This increases the chances that we won't need to do any conversion
for a given pad.
https://bugzilla.gnome.org/show_bug.cgi?id=786078
Mathieu Duponchelle [Wed, 9 Aug 2017 23:45:53 +0000 (01:45 +0200)]
videoaggregator: improve find_best_format heuristic.
The goal here is to minimize the work needed to bring all images
to a common format. A better criteria than the number of pads
with a given format is the number of pixels with a given format.
https://bugzilla.gnome.org/show_bug.cgi?id=786078
Mathieu Duponchelle [Wed, 9 Aug 2017 23:43:15 +0000 (01:43 +0200)]
compositor: improve conversion debugging
https://bugzilla.gnome.org/show_bug.cgi?id=786078
Sebastian Dröge [Fri, 4 Aug 2017 08:08:18 +0000 (11:08 +0300)]
videoaggregator: Don't mix up width and height
CID 1416129
Tim-Philipp Müller [Thu, 3 Aug 2017 19:21:17 +0000 (20:21 +0100)]
examples: fix compiler warning in compositor crossfade example
warning: control reaches end of non-void function
Tim-Philipp Müller [Thu, 3 Aug 2017 19:14:20 +0000 (20:14 +0100)]
compositor: update disted orc fallback files
Thibault Saunier [Wed, 12 Jul 2017 02:04:55 +0000 (22:04 -0400)]
tests: examples: Add a simple crossfade example
https://bugzilla.gnome.org/show_bug.cgi?id=784827
Thibault Saunier [Thu, 6 Jul 2017 18:26:21 +0000 (14:26 -0400)]
compositor: Add support for crossfade blending
Crossfading is a bit more complex than just having two pads with the
right keyframes as the blending is not exactly the same.
The difference is in the way we compute the alpha channel, in the case
of crossfading, we have to compute an additive operation between
the destination and the source (factored by the alpha property of both
the input pad alpha property and the crossfading ratio) basically so
that the crossfade result of 2 opaque frames is also fully opaque at any
time in the crossfading process, avoid bleeding through the layer
blending.
Some rationnal can be found in https://phabricator.freedesktop.org/T7773.
https://bugzilla.gnome.org/show_bug.cgi?id=784827
Tim-Philipp Müller [Tue, 18 Jul 2017 11:46:09 +0000 (12:46 +0100)]
video: mark symbols explicitly for export with GST_EXPORT
Mathieu Duponchelle [Mon, 10 Apr 2017 23:18:51 +0000 (01:18 +0200)]
videoaggregator: fix gaps at end of streams.
When the pad has received EOS, its buffer may still be mixed
any number of times, when the pad's framerate is inferior
to the output framerate.
This was introduced by my patch in
https://bugzilla.gnome.org/show_bug.cgi?id=782962, this patch
also correctly addresses the initial issue.
Olivier Crête [Sun, 21 May 2017 16:31:59 +0000 (18:31 +0200)]
glbasemixer: Remove unused negotiated member
This is now all handled in GstAggregator, so this code is not
called anymore.
Olivier Crête [Sun, 21 May 2017 13:44:02 +0000 (15:44 +0200)]
videoaggregator: Declare that it supports the video meta on input
https://bugzilla.gnome.org/show_bug.cgi?id=782918
Olivier Crête [Sun, 21 May 2017 13:30:10 +0000 (15:30 +0200)]
gl*mixer: Use propose_allocation from the GstAggregator base class
https://bugzilla.gnome.org/show_bug.cgi?id=782918
Olivier Crête [Sat, 20 May 2017 16:10:29 +0000 (18:10 +0200)]
videoaggregator: Create normal video pool as a fallback
https://bugzilla.gnome.org/show_bug.cgi?id=746529
Olivier Crête [Sat, 20 May 2017 15:35:43 +0000 (17:35 +0200)]
glbasemixer: Remove own decide_allocation, use GstAggregator's
https://bugzilla.gnome.org/show_bug.cgi?id=746529
Olivier Crête [Sat, 20 May 2017 15:30:06 +0000 (17:30 +0200)]
glbasemixer: Use aggregator for allocation handling
https://bugzilla.gnome.org/show_bug.cgi?id=746529
Olivier Crête [Sat, 20 May 2017 15:25:16 +0000 (17:25 +0200)]
videoaggregator: Get the buffer from the pool if available
https://bugzilla.gnome.org/show_bug.cgi?id=746529
Olivier Crête [Sun, 21 May 2017 10:41:53 +0000 (12:41 +0200)]
videoaggregator: Return to parent on reconfigure
The caps negotiation is now in the parent, so need to return there
if a reconfiguration is needed, otherwise it will loops forever.
Matthew Waters [Sat, 20 May 2017 12:24:57 +0000 (14:24 +0200)]
aggregator: add simple support for caps handling
Modelled off the videoaggregator caps handling as that seems the most
mature aggregtor-using implementation that has caps handling there is.
https://bugzilla.gnome.org/show_bug.cgi?id=776931
George Kiagiadakis [Tue, 4 Apr 2017 08:25:43 +0000 (11:25 +0300)]
videoaggregator: delay using new caps from a sink pad until the next buffer in the queue is taken
When caps changes while streaming, the new caps was getting processed
immediately in videoaggregator, but the next buffer in the queue that
corresponds to this new caps was not necessarily being used immediately,
which resulted sometimes in using an old buffer with new caps. Of course
there used to be a separate buffer_vinfo for mapping the buffer with its
own caps, but in compositor the GstVideoConverter was still using wrong
info and resulted in invalid reads and corrupt output.
This approach here is more safe. We delay using the new caps
until we actually select the next buffer in the queue for use.
This way we also eliminate the need for buffer_vinfo, since the
pad->info is always in sync with the format of the selected buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=780682
Olivier Crête [Wed, 6 Jul 2016 21:28:11 +0000 (17:28 -0400)]
tests: Test caps using query
Sending an event can accepted event if the caps were rejected
because the event could be queued and processed later.
Also send a drain query in the caps test to make sure that the
event has been processed.
https://bugzilla.gnome.org/show_bug.cgi?id=781673
Nicolas Dufresne [Tue, 16 May 2017 18:05:52 +0000 (14:05 -0400)]
Remove plugin specific static build option
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
Tim-Philipp Müller [Sun, 7 May 2017 10:47:40 +0000 (11:47 +0100)]
glvideomixer: fix whole example launch line actually
Tim-Philipp Müller [Sun, 7 May 2017 10:41:06 +0000 (11:41 +0100)]
glvideomixer: remove extraneous \ from example launch line in docs
Thibault Saunier [Wed, 8 Mar 2017 18:01:13 +0000 (15:01 -0300)]
docs: Port all docstring to gtk-doc markdown
Mathieu Duponchelle [Fri, 7 Apr 2017 16:49:52 +0000 (18:49 +0200)]
videoaggregator: Do not mix the same buffer twice when EOS.
When entering this code path, we know that:
We received EOS on this pad.
We consumed all its buffers.
In any case, we want to replace vaggpad->buffer with NULL,
otherwise we will end up mixing the same buffer twice.
https://bugzilla.gnome.org/show_bug.cgi?id=781037
George Kiagiadakis [Fri, 3 Mar 2017 14:20:15 +0000 (16:20 +0200)]
videoaggregator: redo src caps negotiation if a sink pad's caps have changed in the meantime
https://bugzilla.gnome.org/show_bug.cgi?id=755782
Sebastian Dröge [Tue, 28 Feb 2017 11:06:41 +0000 (13:06 +0200)]
glvideomixer/compositor: Correctly error out if calculating DAR fails
CID 1320700
Sebastian Dröge [Tue, 28 Feb 2017 08:53:04 +0000 (10:53 +0200)]
gl: Rename gst_gl_get_affine_transformation_meta_as_ndc_ext() to prevent symbol conflict
The same symbol also exists in libgstgl, although marked as private and
internal. This has no effect when doing static linking and there's a
symbol conflict.
Matthew Waters [Wed, 18 Jan 2017 04:03:48 +0000 (15:03 +1100)]
glmixer: ensure caps are writable after intersection
gst_caps_intersect () may return an increased reference of one of the
input caps.
Fixes critical in the simple-launch-lines test:
Unexpected critical/warning: gst_caps_set_features: assertion 'IS_WRITABLE (caps)' failed
Matthew Waters [Thu, 12 Jan 2017 10:35:25 +0000 (21:35 +1100)]
gl/utils: also take care of the local GL context in query functions
Simplifies a deduplicates a lot of code in elements retrieving/setting
the local OpenGL context.
Matthew Waters [Wed, 11 Jan 2017 14:57:29 +0000 (01:57 +1100)]
glutils: remove trivial helper function
gst_gl_caps_replace_all_caps_features() is only used in two places and can
be trivially reproduced.
Matthew Waters [Tue, 10 Jan 2017 01:51:51 +0000 (12:51 +1100)]
gl: remove custom control binding proxy
Use the existing GstProxyControlBinding instead.
Sebastian Dröge [Wed, 14 Dec 2016 13:53:41 +0000 (15:53 +0200)]
glvideomixer: Reject multiview video
glvideomixer does not support it currently and it needs special support
for handling this correctly, and is rather non-trivial to implement for
all formats.
Sebastian Dröge [Wed, 14 Dec 2016 13:36:14 +0000 (15:36 +0200)]
compositor: Reject multiview video
Compositor does not support it currently and it needs special support
for handling this correctly, and is rather non-trivial to implement for
all formats.