summaryrefslogtreecommitdiff
path: root/src/android/camera_request.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/camera_request.cpp')
-rw-r--r--src/android/camera_request.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/android/camera_request.cpp b/src/android/camera_request.cpp
index 614baed4..faa85ada 100644
--- a/src/android/camera_request.cpp
+++ b/src/android/camera_request.cpp
@@ -7,6 +7,8 @@
#include "camera_request.h"
+#include <libcamera/base/span.h>
+
using namespace libcamera;
/*
@@ -22,11 +24,20 @@ Camera3RequestDescriptor::Camera3RequestDescriptor(
frameNumber_ = camera3Request->frame_number;
/* Copy the camera3 request stream information for later access. */
- const uint32_t numBuffers = camera3Request->num_output_buffers;
+ const Span<const camera3_stream_buffer_t> buffers{
+ camera3Request->output_buffers,
+ camera3Request->num_output_buffers
+ };
+
+ buffers_.reserve(buffers.size());
+
+ for (const camera3_stream_buffer_t &buffer : buffers) {
+ CameraStream *stream =
+ static_cast<CameraStream *>(buffer.stream->priv);
- buffers_.resize(numBuffers);
- for (uint32_t i = 0; i < numBuffers; i++)
- buffers_[i].buffer = camera3Request->output_buffers[i];
+ buffers_.push_back({ stream, buffer.buffer, nullptr,
+ buffer.acquire_fence, Status::Pending });
+ }
/* Clone the controls associated with the camera3 request. */
settings_ = CameraMetadata(camera3Request->settings);