Matthew Waters
90da62bc25
glbasemixer: actually attempt to propose an allocation upstream
...
We were always failing the allocation query as a flag was never being set to
signal a successful negotiation. Fix by setting the required flag on a
successful caps event from upstream.
2016-05-14 16:35:29 +03:00
Matthew Waters
5498e97a11
gl/egl: replace gsteglimagememory with an EGLImage wrapper
...
That can be passed to GstGLMemoryEGL.
This also ports the dmabuf uploader to GstEGLImage and GstGLMemoryEGL.
2016-05-04 13:31:48 +10:00
Haihua Hu
0cfb0890ce
gl: enable gldeinterlace on OpenGL ES
...
1.Porting the exist deinterlace shader and OpenGL callback
to be compatible with OpenGL ES.
2.Add a our blur vertical shader to gldeinterlace.
3.Add a property named “method” to let user choose which
deinterlace function to use. Default to choose blur vertical
method for better performance.
[Matthew Waters]: fix name of greedyh in method property (was greedhy) and port
to git master.
https://bugzilla.gnome.org/show_bug.cgi?id=764873
2016-04-29 21:33:29 +10:00
Hyunjun Ko
7bee220af4
gl: caopengllayersink: fix a minor warning
...
Fix "unused variable" warning
https://bugzilla.gnome.org/show_bug.cgi?id=765292
2016-04-20 10:47:19 +03:00
Sebastian Dröge
bbe2e41653
glimagesink: Fix indentation
2016-04-19 09:30:39 +03:00
Haihua Hu
e4fe0e4ae2
glimagesink: need to clean window_id when state change form READY to NULL
...
When application change pipeline state NULL->READY and then READY->NULL,
glimagesink will not clear glsink->window_id. After that, when application
change state NULL->READY, the new_window_id is equal to window_id, glimagesink
will not set window handle. It will use the internal window but not the window
create by application.
https://bugzilla.gnome.org/show_bug.cgi?id=765241
2016-04-19 09:29:15 +03:00
Heinrich Fink
44ec245b48
gl/caopengllayersink: Actually unset caps_change flag after resize
...
Otherwise, the sink would execute "on_resize" for each frame.
https://bugzilla.gnome.org/show_bug.cgi?id=765194
2016-04-18 10:32:07 +03:00
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