| 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 adee98bb5be0f48799139123e8426d93fcb6f80d..f1e5fe77cd8655922384970d90c4d8874ada9d88 100644 | 
| --- a/talk/app/webrtc/java/android/org/webrtc/VideoRendererGui.java | 
| +++ b/talk/app/webrtc/java/android/org/webrtc/VideoRendererGui.java | 
| @@ -387,9 +387,9 @@ public class VideoRendererGui implements GLSurfaceView.Renderer { | 
| frameToRenderQueue.poll(); | 
| // Re-allocate / allocate the frame. | 
| yuvFrameToRender = new I420Frame(videoWidth, videoHeight, rotationDegree, | 
| -                                         strides, null); | 
| +                                         strides, null, 0); | 
| textureFrameToRender = new I420Frame(videoWidth, videoHeight, rotationDegree, | 
| -                                             null, -1); | 
| +                                             null, -1, 0); | 
| updateTextureProperties = true; | 
| Log.d(TAG, "  YuvImageRenderer.setSize done."); | 
| } | 
| @@ -399,6 +399,7 @@ public class VideoRendererGui implements GLSurfaceView.Renderer { | 
| public synchronized void renderFrame(I420Frame frame) { | 
| if (surface == null) { | 
| // This object has been released. | 
| +        VideoRenderer.renderFrameDone(frame); | 
| return; | 
| } | 
| if (!seenFrame && rendererEvents != null) { | 
| @@ -412,6 +413,7 @@ public class VideoRendererGui implements GLSurfaceView.Renderer { | 
| // Skip rendering of this frame if setSize() was not called. | 
| if (yuvFrameToRender == null || textureFrameToRender == null) { | 
| framesDropped++; | 
| +          VideoRenderer.renderFrameDone(frame); | 
| return; | 
| } | 
| // Check input frame parameters. | 
| @@ -421,6 +423,7 @@ public class VideoRendererGui implements GLSurfaceView.Renderer { | 
| frame.yuvStrides[2] < frame.width / 2) { | 
| Log.e(TAG, "Incorrect strides " + frame.yuvStrides[0] + ", " + | 
| frame.yuvStrides[1] + ", " + frame.yuvStrides[2]); | 
| +            VideoRenderer.renderFrameDone(frame); | 
| return; | 
| } | 
| // Check incoming frame dimensions. | 
| @@ -434,6 +437,7 @@ public class VideoRendererGui implements GLSurfaceView.Renderer { | 
| if (frameToRenderQueue.size() > 0) { | 
| // Skip rendering of this frame if previous frame was not rendered yet. | 
| framesDropped++; | 
| +          VideoRenderer.renderFrameDone(frame); | 
| return; | 
| } | 
|  | 
| @@ -450,6 +454,7 @@ public class VideoRendererGui implements GLSurfaceView.Renderer { | 
| } | 
| copyTimeNs += (System.nanoTime() - now); | 
| seenFrame = true; | 
| +      VideoRenderer.renderFrameDone(frame); | 
|  | 
| // Request rendering. | 
| surface.requestRender(); | 
|  |