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 428198d9ecf9cdc480b8126652165044684f8db7..9fee0d00399d8ace934eb7f7cc08f07892783cd3 100644 |
--- a/webrtc/api/android/java/src/org/webrtc/SurfaceViewRenderer.java |
+++ b/webrtc/api/android/java/src/org/webrtc/SurfaceViewRenderer.java |
@@ -16,6 +16,7 @@ import android.graphics.Point; |
import android.util.AttributeSet; |
import android.view.SurfaceHolder; |
import android.view.SurfaceView; |
+import java.util.concurrent.CountDownLatch; |
/** |
* Implements org.webrtc.VideoRenderer.Callbacks by displaying the video stream on a SurfaceView. |
@@ -159,7 +160,14 @@ public class SurfaceViewRenderer |
@Override |
public void surfaceDestroyed(SurfaceHolder holder) { |
ThreadUtils.checkIsOnMainThread(); |
- eglRenderer.releaseEglSurface(); |
+ final CountDownLatch completionLatch = new CountDownLatch(1); |
+ eglRenderer.releaseEglSurface(new Runnable() { |
+ @Override |
+ public void run() { |
+ completionLatch.countDown(); |
+ } |
+ }); |
+ ThreadUtils.awaitUninterruptibly(completionLatch); |
} |
@Override |