Camera: Use fully qualified name for camera eviction logic

The conflicting device names are fully qualified, but the current
camera id isn't. Make them consistent.

Test: Camera CTS
Bug: 78277539
Change-Id: I1baf8d39b95bb475ad6a25f2eae7d409efe5d239
gugelfrei
Shuzhen Wang 6 years ago
parent 56aad0ab6a
commit 9e3055dd2d

@ -1055,8 +1055,16 @@ status_t CameraService::handleEvictionsLocked(const String8& cameraId, int clien
return BAD_VALUE;
}
std::string cameraName;
err = mCameraProviderManager->getCameraDeviceName(
std::string(cameraId.c_str()), cameraName);
if (err != OK) {
ALOGE("%s: Failed to find camera device name for id %s: %d",
__FUNCTION__, cameraId.c_str(), err);
return err;
}
// Make descriptor for incoming client
clientDescriptor = CameraClientManager::makeClientDescriptor(cameraId,
clientDescriptor = CameraClientManager::makeClientDescriptor(String8(cameraName.c_str()),
sp<BasicClient>{nullptr}, static_cast<int32_t>(state->getCost()),
state->getConflicting(),
priorityScores[priorityScores.size() - 1],

@ -391,6 +391,16 @@ metadata_vendor_id_t CameraProviderManager::getProviderTagIdLocked(
return ret;
}
status_t CameraProviderManager::getCameraDeviceName(const std::string& id, std::string& name) {
std::lock_guard<std::mutex> lock(mInterfaceMutex);
auto deviceInfo = findDeviceInfoLocked(id);
if (deviceInfo == nullptr) return NAME_NOT_FOUND;
name = deviceInfo->mName;
return OK;
}
status_t CameraProviderManager::addProviderLocked(const std::string& newProvider, bool expected) {
for (const auto& providerInfo : mProviders) {
if (providerInfo->mProviderName == newProvider) {

@ -230,6 +230,11 @@ public:
hardware::hidl_version minVersion = hardware::hidl_version{0,0},
hardware::hidl_version maxVersion = hardware::hidl_version{1000,0}) const;
/*
* Get device name for a particular camera Id
*/
status_t getCameraDeviceName(const std::string& id, std::string& name);
private:
// All private members, unless otherwise noted, expect mInterfaceMutex to be locked before use
mutable std::mutex mInterfaceMutex;

Loading…
Cancel
Save