AnsweredAssumed Answered

VPU/glTexDirectVIVMap YUV display issue

Question asked by Damien Dejean on Mar 29, 2016
Latest reply on Apr 13, 2016 by Damien Dejean

Hello,

 

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 ?

 

Configuration tried:

  • 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

Outcomes