Do not include hidden secure cameras in camera1: getNumberOfCameras

am: cf93540965

Change-Id: Ieb6594b60f1c3f1dee3fec91cabd589f029b93f1
gugelfrei
Jayant Chowdhary 5 years ago committed by android-build-merger
commit 665814684e

@ -108,7 +108,13 @@ int CameraProviderManager::getCameraCount() const {
std::lock_guard<std::mutex> lock(mInterfaceMutex);
int count = 0;
for (auto& provider : mProviders) {
count += provider->mUniqueCameraIds.size();
for (auto& id : provider->mUniqueCameraIds) {
// Hidden secure camera ids are not to be exposed to camera1 api.
if (isPublicallyHiddenSecureCameraLocked(id)) {
continue;
}
count++;
}
}
return count;
}
@ -134,7 +140,11 @@ std::vector<std::string> CameraProviderManager::getAPI1CompatibleCameraDeviceIds
// for each camera facing, only take the first id advertised by HAL in
// all [logical, physical1, physical2, ...] id combos, and filter out the rest.
filterLogicalCameraIdsLocked(providerDeviceIds);
// Hidden secure camera ids are not to be exposed to camera1 api.
providerDeviceIds.erase(std::remove_if(providerDeviceIds.begin(), providerDeviceIds.end(),
[this](const std::string& s) {
return this->isPublicallyHiddenSecureCameraLocked(s);}),
providerDeviceIds.end());
deviceIds.insert(deviceIds.end(), providerDeviceIds.begin(), providerDeviceIds.end());
}
@ -1046,9 +1056,12 @@ bool CameraProviderManager::isLogicalCamera(const std::string& id,
return deviceInfo->mIsLogicalCamera;
}
bool CameraProviderManager::isPublicallyHiddenSecureCamera(const std::string& id) {
bool CameraProviderManager::isPublicallyHiddenSecureCamera(const std::string& id) const {
std::lock_guard<std::mutex> lock(mInterfaceMutex);
return isPublicallyHiddenSecureCameraLocked(id);
}
bool CameraProviderManager::isPublicallyHiddenSecureCameraLocked(const std::string& id) const {
auto deviceInfo = findDeviceInfoLocked(id);
if (deviceInfo == nullptr) {
return false;

@ -272,7 +272,7 @@ public:
*/
bool isLogicalCamera(const std::string& id, std::vector<std::string>* physicalCameraIds);
bool isPublicallyHiddenSecureCamera(const std::string& id);
bool isPublicallyHiddenSecureCamera(const std::string& id) const;
bool isHiddenPhysicalCamera(const std::string& cameraId);
static const float kDepthARTolerance;
@ -594,6 +594,9 @@ private:
status_t getCameraCharacteristicsLocked(const std::string &id,
CameraMetadata* characteristics) const;
bool isPublicallyHiddenSecureCameraLocked(const std::string& id) const;
void filterLogicalCameraIdsLocked(std::vector<std::string>& deviceIds) const;
};

Loading…
Cancel
Save