We're facing an issue on Android with the VPU and glTexDirectVIVMap. Using GStreamer 1.0 (1.4.5) and gstreamer-imx plugin suite, we are receiveing a RTP stream, we're decoding it with imxvpudec plugin and we're displaying it with imxeglvivsink to the surface of an Android application.
Everything works fine, except when the received stream as a "weird" resolution (for instance 1264x711). In this case, the display looks like : https://cloud.githubusercontent.com/assets/1169197/13978507/e9da146e-f0d1-11e5-8308-0a4dcf031a70.png
We also tested a patched version of glimasink (from GStreamer plugin bad) that uses the same glTexDirectVIVMap to avoid copies and we're facing the same issues. When the zero-copy patch is removed, everything works fine.
We tried to reproduce this on a Yocto linux platform, and we failed.
It seems there's an issue with the YUV picture emitted from the VPU or the way the gl stack reads it, is that a known issue ? Do you know how to fix this ?
- Hardware: Wandboard i.MX6 Quad
- BSP: Android KK4.4.2 (kernel 3.0.35) and Android LLP 5.0 (kernel 3.10)
- GStreamer 1.4.5 and 1.6.3
- Gstreamer-imx imxeglvivsink plugin and glimagesink modified plugin