Multimedia: Add Vivante direct-texture video buffer
Introduce QVivanteVideoBuffer, a QHwVideoBuffer that imports video
frames backed by NXP/Freescale Vivante-GPU physical memory (as found
on i.MX6 boards) into a GL texture via the vendor's
GL_VIV_direct_texture extension (glTexDirectVIVMap /
glTexDirectInvalidateVIV), avoiding a CPU copy out of VPU-decoded
memory.
The design mirrors QDmaBufVideoBuffer/qdmabuftextureimporter: a
generic importer (qvivantetextureimporter) resolves the vendor GL
entry points at runtime via eglGetProcAddress and declares the
GL_VIV_* format tokens itself, so no proprietary Vivante SDK or
vendor headers are required at build time. This lets the new
"gpu_vivante" feature drop the old TEST_gpu_vivante compile test
(and the config.tests/gpu_vivante project it depended on), which had
been checking for vendor headers that are no longer needed.
Vivante's direct-texture extension produces a single, already
YUV-to-RGB-converted GL texture per frame rather than one texture per
plane, so QVivanteVideoBuffer hands back one texture regardless of
plane index.
No backend wires a producer into this yet.
Pick-to: 6.12
Task-number: QTBUG-95819
Change-Id: I936c8114894a91ec4a51599a99edddbea624d1f1
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Lars Sutterud <lars.sutterud@qt.io>