I've got some code that uses gstreamer to capture video frames (using appsink) 
and then render them to the screen using textures under GLES.

The code basically does:

  1) Grab image;
  2) Use one call per image row to glTexSubImage2D to update the texture
  3) Render the texture to a quad.

Sometime this runs ok (for weeks). Sometimes it crashes.

When it crashes a segfault is thrown in openGLES.so (using PRV drivers). It 
looks as if this happens in the call to glTexSubImage2D. I also suspect that 
some calls never return.

I've found that I need to add a call to glFinish() after the call to 
glTexSubImage2D. If I don't, some of the lines are sometimes filled with 
'static'.

To me this looks like some sort of memory/timing issue. Do I need to perform 
some sort of manual GPU/CPU synchronisation?

Adding significant amounts of diagnostic output (to std::cerr) makes the 
problem a heisenbug!

Chris Tapp

opensou...@keylevel.com
www.keylevel.com



_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to