Camera: fix number of cameras logic
Test: no Camera CTS regression
Bug: 36289841
Change-Id: I7218347a0f2e8184dd43a9f35acc0554b761e15e
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.cpp b/services/camera/libcameraservice/common/CameraProviderManager.cpp
index f8b2908..562e6c9 100644
--- a/services/camera/libcameraservice/common/CameraProviderManager.cpp
+++ b/services/camera/libcameraservice/common/CameraProviderManager.cpp
@@ -22,6 +22,7 @@
#include <chrono>
#include <inttypes.h>
+#include <set>
#include <hidl/ServiceManagement.h>
namespace android {
@@ -75,7 +76,7 @@
std::lock_guard<std::mutex> lock(mInterfaceMutex);
int count = 0;
for (auto& provider : mProviders) {
- count += provider->mDevices.size();
+ count += provider->mUniqueDeviceCount;
}
return count;
}
@@ -85,7 +86,7 @@
int count = 0;
for (auto& provider : mProviders) {
if (kStandardProviderTypes.find(provider->getType()) != std::string::npos) {
- count += provider->mDevices.size();
+ count += provider->mUniqueDeviceCount;
}
}
return count;
@@ -471,6 +472,12 @@
}
}
+ std::set<std::string> uniqueCameraIds;
+ for (auto& device : mDevices) {
+ uniqueCameraIds.insert(device->mId);
+ }
+ mUniqueDeviceCount = uniqueCameraIds.size();
+
ALOGI("Camera provider %s ready with %zu camera devices",
mProviderName.c_str(), mDevices.size());