summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Avichal Rakesh <arakesh@google.com> 2024-02-28 20:54:08 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-02-28 20:54:08 +0000
commitd875adc7d7e6fd14d85cdba730f1d554b67b55f8 (patch)
treea792c44ff2c086f499f043f01f729bfff57914a5
parent60a7bd4aac8e3cf8ae17b3e37107dcd8449a385a (diff)
parente42da6e1ecfa3bb4c316a75927aaa54a64714229 (diff)
Merge "Camera2: Optimize CameraDeviceSetup query during openCamera" into main
-rw-r--r--core/java/android/hardware/camera2/CameraManager.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java
index 04e3dab55939..7119730c6984 100644
--- a/core/java/android/hardware/camera2/CameraManager.java
+++ b/core/java/android/hardware/camera2/CameraManager.java
@@ -772,6 +772,16 @@ public final class CameraManager {
"CameraDeviceSetup is not supported for Camera ID: " + cameraId);
}
+ return getCameraDeviceSetupUnsafe(cameraId);
+
+ }
+
+ /**
+ * Creates and returns a {@link CameraDeviceSetup} instance without any error checking. To
+ * be used (carefully) by callers who are sure that CameraDeviceSetup instance can be legally
+ * created and don't want to pay the latency cost of calling {@link #getCameraDeviceSetup}.
+ */
+ private CameraDevice.CameraDeviceSetup getCameraDeviceSetupUnsafe(@NonNull String cameraId) {
return new CameraDeviceSetupImpl(cameraId, /*cameraManager=*/ this, mContext);
}
@@ -857,8 +867,9 @@ public final class CameraManager {
ICameraDeviceUser cameraUser = null;
CameraDevice.CameraDeviceSetup cameraDeviceSetup = null;
- if (Flags.cameraDeviceSetup() && isCameraDeviceSetupSupported(cameraId)) {
- cameraDeviceSetup = getCameraDeviceSetup(cameraId);
+ if (Flags.cameraDeviceSetup()
+ && CameraDeviceSetupImpl.isCameraDeviceSetupSupported(characteristics)) {
+ cameraDeviceSetup = getCameraDeviceSetupUnsafe(cameraId);
}
android.hardware.camera2.impl.CameraDeviceImpl deviceImpl =