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

Unified Diff: talk/app/webrtc/java/src/org/webrtc/VideoRenderer.java

Issue 1273803002: Android VideoRendererGui: Add dispose function (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 5 years, 4 months 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: talk/app/webrtc/java/src/org/webrtc/VideoRenderer.java
diff --git a/talk/app/webrtc/java/src/org/webrtc/VideoRenderer.java b/talk/app/webrtc/java/src/org/webrtc/VideoRenderer.java
index 401640b463bfdfff7f832ebf75ce73100a0b40fb..596d3779a9389e4c11ce1cb288545d09d443e22f 100644
--- a/talk/app/webrtc/java/src/org/webrtc/VideoRenderer.java
+++ b/talk/app/webrtc/java/src/org/webrtc/VideoRenderer.java
@@ -177,9 +177,9 @@ public class VideoRenderer {
}
// |this| either wraps a native (GUI) renderer or a client-supplied Callbacks
- // (Java) implementation; so exactly one of these will be non-0/null.
- final long nativeVideoRenderer;
- private final Callbacks callbacks;
+ // (Java) implementation; this is indicated by |isWrappedVideoRenderer|.
+ long nativeVideoRenderer;
+ private final boolean isWrappedVideoRenderer;
public static VideoRenderer createGui(int x, int y) {
long nativeVideoRenderer = nativeCreateGuiVideoRenderer(x, y);
@@ -191,20 +191,25 @@ public class VideoRenderer {
public VideoRenderer(Callbacks callbacks) {
nativeVideoRenderer = nativeWrapVideoRenderer(callbacks);
- this.callbacks = callbacks;
+ isWrappedVideoRenderer = true;
}
private VideoRenderer(long nativeVideoRenderer) {
this.nativeVideoRenderer = nativeVideoRenderer;
- callbacks = null;
+ isWrappedVideoRenderer = false;
}
public void dispose() {
- if (callbacks == null) {
+ if (nativeVideoRenderer == 0) {
+ // Already disposed.
+ return;
+ }
+ if (!isWrappedVideoRenderer) {
freeGuiVideoRenderer(nativeVideoRenderer);
} else {
freeWrappedVideoRenderer(nativeVideoRenderer);
}
+ nativeVideoRenderer = 0;
}
private static native long nativeCreateGuiVideoRenderer(int x, int y);

Powered by Google App Engine
This is Rietveld 408576698