Luis de Bethencourt
43a656b296
gltestsrc: don't dereference null pointer
...
funcs can be NULL, it is one of the two conditions of the OR statement
above, so confirm it isn't before dereferencing with funcs->free.
CID 1358388
2016-04-12 11:17:15 +01:00
Matthew Waters
417bae7f23
glbasemixer: chain up to the parent implementation
2016-04-12 09:39:32 +10:00
Matthew Waters
aa2b23fe39
videoaggregator: repect the result of find_best_format in the default update_caps
...
We weren't using the result of find_best_format at all.
Also, move the find_best_format usage to the default update_caps() to make
sure that it is also overridable.
https://bugzilla.gnome.org/show_bug.cgi?id=764363
2016-04-07 20:30:25 +10:00
Matthew Waters
dedb94323c
glvideomixer: add support for the affine transformation meta
2016-04-05 20:50:24 +10:00
Matthew Waters
0343d58c81
glimagesink: support the affine transformation meta for any texture target
2016-04-05 20:50:14 +10:00
Matthew Waters
a8b860e45d
glmixer: set the current texture to 0 before mapping
...
If we fail mapping, we don't want to use undefined video data in the subclass.
2016-04-05 16:24:53 +10:00
Matthew Waters
8cde41e68c
glmixerbin: proxy the start-time-* properties from aggregator
2016-04-04 20:54:23 +10:00
Matthew Waters
8b310665c5
gl/build: add missing '\' at the end of the line in MakeFile.am
...
Otherwise the following elements aren't included in the correct variable.
Fixes error in 'make distcheck' failing to find gstgltestsrc.h
2016-04-01 00:27:04 +11:00
Matthew Waters
42817bd6f2
gldifferencematte: port to gl3/gles2
2016-03-31 20:53:18 +11:00
Matthew Waters
a2d82e329a
gltestsrc: port to gles2/gl3
...
This makes gltestsrc work everywhere \o/
- workaround RPi returning invalid values for positive coords in the
checker shader
- reduce the number of iterations in the mandelbrot shader for gles2
https://bugzilla.gnome.org/show_bug.cgi?id=751540
2016-03-31 20:53:18 +11:00
Matthew Waters
00828b8c4c
gltestsrc: port smpte pattern to shaders
...
Loosely based on patch by
Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
https://bugzilla.gnome.org/show_bug.cgi?id=751540
2016-03-31 20:53:18 +11:00
Matthew Waters
d412d617c2
gltestsrc: implement the circular method
...
https://bugzilla.gnome.org/show_bug.cgi?id=759801
2016-03-31 20:53:18 +11:00
Matthew Waters
6d368c0d0e
gltestsrc: add a generic src framework
...
Any unsupported pattern (circular) results in an error
2016-03-31 20:53:18 +11:00
Matthew Waters
624ca1aaf0
glsterosplit: remove internal glupload/glcolorconvert
...
They are provided separately as elements and no other element contains the
internal references to glupload/glcolorconvert.
2016-03-31 20:53:18 +11:00
Vineeth TM
8cdfb13658
bad: use new gst_element_class_add_static_pad_template()
...
https://bugzilla.gnome.org/show_bug.cgi?id=763081
2016-03-24 14:56:51 +02:00
Matthew Waters
96754a6d52
glstereo{mix,split}: allow running on GLES 2/3
...
It's mostly supported for GLES 2.x, fully supported on GLES 3.x
2016-03-17 02:28:32 +11:00
Matthew Waters
4e7797546a
gleffects; give each effect a unique long name and description
...
Gives applications that scrape the factory details more detailed and unique
details on the exact element.
https://bugzilla.gnome.org/show_bug.cgi?id=760566
2016-03-11 01:40:39 +11:00
Matthew Waters
8ceeca93b2
glfilterapp: update for the use of shaders
...
Fixes black output when placed in pipelines (using the default drawing).
https://bugzilla.gnome.org/show_bug.cgi?id=763365
2016-03-10 22:53:01 +11:00
Vineeth TM
1f32d6aff7
glimagesink: Fix window memory leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=763356
2016-03-09 08:57:16 +02:00
Matthew Waters
a68c8978a6
glvideomixer: signal continuation in reset
...
We want to iterate over all the pads, not just the first one. Fix by returning
TRUE in the GstAggregatorPadForeachFunc.
Removes a GST_IS_GL_CONTEXT() assertion on shutdown with >2 inputs
using gst-launch.
2016-03-08 02:06:46 +11:00
Wang Xin-yu (王昕宇)
96ac4af7bf
glmixer: iterator didn't advance in continue statement
...
Leading to a deadlock.
https://bugzilla.gnome.org/show_bug.cgi?id=760873
2016-02-24 18:27:44 +11:00
Matthew Waters
98752fde48
gl: fix the build
...
2d287812
was incomplete
2016-02-22 21:03:28 +11:00
Matthew Waters
2d2878125e
gl: error out if the configured GL API is unsupported by our element
...
https://bugzilla.gnome.org/show_bug.cgi?id=759801
2016-02-22 20:52:54 +11:00
Matthew Waters
b24d28f729
glimagesink: remove unsed reconfigure variable
2016-02-17 11:42:23 +11:00
Matthew Waters
ccc17ebe10
glimagesink: don't push a reconfigure event from the GL thread
...
Doing so may cause deadlocks when other elements attempt destroy or created
GL resources.
https://bugzilla.gnome.org/show_bug.cgi?id=760559
2016-02-17 10:34:14 +11:00
Wang Xin-yu (王昕宇)
5b1872e387
glvideomixer: don't leak pad's vertex buffer on release_pad
...
https://bugzilla.gnome.org/show_bug.cgi?id=760873
2016-02-17 10:30:45 +11:00
Matthew Waters
ac690978f2
glmixer: Remove usage of GstGLMixerFrameData
...
Subclasses can just iterate over the list of pads themselves
https://bugzilla.gnome.org/show_bug.cgi?id=760873
2016-02-17 10:30:45 +11:00
Matthew Waters
0d94c9ae7f
glmixer: don't hold the object lock while calling into GL
...
Doing so can deadlock between the GL thread and the object lock e.g.
when performing reconfigure events in glimagesink on a resize event.
https://bugzilla.gnome.org/show_bug.cgi?id=760559
2016-02-17 10:30:45 +11:00
Alessandro Decina
effe132310
glvideoflip: don't ignore method changes when caps aren't set (yet)
2016-02-16 13:06:20 +11:00
Matthew Waters
4d8a8b3925
gleffects: identity: add the shader to the hash table
...
So that we don't recreate it every frame and leak memory.
https://bugzilla.gnome.org/show_bug.cgi?id=761578
2016-02-08 12:24:32 +11:00
Matthew Waters
81692a99f3
gltransformation: reconfigure the src when changing to/from passthrough
...
Otherwise it's very possible that any GL resources have not been created yet.
2016-02-03 17:16:39 +11:00
Matthew Waters
189ece1dc2
glvideoflip: correctly update the output caps on method changes
...
When changing methods we may need different output caps.
2016-02-03 12:22:08 +11:00
Alessandro Decina
bc2ffa26fa
gldownload: allow video/x-raw as input
...
...and just passthrough. This is useful for pipelines where downstream must be
non-GL but upstream can optionally be GL.
2016-02-01 15:13:03 +11:00
Wang Xin-yu (王昕宇)
7287564f20
glvideomixer: fix checker vbo leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=760925
2016-02-01 13:55:05 +11:00
Haihua Hu
f3653a5e9c
gleffects: fix gleffects fisheye shader compile error
...
On some embedded systems, sqrt() is not supported in the shader,
use the actual value of sqrt(2) instead.
Signed-off-by: Haihua Hu <b55597@freescale.com>
Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=761271
2016-01-29 14:25:21 +11:00
Matthew Waters
5d304e6a14
glvideomixer: par may not exist in the caps
...
Fixes a critical in the gst-validate tests:
gst_structure_fixate_field_nearest_fraction: assertion 'gst_structure_has_field
(structure, field_name)
2016-01-29 14:03:26 +11:00
Matthew Waters
87031b14cb
videoaggregator: don't do caps processing that is not overridable
...
Allows the subclass to completely override the chosen src caps.
This is needed as videoaggregator generally has no idea exactly
what operation is being performed.
- Adds a fixate_caps vfunc for fixation
- Merges gst_video_aggregator_update_converters() into
gst_videoaggregator_update_src_caps() as we need some of its info
for proper caps handling.
- Pass the downstream caps to the update_caps vfunc
https://bugzilla.gnome.org/show_bug.cgi?id=756207
2016-01-27 20:36:25 +11:00
Matthew Waters
63a564be96
glcolorbalance: return HARDWARE from get_balance_type
2016-01-27 20:24:37 +11:00
Matthew Waters
0fe34bfc1d
glsinkbin: add glcolorbalance element
...
This makes playbin not plug videobalance as glcolorbalance already exists and
implements the GstColorBalance interface.
2016-01-27 20:24:37 +11:00
Matthew Waters
8c549633ee
gl: move control binding proxy implementation from glvideomixer
...
Other elements may need to use it's functionality
2016-01-27 20:01:25 +11:00
Matthew Waters
5c4e724f70
glcolorbalance: create the shader if it doesn't exist in the render callback
...
Changing the properties may result in glcolorbalance moving from passthrough to
non-passthrough and we weren't creating the shader in that case.
2016-01-27 18:17:06 +11:00
Matthew Waters
3cf98f7e5e
glvideoflip: incorporate the aspect ratio into the scale_x calculations
...
1. Otherwise rotating the video will clip and show black bars due to
gltransformation's implementation.
2. The other option of make gltransformation aspect-agnostic produces
incorrect output with perspective transformations.
2016-01-27 16:13:28 +11:00
Tim-Philipp Müller
6e79d54ae5
gl: fix compiler warnings with gcc-6
...
In file included from effects/gstgleffectrgbtocurve.c:25:0:
effects/gstgleffectscurves.h:174:32: error: 'xray_curve' defined but not used
static const GstGLEffectsCurve xray_curve = {
...
2016-01-19 13:20:23 +00:00
Matthew Waters
0b9ae1f1d6
gl: add a videoflip element
...
Behaves exactly the same as the non-GL videoflip element
2016-01-15 12:05:03 +11:00
Matthew Waters
198d451f31
gltransformation: always build a valid mvp matrix
...
The default case is to build an identity matrix.
2016-01-15 12:05:02 +11:00
Matthew Waters
f721499371
gltransformation: support negative scales
...
A scale of -1.0 means to flip the video.
2016-01-15 12:05:02 +11:00
Matthew Waters
12f013c8d7
gltransformation: implement passthrough handling
2016-01-15 12:05:02 +11:00
Matthew Waters
066f0dcda0
gltransformation: implement navigation events
...
Reverses the transformation applied through the properties and forwards the
event.
The process for finding the coordinates on the video are as follows:
1. Convert the given pointer_x and pointer_y to model space at the near and far planes
2. Get the equation of the video plane
3. Find where the ray in 1 intersects the plane
4. Profit!
2016-01-15 12:04:59 +11:00
Matthew Waters
4cfb6b9166
glimagesink: remove reduntant glimagesink from debug logging
2016-01-14 17:52:23 +11:00
Matthew Waters
1bb2985777
gl: implement a colorbalance element
...
It performs the exact same operation as videobalance but with opengl shaders and
was tested with glvideomixer by comparing frames from videobalance and
glcolorbalance.
2016-01-13 12:00:03 +11:00