| Index: talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java
|
| diff --git a/talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java b/talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java
|
| index c4785c9913f34527a4c09fbddbcaaa9b18e2eecf..1e228cf7c8cc9d8cbe2e88da3f135e8721daec5b 100644
|
| --- a/talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java
|
| +++ b/talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java
|
| @@ -427,13 +427,24 @@ public class SurfaceViewRenderer extends SurfaceView
|
| if (Thread.currentThread() != renderThread) {
|
| throw new IllegalStateException(getResourceName() + "Wrong thread.");
|
| }
|
| + // Fetch and render |pendingFrame|.
|
| + final VideoRenderer.I420Frame frame;
|
| + synchronized (frameLock) {
|
| + if (pendingFrame == null) {
|
| + return;
|
| + }
|
| + frame = pendingFrame;
|
| + pendingFrame = null;
|
| + }
|
| if (eglBase == null || !eglBase.hasSurface()) {
|
| Logging.d(TAG, getResourceName() + "No surface to draw on");
|
| + VideoRenderer.renderFrameDone(frame);
|
| return;
|
| }
|
| if (!checkConsistentLayout()) {
|
| // Output intermediate black frames while the layout is updated.
|
| makeBlack();
|
| + VideoRenderer.renderFrameDone(frame);
|
| return;
|
| }
|
| // After a surface size change, the EGLSurface might still have a buffer of the old size in the
|
| @@ -444,15 +455,6 @@ public class SurfaceViewRenderer extends SurfaceView
|
| makeBlack();
|
| }
|
| }
|
| - // Fetch and render |pendingFrame|.
|
| - final VideoRenderer.I420Frame frame;
|
| - synchronized (frameLock) {
|
| - if (pendingFrame == null) {
|
| - return;
|
| - }
|
| - frame = pendingFrame;
|
| - pendingFrame = null;
|
| - }
|
|
|
| final long startTimeNs = System.nanoTime();
|
| final float[] texMatrix;
|
|
|