diff --git a/webrtc/modules/video_capture/android/java/org/webrtc/videoengine/VideoCaptureAndroid.java b/webrtc/modules/video_capture/android/java/org/webrtc/videoengine/VideoCaptureAndroid.java index 7baae5673d..eaf195fe27 100644 --- a/webrtc/modules/video_capture/android/java/org/webrtc/videoengine/VideoCaptureAndroid.java +++ b/webrtc/modules/video_capture/android/java/org/webrtc/videoengine/VideoCaptureAndroid.java @@ -215,6 +215,7 @@ public class VideoCaptureAndroid implements PreviewCallback, Callback { int width = 0; int height = 0; int framerate = 0; + boolean wasCaptureRunning = isCaptureRunning; if (isCaptureRunning) { width = mCaptureWidth; @@ -237,7 +238,7 @@ public class VideoCaptureAndroid implements PreviewCallback, Callback { } camera.setDisplayOrientation(resultRotation); - if (isCaptureRunning) { + if (wasCaptureRunning) { StartCapture(width, height, framerate); } previewBufferLock.unlock(); @@ -264,7 +265,9 @@ public class VideoCaptureAndroid implements PreviewCallback, Callback { Log.d(TAG, "VideoCaptureAndroid::surfaceDestroyed"); captureLock.lock(); try { - camera.setPreviewDisplay(null); + if (camera != null) { + camera.setPreviewDisplay(null); + } } catch (IOException e) { Log.e(TAG, "Failed to clear preview surface!", e); }