SurfaceTexture is a very convenient way to direct Android's Camera output to a texture in GLSurfaceView. But I need the pixel data of the surface and the only way I found is via GLES20.glReadPixels which is slow.
Some information says a SurfaceTexture is backed by an external texture which realted to EGLImage.But it seems that Android NDK and SDK dosen't provide too much api about it.