Index: talk/app/webrtc/java/android/org/webrtc/VideoRendererGui.java |
diff --git a/talk/app/webrtc/java/android/org/webrtc/VideoRendererGui.java b/talk/app/webrtc/java/android/org/webrtc/VideoRendererGui.java |
index 1720cd86b9c8b087b9d90a68a77a2c1ebd380779..23da47bce3bc317c9cfc30009f2b5e08e62fbf10 100644 |
--- a/talk/app/webrtc/java/android/org/webrtc/VideoRendererGui.java |
+++ b/talk/app/webrtc/java/android/org/webrtc/VideoRendererGui.java |
@@ -98,8 +98,9 @@ public class VideoRendererGui implements GLSurfaceView.Renderer { |
// |surface| is synchronized on |this|. |
private GLSurfaceView surface; |
private int id; |
- private int[] yuvTextures = { -1, -1, -1 }; |
- private int oesTexture = -1; |
+ // TODO(magjed): Delete |yuvTextures| in release(). Must be synchronized with draw(). |
+ private int[] yuvTextures = { 0, 0, 0 }; |
+ private int oesTexture = 0; |
// Render frame queue - accessed by two threads. renderFrame() call does |
// an offer (writing I420Frame to render) and early-returns (recording |
@@ -182,20 +183,9 @@ public class VideoRendererGui implements GLSurfaceView.Renderer { |
Thread.currentThread().getId()); |
// Generate 3 texture ids for Y/U/V and place them into |yuvTextures|. |
- GLES20.glGenTextures(3, yuvTextures, 0); |
for (int i = 0; i < 3; i++) { |
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + i); |
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, yuvTextures[i]); |
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, |
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR); |
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, |
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); |
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, |
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); |
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, |
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); |
+ yuvTextures[i] = GlUtil.generateTexture(GLES20.GL_TEXTURE_2D); |
} |
- GlUtil.checkNoGLES2Error("y/u/v glGenTextures"); |
} |
private void checkAdjustTextureCoords() { |