Camera: fix camera status after HAL crash

When camera HAL dies and cameraserver is still alive, make sure
we update camera status after HAL re-register itself.

Test: kill hal process and run camera app, CTS
Bug: 63058983
Merged-In: Iba7e6cbebb674994c905f7feb1776acc479b612f
Change-Id: Iba7e6cbebb674994c905f7feb1776acc479b612f
gugelfrei
Yin-Chia Yeh 7 years ago committed by Eino-Ville Talvala
parent 0b8d9dd129
commit 91b6bc3187

@ -231,14 +231,17 @@ status_t CameraService::enumerateProviders() {
for (auto& cameraId : mCameraProviderManager->getCameraDeviceIds()) {
String8 id8 = String8(cameraId.c_str());
bool cameraFound = false;
{
Mutex::Autolock lock(mCameraStatesLock);
auto iter = mCameraStates.find(id8);
if (iter != mCameraStates.end()) {
continue;
cameraFound = true;
}
}
if (!cameraFound) {
hardware::camera::common::V1_0::CameraResourceCost cost;
res = mCameraProviderManager->getResourceCost(cameraId, &cost);
if (res != OK) {
@ -255,6 +258,7 @@ status_t CameraService::enumerateProviders() {
mCameraStates.emplace(id8,
std::make_shared<CameraState>(id8, cost.resourceCost, conflicting));
}
}
onDeviceStatusChanged(id8, CameraDeviceStatus::PRESENT);

Loading…
Cancel
Save