Do not report camera disconnected event if Android camera is closing.

Ignore CAMERA_ERROR_EVICTED error if camera is about to be closed.
This is valid use case when other app is opening camera while
WebRTC Android app is trying to close it.

BUG=b/34112992

Review-Url: https://codereview.webrtc.org/2627153002
Cr-Commit-Position: refs/heads/master@{#16039}
This commit is contained in:
glaznev 2017-01-12 13:05:47 -08:00 committed by Commit bot
parent e1082cac69
commit 21b6cce0c4

View File

@ -96,15 +96,20 @@ public class VideoCapturerAndroid
@Override
public void onError(int error, android.hardware.Camera camera) {
String errorMessage;
boolean cameraRunning = isCameraRunning.get();
if (error == android.hardware.Camera.CAMERA_ERROR_SERVER_DIED) {
errorMessage = "Camera server died!";
} else {
errorMessage = "Camera error: " + error;
}
Logging.e(TAG, errorMessage);
Logging.e(TAG, errorMessage + ". Camera running: " + cameraRunning);
if (eventsHandler != null) {
if (error == android.hardware.Camera.CAMERA_ERROR_EVICTED) {
eventsHandler.onCameraDisconnected();
if (cameraRunning) {
eventsHandler.onCameraDisconnected();
} else {
Logging.d(TAG, "Ignore CAMERA_ERROR_EVICTED for closed camera.");
}
} else {
eventsHandler.onCameraError(errorMessage);
}