gstreamer/ext/gl
Enrique Ocaña González 34ef2b2759 glcolorbalance: Error out on unsupported texture target types
The issue can be reproduced on a computer with a Radeon graphics card
when trying to force GStreamer Editing Services to use GL for video
mixing in GESSmartMixer, instead of the GstCompositor that smart mixer
would normally use. This change causes the resulting video stream to
have "video/x-raw(memory:GLMemory) ... texture-target: 2D" caps (instead
of "video/x-raw ..." caps). At the PlaySink stage of the pipeline, a
GstGLImageSinkBin is plugged, with a GstGLColorBalance on it. For some
reason that is still to be debugged (and out of the scope of this
patch), gst_gl_filter_set_caps() is never called on that color balance
element, leaving filter->in_texture_target set to its default
GST_GL_TEXTURE_TARGET_NONE value. The incomplete _create_shader() logic
does the rest and silently generates a shader code that doesn't build.

This is the command I use to reproduce the issue (I'm not sure if I
would be able to isolate the issue in a simple pipeline, though):

 GST_PLUGIN_FEATURE_RANK=vaapih265enc:NONE,vaapih264enc:NONE,vaapisink:NONE,vaapidecodebin:NONE,vaapipostproc:NONE,vaapih265dec:NONE,vaapivc1dec:NONE,vaapih264dec:NONE,vaapimpeg2dec:NONE,vaapijpegdec:NONE,glvideomixer:260
 ges-launch-1.0 +clip /tmp/video.mp4

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1159>
2021-05-20 13:22:24 +00:00
..
effects glfilters: Don't use static variables for storing per-element state 2019-10-03 00:49:09 +00:00
caopengllayersink.h gl: fix broken build due to previous commit 2fd84a6c 2017-12-09 19:32:30 +00:00
caopengllayersink.m gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gltestsrc.c gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gltestsrc.h gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable 2021-01-14 11:53:10 +00:00
gstglalpha.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglalpha.h gl/docs: add to new docs system 2019-05-21 01:49:48 +00:00
gstglbasemixer.c docs: mark more types as plugin API 2020-06-23 14:52:20 -04:00
gstglbasemixer.h gl/mixer: support GstGLDisplay changes 2020-03-03 02:11:52 +00:00
gstglbumper.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglbumper.h glfilters: Don't use static variables for storing per-element state 2019-10-03 00:49:09 +00:00
gstglcolorbalance.c glcolorbalance: Error out on unsupported texture target types 2021-05-20 13:22:24 +00:00
gstglcolorbalance.h gl: optimize glcolorbalance by precomputing shader math 2020-10-29 01:16:49 +00:00
gstglcolorconvertelement.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglcolorconvertelement.h glbasefilter: expose finding the local GL context 2018-05-05 21:24:25 +10:00
gstglcolorscale.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglcolorscale.h glcolorscale: support gl3 2017-12-09 19:31:51 +00:00
gstgldeinterlace.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstgldeinterlace.h glfilter: rewrite subclasses for filter_texture() occuring on GL thread 2017-12-09 19:32:21 +00:00
gstgldifferencematte.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstgldifferencematte.h gl: use GLMemory for accessing textures everywhere 2017-12-09 19:32:21 +00:00
gstgldownloadelement.c gl/download: add support for output memory:NVMM buffers 2021-04-28 12:44:38 +10:00
gstgldownloadelement.h gl/download: add support for output memory:NVMM buffers 2021-04-28 12:44:38 +10:00
gstgleffects.c gst: don't use volatile to mean atomic 2021-03-19 04:20:19 +00:00
gstgleffects.h gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstglelement.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglelements.h gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglfilterapp.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglfilterapp.h glframebuffer: rewrite for a more consistent API 2017-12-09 19:32:21 +00:00
gstglfilterbin.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglfilterbin.h gl: new element glfilterbin 2017-12-09 19:31:57 +00:00
gstglfiltercube.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglfiltercube.h glfilters: Don't use static variables for storing per-element state 2019-10-03 00:49:09 +00:00
gstglfilterglass.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglfilterglass.h glfilters: Don't use static variables for storing per-element state 2019-10-03 00:49:09 +00:00
gstglfilterreflectedscreen.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglfilterreflectedscreen.h gl: silence all the compiler warnings 2017-12-09 19:31:34 +00:00
gstglfiltershader.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglfiltershader.h glshaderelement: implement setting arbitrary uniforms 2017-12-09 19:32:09 +00:00
gstglimagesink.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglimagesink.h gst: don't use volatile to mean atomic 2021-03-19 04:20:19 +00:00
gstglmixer.c docs: mark more types as plugin API 2020-06-23 14:52:20 -04:00
gstglmixer.h gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstglmixerbin.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglmixerbin.h gl: new glmixerbin element 2017-12-09 19:31:57 +00:00
gstglmosaic.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglmosaic.h glfilters: Don't use static variables for storing per-element state 2019-10-03 00:49:09 +00:00
gstgloverlay.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstgloverlay.h gl/docs: add to new docs system 2019-05-21 01:49:48 +00:00
gstgloverlaycompositorelement.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstgloverlaycompositorelement.h gl: add a new overlay compositor element 2018-10-04 14:28:35 +10:00
gstglsinkbin.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglsinkbin.h glsinkbin: add glcolorbalance element 2017-12-09 19:32:15 +00:00
gstglsrcbin.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglsrcbin.h gl: new glsrcbin element 2017-12-09 19:31:57 +00:00
gstglstereomix.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglstereomix.h glstereomix: Fix caps negotiation 2017-12-09 19:32:22 +00:00
gstglstereosplit.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglstereosplit.h glstereosplit: support gl display changes 2020-03-03 02:11:52 +00:00
gstgltestsrc.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstgltestsrc.h gl: New pushsrc-based glbasesrc base class 2019-08-20 09:51:05 +01:00
gstgltransformation.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstgltransformation.h gl: fix broken build due to previous commit 2fd84a6c 2017-12-09 19:32:30 +00:00
gstgluploadelement.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstgluploadelement.h gl/docs: add to new docs system 2019-05-21 01:49:48 +00:00
gstglutils.c gl/utils: fixup matrix math again for column major 2018-07-10 20:13:22 +10:00
gstglutils.h glutils: fix matrix operations everywhere 2017-12-09 19:32:30 +00:00
gstglvideoflip.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglvideoflip.h glvideoflip: implement GstVideoDirection interface 2017-12-09 19:32:22 +00:00
gstglvideomixer.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglvideomixer.h glvidemixer: need reconfigure output gemotry after caps renegotiated 2017-12-09 19:32:30 +00:00
gstglviewconvert.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
gstglviewconvert.h gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstopengl.c gl: allow per feature registration 2021-03-16 17:58:59 +00:00
meson.build ext/gl: change graphene default options 2021-05-16 13:18:33 +00:00