[PATCH v4 6/7] android: notify CAMERA3_MSG_ERROR_REQUEST out of order
Harvey Yang
chenghaoyang at chromium.org
Tue Dec 10 15:23:59 CET 2024
When a request hasn't done any processing, CAMERA3_MSG_ERROR_REQUEST and
the following process_capture_result don't need to wait for the previous
requests' completion. This patch avoids pushing the aborted requests
into the request queue.
Signed-off-by: Han-Lin Chen <hanlinchen at chromium.org>
Co-developed-by: Harvey Yang <chenghaoyang at chromium.org>
Signed-off-by: Harvey Yang <chenghaoyang at chromium.org>
Reviewed-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
---
src/android/camera_device.cpp | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index 3b10f207e..a95114c8d 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -867,6 +867,8 @@ void CameraDevice::abortRequest(Camera3RequestDescriptor *descriptor) const
buffer.status = StreamBuffer::Status::Error;
descriptor->status_ = Camera3RequestDescriptor::Status::Error;
+
+ sendCaptureResult(descriptor);
}
bool CameraDevice::isValidRequest(camera3_capture_request_t *camera3Request) const
@@ -1135,14 +1137,7 @@ int CameraDevice::processCaptureRequest(camera3_capture_request_t *camera3Reques
MutexLocker stateLock(stateMutex_);
if (state_ == State::Flushing) {
- Camera3RequestDescriptor *rawDescriptor = descriptor.get();
- {
- MutexLocker descriptorsLock(descriptorsMutex_);
- descriptors_.push(std::move(descriptor));
- }
- abortRequest(rawDescriptor);
- completeDescriptor(rawDescriptor);
-
+ abortRequest(descriptor.get());
return 0;
}
--
2.47.0.338.g60cca15819-goog
More information about the libcamera-devel
mailing list