Index: talk/app/webrtc/java/android/org/webrtc/VideoCapturerAndroid.java |
diff --git a/talk/app/webrtc/java/android/org/webrtc/VideoCapturerAndroid.java b/talk/app/webrtc/java/android/org/webrtc/VideoCapturerAndroid.java |
index 18eb6e43fa8a5b0d194cd3944be1089b966c863d..eff539044ca022c57bfbe085cce1376aa159a547 100644 |
--- a/talk/app/webrtc/java/android/org/webrtc/VideoCapturerAndroid.java |
+++ b/talk/app/webrtc/java/android/org/webrtc/VideoCapturerAndroid.java |
@@ -76,6 +76,8 @@ public class VideoCapturerAndroid extends VideoCapturer implements PreviewCallba |
private Camera camera; // Only non-null while capturing. |
private CameraThread cameraThread; |
private Handler cameraThreadHandler; |
+ // |cameraSurfaceTexture| is used with setPreviewTexture. Must be a member, see issue webrtc:5021. |
+ private SurfaceTexture cameraSurfaceTexture; |
magjed_webrtc
2015/09/21 11:55:32
This is very strange. I hope we are not missing a
|
private Context applicationContext; |
private int id; |
private Camera.CameraInfo info; |
@@ -321,9 +323,8 @@ public class VideoCapturerAndroid extends VideoCapturer implements PreviewCallba |
// and never call updateTexImage on it. |
try { |
cameraGlTexture = GlUtil.generateTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES); |
- SurfaceTexture cameraSurfaceTexture = new SurfaceTexture(cameraGlTexture); |
+ cameraSurfaceTexture = new SurfaceTexture(cameraGlTexture); |
cameraSurfaceTexture.setOnFrameAvailableListener(null); |
- |
camera.setPreviewTexture(cameraSurfaceTexture); |
} catch (IOException e) { |
Logging.e(TAG, "setPreviewTexture failed", error); |
@@ -461,6 +462,7 @@ public class VideoCapturerAndroid extends VideoCapturer implements PreviewCallba |
Logging.d(TAG, "Release camera."); |
camera.release(); |
camera = null; |
+ cameraSurfaceTexture = null; |
} |
private void switchCameraOnCameraThread(Runnable switchDoneEvent) { |