From 210dd5c361e2e11a465e6de6e1f701c451c9bd65 Mon Sep 17 00:00:00 2001 From: Magnus Jedvert Date: Thu, 12 May 2016 12:40:28 +0200 Subject: [PATCH] VideoCapturerAndroid: Ignore erroneous startCaptureOnCameraThread calls instead of crashing Fix a bug where startCaptureOnCameraThread() is called while the camera is already successfully running. It may happen in the scenario when startCapture() is called, but startCaptureOnCameraThread() fails and posts a retry, then stopCapture() is called and removeCallbacksAndMessages() fails to remove the pending retry, and then startCapture() is called successfully. BUG=b/28181364 R=glaznev@webrtc.org Review URL: https://codereview.webrtc.org/1967053002 . Cr-Commit-Position: refs/heads/master@{#12697} --- webrtc/api/java/android/org/webrtc/VideoCapturerAndroid.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/webrtc/api/java/android/org/webrtc/VideoCapturerAndroid.java b/webrtc/api/java/android/org/webrtc/VideoCapturerAndroid.java index 4e7f5f4c06..78d042df50 100644 --- a/webrtc/api/java/android/org/webrtc/VideoCapturerAndroid.java +++ b/webrtc/api/java/android/org/webrtc/VideoCapturerAndroid.java @@ -410,7 +410,8 @@ public class VideoCapturerAndroid implements Throwable error = null; checkIsOnCameraThread(); if (camera != null) { - throw new RuntimeException("Camera has already been started."); + Logging.e(TAG, "startCaptureOnCameraThread: Camera has already been started."); + return; } this.applicationContext = applicationContext; this.frameObserver = frameObserver;