Loading services/camera/libcameraservice/device3/Camera3Device.cpp +32 −11 Original line number Diff line number Diff line Loading @@ -211,8 +211,7 @@ status_t Camera3Device::initialize(sp<CameraProviderManager> manager) { if (!requestQueueRet.isOk()) { ALOGE("Transaction error when getting request metadata fmq: %s, not use it", requestQueueRet.description().c_str()); queue = nullptr; // Don't use the queue onwards. return DEAD_OBJECT; } auto resultQueueRet = session->getCaptureResultMetadataQueue( [&queue = mResultMetadataQueue](const auto& descriptor) { Loading @@ -226,8 +225,7 @@ status_t Camera3Device::initialize(sp<CameraProviderManager> manager) { if (!resultQueueRet.isOk()) { ALOGE("Transaction error when getting result metadata queue from camera session: %s", resultQueueRet.description().c_str()); mResultMetadataQueue = nullptr; // Don't use the queue onwards. return DEAD_OBJECT; } mInterface = std::make_unique<HalInterface>(session, queue); Loading Loading @@ -3013,7 +3011,7 @@ status_t Camera3Device::HalInterface::constructDefaultRequestSettings( // Unknown template ID return BAD_VALUE; } mHidlSession->constructDefaultRequestSettings(id, auto err = mHidlSession->constructDefaultRequestSettings(id, [&status, &requestTemplate] (common::V1_0::Status s, const device::V3_2::CameraMetadata& request) { status = s; Loading @@ -3035,8 +3033,13 @@ status_t Camera3Device::HalInterface::constructDefaultRequestSettings( } } }); if (!err.isOk()) { ALOGE("%s: Transaction error: %s", __FUNCTION__, err.description().c_str()); res = DEAD_OBJECT; } else { res = CameraProviderManager::mapToStatusT(status); } } return res; } Loading Loading @@ -3109,12 +3112,17 @@ status_t Camera3Device::HalInterface::configureStreams(camera3_stream_configurat HalStreamConfiguration finalConfiguration; common::V1_0::Status status; mHidlSession->configureStreams(requestedConfiguration, auto err = mHidlSession->configureStreams(requestedConfiguration, [&status, &finalConfiguration] (common::V1_0::Status s, const HalStreamConfiguration& halConfiguration) { finalConfiguration = halConfiguration; status = s; }); if (!err.isOk()) { ALOGE("%s: Transaction error: %s", __FUNCTION__, err.description().c_str()); return DEAD_OBJECT; } if (status != common::V1_0::Status::OK ) { return CameraProviderManager::mapToStatusT(status); } Loading Loading @@ -3300,12 +3308,15 @@ status_t Camera3Device::HalInterface::processBatchCaptureRequests( captureRequest->fmqSettingsSize = 0u; } } mHidlSession->processCaptureRequest(captureRequests, cachesToRemove, auto err = mHidlSession->processCaptureRequest(captureRequests, cachesToRemove, [&status, &numRequestProcessed] (auto s, uint32_t n) { status = s; *numRequestProcessed = n; }); if (!err.isOk()) { ALOGE("%s: Transaction error: %s", __FUNCTION__, err.description().c_str()); return DEAD_OBJECT; } if (status == common::V1_0::Status::OK && *numRequestProcessed != batchSize) { ALOGE("%s: processCaptureRequest returns OK but processed %d/%zu requests", __FUNCTION__, *numRequestProcessed, batchSize); Loading Loading @@ -3343,7 +3354,13 @@ status_t Camera3Device::HalInterface::flush() { if (mHal3Device != nullptr) { res = mHal3Device->ops->flush(mHal3Device); } else { res = CameraProviderManager::mapToStatusT(mHidlSession->flush()); auto err = mHidlSession->flush(); if (!err.isOk()) { ALOGE("%s: Transaction error: %s", __FUNCTION__, err.description().c_str()); res = DEAD_OBJECT; } else { res = CameraProviderManager::mapToStatusT(err); } } return res; } Loading @@ -3369,7 +3386,11 @@ status_t Camera3Device::HalInterface::close() { if (mHal3Device != nullptr) { mHal3Device->common.close(&mHal3Device->common); } else { mHidlSession->close(); auto err = mHidlSession->close(); // Interface will be dead shortly anyway, so don't log errors if (!err.isOk()) { res = DEAD_OBJECT; } } return res; } Loading Loading
services/camera/libcameraservice/device3/Camera3Device.cpp +32 −11 Original line number Diff line number Diff line Loading @@ -211,8 +211,7 @@ status_t Camera3Device::initialize(sp<CameraProviderManager> manager) { if (!requestQueueRet.isOk()) { ALOGE("Transaction error when getting request metadata fmq: %s, not use it", requestQueueRet.description().c_str()); queue = nullptr; // Don't use the queue onwards. return DEAD_OBJECT; } auto resultQueueRet = session->getCaptureResultMetadataQueue( [&queue = mResultMetadataQueue](const auto& descriptor) { Loading @@ -226,8 +225,7 @@ status_t Camera3Device::initialize(sp<CameraProviderManager> manager) { if (!resultQueueRet.isOk()) { ALOGE("Transaction error when getting result metadata queue from camera session: %s", resultQueueRet.description().c_str()); mResultMetadataQueue = nullptr; // Don't use the queue onwards. return DEAD_OBJECT; } mInterface = std::make_unique<HalInterface>(session, queue); Loading Loading @@ -3013,7 +3011,7 @@ status_t Camera3Device::HalInterface::constructDefaultRequestSettings( // Unknown template ID return BAD_VALUE; } mHidlSession->constructDefaultRequestSettings(id, auto err = mHidlSession->constructDefaultRequestSettings(id, [&status, &requestTemplate] (common::V1_0::Status s, const device::V3_2::CameraMetadata& request) { status = s; Loading @@ -3035,8 +3033,13 @@ status_t Camera3Device::HalInterface::constructDefaultRequestSettings( } } }); if (!err.isOk()) { ALOGE("%s: Transaction error: %s", __FUNCTION__, err.description().c_str()); res = DEAD_OBJECT; } else { res = CameraProviderManager::mapToStatusT(status); } } return res; } Loading Loading @@ -3109,12 +3112,17 @@ status_t Camera3Device::HalInterface::configureStreams(camera3_stream_configurat HalStreamConfiguration finalConfiguration; common::V1_0::Status status; mHidlSession->configureStreams(requestedConfiguration, auto err = mHidlSession->configureStreams(requestedConfiguration, [&status, &finalConfiguration] (common::V1_0::Status s, const HalStreamConfiguration& halConfiguration) { finalConfiguration = halConfiguration; status = s; }); if (!err.isOk()) { ALOGE("%s: Transaction error: %s", __FUNCTION__, err.description().c_str()); return DEAD_OBJECT; } if (status != common::V1_0::Status::OK ) { return CameraProviderManager::mapToStatusT(status); } Loading Loading @@ -3300,12 +3308,15 @@ status_t Camera3Device::HalInterface::processBatchCaptureRequests( captureRequest->fmqSettingsSize = 0u; } } mHidlSession->processCaptureRequest(captureRequests, cachesToRemove, auto err = mHidlSession->processCaptureRequest(captureRequests, cachesToRemove, [&status, &numRequestProcessed] (auto s, uint32_t n) { status = s; *numRequestProcessed = n; }); if (!err.isOk()) { ALOGE("%s: Transaction error: %s", __FUNCTION__, err.description().c_str()); return DEAD_OBJECT; } if (status == common::V1_0::Status::OK && *numRequestProcessed != batchSize) { ALOGE("%s: processCaptureRequest returns OK but processed %d/%zu requests", __FUNCTION__, *numRequestProcessed, batchSize); Loading Loading @@ -3343,7 +3354,13 @@ status_t Camera3Device::HalInterface::flush() { if (mHal3Device != nullptr) { res = mHal3Device->ops->flush(mHal3Device); } else { res = CameraProviderManager::mapToStatusT(mHidlSession->flush()); auto err = mHidlSession->flush(); if (!err.isOk()) { ALOGE("%s: Transaction error: %s", __FUNCTION__, err.description().c_str()); res = DEAD_OBJECT; } else { res = CameraProviderManager::mapToStatusT(err); } } return res; } Loading @@ -3369,7 +3386,11 @@ status_t Camera3Device::HalInterface::close() { if (mHal3Device != nullptr) { mHal3Device->common.close(&mHal3Device->common); } else { mHidlSession->close(); auto err = mHidlSession->close(); // Interface will be dead shortly anyway, so don't log errors if (!err.isOk()) { res = DEAD_OBJECT; } } return res; } Loading