summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPresubmit Automerger Backend <android-build-presubmit-automerger-backend@system.gserviceaccount.com>2022-02-16 13:26:35 +0000
committerPresubmit Automerger Backend <android-build-presubmit-automerger-backend@system.gserviceaccount.com>2022-02-16 13:26:35 +0000
commitfbf445d2f82d2c28281691479ce07a3a7de286d4 (patch)
treef7aff867340ad031a97b1fe1f27b63ad19121b77
parentbf952ac1659aa8281e04b8bc4432f62ae7a010dc (diff)
parent379051d257bf34a0982d44ab28e90666140a278b (diff)
downloadcamera-fbf445d2f82d2c28281691479ce07a3a7de286d4.tar.gz
[automerge] camera: handle hidl transaction error [DO NOT MERGE] 2p: 379051d257
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/camera/+/16888213 Bug: 218294681 Bug: 208890992 Change-Id: I5d517f47f3cad6c28e419131f2b7043ecb277f1d
-rw-r--r--common/hal/hidl_service/hidl_camera_device_session.cc8
-rw-r--r--common/hal/hidl_service/hidl_camera_provider.cc14
2 files changed, 19 insertions, 3 deletions
diff --git a/common/hal/hidl_service/hidl_camera_device_session.cc b/common/hal/hidl_service/hidl_camera_device_session.cc
index d0dc010..3af335e 100644
--- a/common/hal/hidl_service/hidl_camera_device_session.cc
+++ b/common/hal/hidl_service/hidl_camera_device_session.cc
@@ -304,7 +304,13 @@ void HidlCameraDeviceSession::ReturnStreamBuffers(
}
}
- hidl_device_callback_->returnStreamBuffers(hidl_return_buffers);
+ auto hidl_res =
+ hidl_device_callback_->returnStreamBuffers(hidl_return_buffers);
+ if (!hidl_res.isOk()) {
+ ALOGE("%s: return stream buffers transaction failed: %s.", __FUNCTION__,
+ hidl_res.description().c_str());
+ return;
+ }
}
status_t HidlCameraDeviceSession::InitializeBufferMapper() {
diff --git a/common/hal/hidl_service/hidl_camera_provider.cc b/common/hal/hidl_service/hidl_camera_provider.cc
index f9fdc43..528d23d 100644
--- a/common/hal/hidl_service/hidl_camera_provider.cc
+++ b/common/hal/hidl_service/hidl_camera_provider.cc
@@ -83,11 +83,16 @@ status_t HidlCameraProvider::Initialize() {
}
std::unique_lock<std::mutex> lock(callbacks_lock_);
- callbacks_->cameraDeviceStatusChange(
+ auto cb_status = callbacks_->cameraDeviceStatusChange(
"device@" +
device::V3_7::implementation::HidlCameraDevice::kDeviceVersion +
"/" + kProviderName + "/" + camera_id,
hidl_camera_device_status);
+ if (!cb_status.isOk()) {
+ ALOGE("%s: device status change transaction error: %s",
+ __FUNCTION__, cb_status.description().c_str());
+ return;
+ }
}),
.physical_camera_device_status_change = google_camera_hal::
PhysicalCameraDeviceStatusChangeFunc([this](
@@ -148,11 +153,16 @@ status_t HidlCameraProvider::Initialize() {
}
std::unique_lock<std::mutex> lock(callbacks_lock_);
- callbacks_->torchModeStatusChange(
+ auto cb_status = callbacks_->torchModeStatusChange(
"device@" +
device::V3_7::implementation::HidlCameraDevice::kDeviceVersion +
"/" + kProviderName + "/" + camera_id,
hidl_torch_status);
+ if (!cb_status.isOk()) {
+ ALOGE("%s: torch status change transaction error: %s",
+ __FUNCTION__, cb_status.description().c_str());
+ return;
+ }
}),
};