Camera: Handle duplicate camera Id due to openLegacy support

When HAL supports openLegacy, same camera id can be added more than
once.

Because we now use vector to store API1 compatible camera ids, make
sure no duplicate strings are added.

Test: Vendor camera app using openLegacy, Camera CTS
Bug: 110815837
Change-Id: I327744e102cc75929ebcdf51661f9f4ec7f3acf9
gugelfrei
Shuzhen Wang 6 years ago
parent 5101a25767
commit 975a39e906

@ -631,7 +631,12 @@ status_t CameraProviderManager::ProviderInfo::addDevice(const std::string& name,
mUniqueCameraIds.insert(id);
if (isAPI1Compatible) {
mUniqueAPI1CompatibleCameraIds.push_back(id);
// addDevice can be called more than once for the same camera id if HAL
// supports openLegacy.
if (std::find(mUniqueAPI1CompatibleCameraIds.begin(), mUniqueAPI1CompatibleCameraIds.end(),
id) == mUniqueAPI1CompatibleCameraIds.end()) {
mUniqueAPI1CompatibleCameraIds.push_back(id);
}
}
if (parsedId != nullptr) {

Loading…
Cancel
Save