Hello, Guys
I want to do the video playback rendering on the adreno 200 platform (Qualcomm 8x55 chipset). My basic way to do this, is to update partial texture with glTexSubImage2D, and glDrawTexiOES to draw the frame out per frame period (like 33 ms). However, it turn out to be looks like updating only 1 frame per second. I used adreno profiler to check, the frame rate is always about 24 fps, which is correct. But the visual effect is much bad.
I suspect the texture bandwidth is bottleneck here, however, using compressed texture during the runtime is not practical way. Can some one help me to point out possible problem here?
Thank you very much.
Similar problem is observed in Opengl es 2.0. The bottleneck seems to be the time GPU fetching texture data with texture2D(). eglSwapBuffer also takes some time. I can only achive 10 fps for simply display a 800x480 texture on the screen.
Normal 0 false false false EN-US X-NONE X-NONE
Would like to better understand the need for using OpenGLES to display full screen video..
Also would like to know the format of the video source.
When using glTexSubImage2D or glTexImage2D make sure all changes are applied to the texture, before doing any rendering. glTexImage2D is likely more optimized than using glTexSubImage2D.
Possibly try to double buffer, making changes to one texture while using another texture, and swap those next frame.
Lastly introduced in Ice Cream Sandwich, there's an Androi SurfaceTexture API which will be your best option for doing video output in OpenGL ES.. http://developer.android.com/reference/android/graphics/SurfaceTexture.html