diff options
| author | 2024-02-28 20:54:08 +0000 | |
|---|---|---|
| committer | 2024-02-28 20:54:08 +0000 | |
| commit | d875adc7d7e6fd14d85cdba730f1d554b67b55f8 (patch) | |
| tree | a792c44ff2c086f499f043f01f729bfff57914a5 | |
| parent | 60a7bd4aac8e3cf8ae17b3e37107dcd8449a385a (diff) | |
| parent | e42da6e1ecfa3bb4c316a75927aaa54a64714229 (diff) | |
Merge "Camera2: Optimize CameraDeviceSetup query during openCamera" into main
| -rw-r--r-- | core/java/android/hardware/camera2/CameraManager.java | 15 |
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 = |