glupload: Add formats supported by #GstGLMemory to raw caps when generating sink pad caps
requested to merge ChaoGuo/gstreamer:fix_caps_renegotiation_failed_after_glupload_determining_the_upload_method into main
After glupload determines the upload method, if there are upstream elements that need to renegotiate caps, the negotiation may fail.
Because the src caps may only contain RGBA
format, which will cause the raw caps in sink caps (transformed by src caps) also only contain RGBA
format. However, the filter caps used for negotiation may be other formats.
The specific gst log is as follows:
/* filter caps provided by upstream elements */
basetransform gstbasetransform.c:642:gst_base_transform_query_caps:<gluploadelement0:sink>[00m filter caps video/x-raw, format=(string)xBGR, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)[ 0/1, 2147483647/1 ]
basetransform gstbasetransform.c:645:gst_base_transform_query_caps:<gluploadelement0:sink>[00m our template video/x-raw(memory:DMABuf, meta:GstVideoOverlayComposition), format=(string)DMA_DRM, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, GBRA, GBR, RGBP, BGRP, RGB, BGR, RGB16, BGR16, AYUV, VUYA, A444, A422, Y410, I420, YV12, NV12, NV21, NV16, NV61, YUY2, UYVY, Y210, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE, ARGB64, A420, AV12, NV12_16L32S, NV12_4L4, RBGA, RGBA64_LE, BGR10A2_LE, RGB10A2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE, A444_16LE, A422_16LE, A420_16LE, A444_12LE, A422_12LE, A420_12LE, A420_10LE, A422_10LE, A444_10LE, I420_12LE, I420_10LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, GBRA, GBR, RGBP, BGRP, RGB, BGR, RGB16, BGR16, AYUV, VUYA, A444, A422, Y410, I420, YV12, NV12, NV21, NV16, NV61, YUY2, UYVY, Y210, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE, ARGB64, A420, AV12, NV12_16L32S, NV12_4L4, RBGA, RGBA64_LE, BGR10A2_LE, RGB10A2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE, A444_16LE, A422_16LE, A420_16LE, A444_12LE, A422_12LE, A420_12LE, A420_10LE, A422_10LE, A444_10LE, I420_12LE, I420_10LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:DMABuf), format=(string)DMA_DRM, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:GLMemory), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, GBRA, GBR, RGBP, BGRP, RGB, BGR, RGB16, BGR16, AYUV, VUYA, A444, A422, Y410, I420, YV12, NV12, NV21, NV16, NV61, YUY2, UYVY, Y210, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE, ARGB64, A420, AV12, NV12_16L32S, NV12_4L4, RBGA, RGBA64_LE, BGR10A2_LE, RGB10A2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE, A444_16LE, A422_16LE, A420_16LE, A444_12LE, A422_12LE, A420_12LE, A420_10LE, A422_10LE, A444_10LE, I420_12LE, I420_10LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, GBRA, GBR, RGBP, BGRP, RGB, BGR, RGB16, BGR16, AYUV, VUYA, A444, A422, Y410, I420, YV12, NV12, NV21, NV16, NV61, YUY2, UYVY, Y210, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE, ARGB64, A420, AV12, NV12_16L32S, NV12_4L4, RBGA, RGBA64_LE, BGR10A2_LE, RGB10A2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE, A444_16LE, A422_16LE, A420_16LE, A444_12LE, A422_12LE, A420_12LE, A420_10LE, A422_10LE, A444_10LE, I420_12LE, I420_10LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
basetransform gstbasetransform.c:647:gst_base_transform_query_caps:<gluploadelement0:sink>[00m intersected video/x-raw, format=(string)xBGR, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)[ 0/1, 2147483647/1 ]
/* transform filter sink caps to src caps that glupload can output */
/* from caps (sink): video/x-raw, format=(string)xBGR */
/* to caps (src) : video/x-raw(memory:GLMemory), format=(string)RGBA */
basetransform gstbasetransform.c:471:gst_base_transform_transform_caps:<gluploadelement0>[00m transform caps (direction = 2)
basetransform gstbasetransform.c:473:gst_base_transform_transform_caps:<gluploadelement0>[00m from: video/x-raw, format=(string)xBGR, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)[ 0/1, 2147483647/1 ]
glupload gstglupload.c:2058:_direct_dma_buf_upload_transform_caps:<glupload0>[00m direction sink, transformed video/x-raw, format=(string)xBGR, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)[ 0/1, 2147483647/1 ] into video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D
basetransform gstbasetransform.c:475:gst_base_transform_transform_caps:<gluploadelement0>[00m to: video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D
basetransform gstbasetransform.c:498:gst_base_transform_transform_caps:<gluploadelement0>[00m to: video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D
/* glupload query peerpad caps */
basetransform gstbasetransform.c:652:gst_base_transform_query_caps:<gluploadelement0:sink>[00m transformed video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D
basetransform gstbasetransform.c:658:gst_base_transform_query_caps:<gluploadelement0:sink>[00m our template video/x-raw(ANY)
basetransform gstbasetransform.c:663:gst_base_transform_query_caps:<gluploadelement0:sink>[00m intersected video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D
basetransform gstbasetransform.c:678:gst_base_transform_query_caps:<gluploadelement0:sink>[00m peer filter caps video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D
... ...
basetransform gstbasetransform.c:687:gst_base_transform_query_caps:<gluploadelement0:sink>[00m peer caps video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D
basetransform gstbasetransform.c:690:gst_base_transform_query_caps:<gluploadelement0:sink>[00m our template video/x-raw(ANY)
basetransform gstbasetransform.c:692:gst_base_transform_query_caps:<gluploadelement0:sink>[00m intersected video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D
/* transform src caps to sink caps */
/* from caps (src): video/x-raw(memory:GLMemory), format=(string)RGBA */
/* to caps (sink) : video/x-raw(memory:DMABuf), format=(string)DMA_DRM
video/x-raw, format=(string)RGBA
*/
basetransform gstbasetransform.c:471:gst_base_transform_transform_caps:<gluploadelement0>[00m transform caps (direction = 1)
basetransform gstbasetransform.c:473:gst_base_transform_transform_caps:<gluploadelement0>[00m from: video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D
glupload gstglupload.c:2058:_direct_dma_buf_upload_transform_caps:<glupload0>[00m direction src, transformed video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D into video/x-raw(memory:DMABuf), format=(string)DMA_DRM, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], drm-format=(string){ AB24, AB24:0x0800000000000041, AB24:0x0800000000000051, AB24:0x0800000000000061, AB24:0x0800000000000071, AB24:0x0800000000000341, AB24:0x0800000000000351, AB24:0x0800000000000361, AB24:0x0800000000000371, AB24:0x0800000000000841, AB24:0x0800000000000851, AB24:0x0800000000000861, AB24:0x0800000000000871, AB24:0x0800000000000b41, AB24:0x0800000000000b51, AB24:0x0800000000000b61, AB24:0x0800000000000b71, AB24:0x0800000000001041, AB24:0x0800000000001051, AB24:0x0800000000001061, AB24:0x0800000000001071, AB24:0x0800000000001341, AB24:0x0800000000001351, AB24:0x0800000000001361, AB24:0x0800000000001371, AB24:0x0800000000001841, AB24:0x0800000000001851, AB24:0x0800000000001861, AB24:0x0800000000001871, AB24:0x0800000000001b41, AB24:0x0800000000001b51, AB24:0x0800000000001b61, AB24:0x0800000000001b71, AB24:0x0800000000000062, AB24:0x0800000000000072, AB24:0x0800000000000362, AB24:0x0800000000000372, AB24:0x0800000000000862, AB24:0x0800000000000872, AB24:0x0800000000000b62, AB24:0x0800000000000b72, AB24:0x0800000000001062, AB24:0x0800000000001072, AB24:0x0800000000001362, AB24:0x0800000000001372, AB24:0x0800000000001862, AB24:0x0800000000001872, AB24:0x0800000000001b62, AB24:0x0800000000001b72, AR24, XB24, XB24:0x0800000000000041, XB24:0x0800000000000051, XB24:0x0800000000000061, XB24:0x0800000000000071, XB24:0x0800000000000341, XB24:0x0800000000000351, XB24:0x0800000000000361, XB24:0x0800000000000371, XB24:0x0800000000001041, XB24:0x0800000000001051, XB24:0x0800000000001061, XB24:0x0800000000001071, XB24:0x0800000000001341, XB24:0x0800000000001351, XB24:0x0800000000001361, XB24:0x0800000000001371, XB24:0x0800000000000062, XB24:0x0800000000000072, XB24:0x0800000000000362, XB24:0x0800000000000372, XB24:0x0800000000001062, XB24:0x0800000000001072, XB24:0x0800000000001362, XB24:0x0800000000001372, XR24, BA24, RA24, BX24, RX24, BG24, BG24:0x0800000000000041, BG24:0x0800000000000051, BG24:0x0800000000000061, BG24:0x0800000000000071, BG24:0x0800000000000341, BG24:0x0800000000000351, BG24:0x0800000000000361, BG24:0x0800000000000371, BG24:0x0800000000001041, BG24:0x0800000000001051, BG24:0x0800000000001061, BG24:0x0800000000001071, BG24:0x0800000000001341, BG24:0x0800000000001351, BG24:0x0800000000001361, BG24:0x0800000000001371, BG24:0x0800000000000062, BG24:0x0800000000000072, BG24:0x0800000000000362, BG24:0x0800000000000372, BG24:0x0800000000001062, BG24:0x0800000000001072, BG24:0x0800000000001362, BG24:0x0800000000001372, RG24, RG16, BG16, BG16:0x0800000000000041, BG16:0x0800000000000051, BG16:0x0800000000000061, BG16:0x0800000000000071, BG16:0x0800000000000341, BG16:0x0800000000000351, BG16:0x0800000000000361, BG16:0x0800000000000371, BG16:0x0800000000001041, BG16:0x0800000000001051, BG16:0x0800000000001061, BG16:0x0800000000001071, BG16:0x0800000000001341, BG16:0x0800000000001351, BG16:0x0800000000001361, BG16:0x0800000000001371, BG16:0x0800000000000042, BG16:0x0800000000000052, BG16:0x0800000000000342, BG16:0x0800000000000352 }; video/x-raw, format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ]
glupload gstglupload.c:490:_gl_memory_upload_transform_caps:<glupload0>[00m direction src, transformed video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D into video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ]
glupload gstglupload.c:2058:_direct_dma_buf_upload_transform_caps:<glupload0>[00m direction src, transformed video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D into video/x-raw(memory:DMABuf), format=(string)DMA_DRM, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], drm-format=(string){ AB24, AB24:0x0800000000000041, AB24:0x0800000000000051, AB24:0x0800000000000061, AB24:0x0800000000000071, AB24:0x0800000000000341, AB24:0x0800000000000351, AB24:0x0800000000000361, AB24:0x0800000000000371, AB24:0x0800000000000841, AB24:0x0800000000000851, AB24:0x0800000000000861, AB24:0x0800000000000871, AB24:0x0800000000000b41, AB24:0x0800000000000b51, AB24:0x0800000000000b61, AB24:0x0800000000000b71, AB24:0x0800000000001041, AB24:0x0800000000001051, AB24:0x0800000000001061, AB24:0x0800000000001071, AB24:0x0800000000001341, AB24:0x0800000000001351, AB24:0x0800000000001361, AB24:0x0800000000001371, AB24:0x0800000000001841, AB24:0x0800000000001851, AB24:0x0800000000001861, AB24:0x0800000000001871, AB24:0x0800000000001b41, AB24:0x0800000000001b51, AB24:0x0800000000001b61, AB24:0x0800000000001b71, AB24:0x0800000000000062, AB24:0x0800000000000072, AB24:0x0800000000000362, AB24:0x0800000000000372, AB24:0x0800000000000862, AB24:0x0800000000000872, AB24:0x0800000000000b62, AB24:0x0800000000000b72, AB24:0x0800000000001062, AB24:0x0800000000001072, AB24:0x0800000000001362, AB24:0x0800000000001372, AB24:0x0800000000001862, AB24:0x0800000000001872, AB24:0x0800000000001b62, AB24:0x0800000000001b72, AR24, XB24, XB24:0x0800000000000041, XB24:0x0800000000000051, XB24:0x0800000000000061, XB24:0x0800000000000071, XB24:0x0800000000000341, XB24:0x0800000000000351, XB24:0x0800000000000361, XB24:0x0800000000000371, XB24:0x0800000000001041, XB24:0x0800000000001051, XB24:0x0800000000001061, XB24:0x0800000000001071, XB24:0x0800000000001341, XB24:0x0800000000001351, XB24:0x0800000000001361, XB24:0x0800000000001371, XB24:0x0800000000000062, XB24:0x0800000000000072, XB24:0x0800000000000362, XB24:0x0800000000000372, XB24:0x0800000000001062, XB24:0x0800000000001072, XB24:0x0800000000001362, XB24:0x0800000000001372, XR24, BA24, RA24, BX24, RX24, BG24, BG24:0x0800000000000041, BG24:0x0800000000000051, BG24:0x0800000000000061, BG24:0x0800000000000071, BG24:0x0800000000000341, BG24:0x0800000000000351, BG24:0x0800000000000361, BG24:0x0800000000000371, BG24:0x0800000000001041, BG24:0x0800000000001051, BG24:0x0800000000001061, BG24:0x0800000000001071, BG24:0x0800000000001341, BG24:0x0800000000001351, BG24:0x0800000000001361, BG24:0x0800000000001371, BG24:0x0800000000000062, BG24:0x0800000000000072, BG24:0x0800000000000362, BG24:0x0800000000000372, BG24:0x0800000000001062, BG24:0x0800000000001072, BG24:0x0800000000001362, BG24:0x0800000000001372, RG24, RG16, BG16, BG16:0x0800000000000041, BG16:0x0800000000000051, BG16:0x0800000000000061, BG16:0x0800000000000071, BG16:0x0800000000000341, BG16:0x0800000000000351, BG16:0x0800000000000361, BG16:0x0800000000000371, BG16:0x0800000000001041, BG16:0x0800000000001051, BG16:0x0800000000001061, BG16:0x0800000000001071, BG16:0x0800000000001341, BG16:0x0800000000001351, BG16:0x0800000000001361, BG16:0x0800000000001371, BG16:0x0800000000000042, BG16:0x0800000000000052, BG16:0x0800000000000342, BG16:0x0800000000000352 }; video/x-raw, format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ]
glupload gstglupload.c:2044:_direct_dma_buf_upload_transform_caps:<glupload0>[00m direction src, fails to transformed DMA caps video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D
glupload gstglupload.c:1447:_dma_buf_upload_transform_caps:<glupload0>[00m direction src,
transformed video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D
into video/x-raw(memory:DMABuf), format=(string)DMA_DRM, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], drm-format=(string)AB24; video/x-raw, format=(string)RGBA, width=(int)[ 64, 2147483647 ], height=(int)[ 64, 2147483647 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ]
/* The intersection of sink caps and filter caps is empty, negotiation failed */
basetransform gstbasetransform.c:475:gst_base_transform_transform_caps:<gluploadelement0>[00m to: EMPTY
basetransform gstbasetransform.c:498:gst_base_transform_transform_caps:<gluploadelement0>[00m to: EMPTY
basetransform gstbasetransform.c:700:gst_base_transform_query_caps:<gluploadelement0:sink>[00m transformed EMPTY
basetransform gstbasetransform.c:734:gst_base_transform_query_caps:<gluploadelement0>[00m returning EMPTY
... ...
So when glupload generate raw caps (on sink pad), need to add the formats supported by #GstGLMemory
to raw caps to ensure that caps negotiation succeeds.