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>
commit48c8d46b9bcb6b9e275d8a65ea9b2fee41976534
parent6f24b9397ef3a672a1fb1dfaad3d6a2015d931c1
authorTim Blechmann <tim.blechmann@qt.io>
committerLars Sutterud <lars.sutterud@qt.io>
commit timeWed, 21 Oct 2026 04:02:17 +0000