glupload reports caps for raw GstVideoGLTextureUploadMeta but doesnt intersect SystemMemory

pneves pneves at airborneprojects.com
Thu Sep 1 17:58:09 UTC 2016


The following program has caps taken from glupload in the sink_caps. It can
match VideoCompositionMeta but fails on  GstVideoGLTextureUploadMeta because
of the memory:SystemMemory. If i take out the memory feature, the intersect
works.

Is this normal behavious is the GstVideoGLTextureUploadMeta dependent on the
memory type?

int main(int /*argc*/, char* /*argv*/[]) {
	gst_init(0, 0);
	GstCaps * sink_caps = gst_caps_from_string("video/x-raw(memory:GLMemory,
meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1,
2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1,
2147483647/1 ], texture-target=(string)2D; video/x-raw(memory:GLMemory),
format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1,
2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ],
texture-target=(string)2D; video/x-raw(memory:GLMemory,
meta:GstVideoOverlayComposition), width=(int)[ 1, 2147483647 ],
height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ],
format=(string)RGBA, texture-target=(string){ 2D, rectangle, external-oes };
video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition), width=(int)[
1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1,
2147483647/1 ], format=(string){ RGBA, RGB, RGBx, BGR, BGRx, BGRA, xRGB,
xBGR, ARGB, ABGR, Y444, I420, YV12, Y42B, Y41B, NV12, NV21, YUY2, UYVY,
AYUV, GRAY8, GRAY16_LE, GRAY16_BE, RGB16, BGR16 }, texture-target=(string){
2D, rectangle, external-oes }; video/x-raw(memory:GLMemory), width=(int)[ 1,
2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1,
2147483647/1 ], format=(string)RGBA, texture-target=(string){ 2D, rectangle,
external-oes }; video/x-raw(memory:GLMemory), width=(int)[ 1, 2147483647 ],
height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ],
format=(string){ RGBA, RGB, RGBx, BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR,
Y444, I420, YV12, Y42B, Y41B, NV12, NV21, YUY2, UYVY, AYUV, GRAY8,
GRAY16_LE, GRAY16_BE, RGB16, BGR16 }, texture-target=(string){ 2D,
rectangle, external-oes }; video/x-raw(memory:GLMemory,
meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1,
2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1,
2147483647/1 ]; video/x-raw(memory:GLMemory), format=(string)RGBA,
width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ],
framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:GLMemory,
meta:GstVideoOverlayComposition), width=(int)[ 1, 2147483647 ],
height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ],
format=(string){ RGBA, RGB, RGBx, BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR,
Y444, I420, YV12, Y42B, Y41B, NV12, NV21, YUY2, UYVY, AYUV, GRAY8,
GRAY16_LE, GRAY16_BE, RGB16, BGR16 }; video/x-raw(memory:GLMemory),
width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ],
framerate=(fraction)[ 0/1, 2147483647/1 ], format=(string){ RGBA, RGB, RGBx,
BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR, Y444, I420, YV12, Y42B, Y41B, NV12,
NV21, YUY2, UYVY, AYUV, GRAY8, GRAY16_LE, GRAY16_BE, RGB16, BGR16 };
video/x-raw(memory:EGLImage, meta:GstVideoOverlayComposition),
format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1,
2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
video/x-raw(memory:EGLImage), format=(string)RGBA, width=(int)[ 1,
2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1,
2147483647/1 ]; video/x-raw(memory:SystemMemory,
meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1,
2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1,
2147483647/1 ]; video/x-raw, format=(string)RGBA, width=(int)[ 1, 2147483647
], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
video/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition),
width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ],
framerate=(fraction)[ 0/1, 2147483647/1 ], format=(string){ RGBA, RGB, RGBx,
BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR, Y444, I420, YV12, Y42B, Y41B, NV12,
NV21, YUY2, UYVY, AYUV, GRAY8, GRAY16_LE, GRAY16_BE, RGB16, BGR16 };
video/x-raw, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ],
framerate=(fraction)[ 0/1, 2147483647/1 ], format=(string){ RGBA, RGB, RGBx,
BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR, Y444, I420, YV12, Y42B, Y41B, NV12,
NV21, YUY2, UYVY, AYUV, GRAY8, GRAY16_LE, GRAY16_BE, RGB16, BGR16 };
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(meta:GstVideoGLTextureUploadMeta),
format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1,
2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]");

	GstCaps * compo_caps = gst_caps_from_string("
video/x-raw(memory:SystemMemory,"
		"meta:GstVideoOverlayComposition), width=(int)[ 1, 2147483647 ], "
		"height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1
],"
		"format=(string){ RGBA, RGB, RGBx, BGR, BGRx, BGRA, xRGB, xBGR, ARGB,
ABGR,"
		"Y444, I420, YV12, Y42B, Y41B, NV12, NV21, YUY2, UYVY, AYUV, GRAY8, "
		"GRAY16_LE, GRAY16_BE, RGB16, BGR16 }");

	GstCaps * gltexture_upload_caps_system_memory = gst_caps_from_string(
		"video/x-raw(memory:SystemMemory, meta:GstVideoGLTextureUploadMeta),"
		" format=(string)RGBA, width=(int)1920, height=(int)1080, "
		"framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, "
		"interlace-mode=(string)progressive");

	GstCaps * gltexture_upload_caps_no_memory = gst_caps_from_string(
		"video/x-raw( meta:GstVideoGLTextureUploadMeta),"
		" format=(string)RGBA, width=(int)1920, height=(int)1080, "
		"framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, "
		"interlace-mode=(string)progressive");

	printf("Result comp %d\n", gst_caps_can_intersect(sink_caps, compo_caps));
	printf("Result gltexture System memory %d\n",
gst_caps_can_intersect(sink_caps,
		gltexture_upload_caps_system_memory));
	printf("Result gltexture No system memory%d\n",
gst_caps_can_intersect(sink_caps,
		gltexture_upload_caps_no_memory));

}




--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/glupload-reports-caps-for-raw-GstVideoGLTextureUploadMeta-but-doesnt-intersect-SystemMemory-tp4679355.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list