summaryrefslogtreecommitdiff
path: root/devices
diff options
context:
space:
mode:
Diffstat (limited to 'devices')
-rw-r--r--devices/EmulatedCamera/hwl/Base.h4
-rw-r--r--devices/EmulatedCamera/hwl/EmulatedRequestProcessor.cpp6
2 files changed, 9 insertions, 1 deletions
diff --git a/devices/EmulatedCamera/hwl/Base.h b/devices/EmulatedCamera/hwl/Base.h
index f0701de..543f73f 100644
--- a/devices/EmulatedCamera/hwl/Base.h
+++ b/devices/EmulatedCamera/hwl/Base.h
@@ -57,6 +57,7 @@ struct SensorBuffer {
HwlPipelineCallback callback;
int acquire_fence_fd;
bool is_input;
+ bool is_failed_request;
union Plane {
SinglePlane img;
@@ -73,6 +74,7 @@ struct SensorBuffer {
dataSpace(HAL_DATASPACE_UNKNOWN),
acquire_fence_fd(-1),
is_input(false),
+ is_failed_request(false),
plane{} {
}
@@ -104,7 +106,7 @@ struct std::default_delete<android::SensorBuffer> {
}
if ((buffer->stream_buffer.status != BufferStatus::kOk) &&
- (buffer->callback.notify != nullptr)) {
+ (buffer->callback.notify != nullptr) && (!buffer->is_failed_request)) {
NotifyMessage msg = {
.type = MessageType::kError,
.message.error = {.frame_number = buffer->frame_number,
diff --git a/devices/EmulatedCamera/hwl/EmulatedRequestProcessor.cpp b/devices/EmulatedCamera/hwl/EmulatedRequestProcessor.cpp
index 09bf94d..3fe9009 100644
--- a/devices/EmulatedCamera/hwl/EmulatedRequestProcessor.cpp
+++ b/devices/EmulatedCamera/hwl/EmulatedRequestProcessor.cpp
@@ -120,6 +120,12 @@ std::unique_ptr<Buffers> EmulatedRequestProcessor::CreateSensorBuffers(
void EmulatedRequestProcessor::NotifyFailedRequest(const PendingRequest& request) {
if (request.output_buffers->at(0)->callback.notify != nullptr) {
+ // Mark all output buffers for this request in order not to send
+ // ERROR_BUFFER for them.
+ for (auto& output_buffer : *(request.output_buffers)) {
+ output_buffer->is_failed_request = true;
+ }
+
auto output_buffer = std::move(request.output_buffers->at(0));
NotifyMessage msg = {
.type = MessageType::kError,