Camera: Cache logical camera related info
Refactor code to cache logical camera related info, such that we don't
need to query the camera characteristics multiple times.
Test: Camera CTS
Bug: 79523700
Change-Id: I01733fc9165ec88aadc655491a025627fd622857
diff --git a/services/camera/libcameraservice/api2/CameraDeviceClient.cpp b/services/camera/libcameraservice/api2/CameraDeviceClient.cpp
index 84428c2..b9e07f3 100644
--- a/services/camera/libcameraservice/api2/CameraDeviceClient.cpp
+++ b/services/camera/libcameraservice/api2/CameraDeviceClient.cpp
@@ -122,6 +122,7 @@
physicalKeysEntry.data.i32 + physicalKeysEntry.count);
}
+ mProviderManager = providerPtr;
return OK;
}
@@ -626,12 +627,11 @@
if (physicalCameraId.size() > 0) {
std::vector<std::string> physicalCameraIds;
- std::string physicalId(physicalCameraId.string());
bool logicalCamera =
- CameraProviderManager::isLogicalCamera(mDevice->info(), &physicalCameraIds);
+ mProviderManager->isLogicalCamera(mCameraIdStr.string(), &physicalCameraIds);
if (!logicalCamera ||
- std::find(physicalCameraIds.begin(), physicalCameraIds.end(), physicalId) ==
- physicalCameraIds.end()) {
+ std::find(physicalCameraIds.begin(), physicalCameraIds.end(),
+ physicalCameraId.string()) == physicalCameraIds.end()) {
String8 msg = String8::format("Camera %s: Camera doesn't support physicalCameraId %s.",
mCameraIdStr.string(), physicalCameraId.string());
ALOGE("%s: %s", __FUNCTION__, msg.string());