Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(672)

Unified Diff: webrtc/api/android/java/src/org/webrtc/SurfaceViewRenderer.java

Issue 2483143002: Make releaseEglSurface in EglRenderer asynchronous. (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698