Index: webrtc/api/android/java/src/org/webrtc/SurfaceViewRenderer.java |
diff --git a/webrtc/api/android/java/src/org/webrtc/SurfaceViewRenderer.java b/webrtc/api/android/java/src/org/webrtc/SurfaceViewRenderer.java |
index 4b79fe49bf99d22d7fdc4155f971c1a01afc275f..6c8af2488a6fd6738c6a9b929c3a8ff9f4e4703c 100644 |
--- a/webrtc/api/android/java/src/org/webrtc/SurfaceViewRenderer.java |
+++ b/webrtc/api/android/java/src/org/webrtc/SurfaceViewRenderer.java |
@@ -171,9 +171,10 @@ public class SurfaceViewRenderer extends SurfaceView |
// |renderThreadHandler| is only created after |eglBase| is created in init(), so the |
// following code will only execute if eglBase != null. |
runOnRenderThread(new Runnable() { |
- @Override public void run() { |
+ @Override |
+ public void run() { |
synchronized (layoutLock) { |
- if (isSurfaceCreated && !eglBase.hasSurface()) { |
+ if (eglBase != null && isSurfaceCreated && !eglBase.hasSurface()) { |
eglBase.createSurface(getHolder().getSurface()); |
eglBase.makeCurrent(); |
// Necessary for YUV frames with odd width. |
@@ -372,8 +373,12 @@ public class SurfaceViewRenderer extends SurfaceView |
surfaceSize.y = 0; |
} |
runOnRenderThread(new Runnable() { |
- @Override public void run() { |
- eglBase.releaseSurface(); |
+ @Override |
+ public void run() { |
+ if (eglBase != null) { |
+ eglBase.detachCurrent(); |
+ eglBase.releaseSurface(); |
+ } |
} |
}); |
} |