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
Bug: 111963599

Change-Id: I327744e102cc75929ebcdf51661f9f4ec7f3acf9
(cherry picked from commit 975a39e906)
gugelfrei
Shuzhen Wang 6 years ago committed by Po-Chien Hsueh
parent 491926c8c6
commit 258fa2669e

@ -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