[libcamera-devel] [PATCH 2/7] android: camera_device: Pass camera3 request to descriptor
Jacopo Mondi
jacopo at jmondi.org
Thu Jan 21 17:53:00 CET 2021
The Camera3RequestDescriptor class can access the number of buffers
and the frame number from the camera3_capture_request_t instead of
having the caller passing them to the constructor.
This change allows to access other fields of the capture request, such
as the capture settings.
Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
src/android/camera_device.cpp | 13 +++++++------
src/android/camera_device.h | 3 +--
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index 7c70a0b314e6..f10b572749eb 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -295,16 +295,18 @@ MappedCamera3Buffer::MappedCamera3Buffer(const buffer_handle_t camera3buffer,
*/
CameraDevice::Camera3RequestDescriptor::Camera3RequestDescriptor(
- Camera *camera, unsigned int frameNumber, unsigned int numBuffers)
- : frameNumber_(frameNumber), numBuffers_(numBuffers)
+ Camera *camera, const camera3_capture_request_t *camera3Request)
{
- buffers_ = new camera3_stream_buffer_t[numBuffers];
+ frameNumber_ = camera3Request->frame_number;
+
+ numBuffers_ = camera3Request->num_output_buffers;
+ buffers_ = new camera3_stream_buffer_t[numBuffers_];
/*
* FrameBuffer instances created by wrapping a camera3 provided dmabuf
* are emplaced in this vector of unique_ptr<> for lifetime management.
*/
- frameBuffers_.reserve(numBuffers);
+ frameBuffers_.reserve(numBuffers_);
/*
* Create the libcamera::Request unique_ptr<> to tie its lifetime
@@ -1683,8 +1685,7 @@ int CameraDevice::processCaptureRequest(camera3_capture_request_t *camera3Reques
* at request complete time.
*/
Camera3RequestDescriptor *descriptor =
- new Camera3RequestDescriptor(camera_.get(), camera3Request->frame_number,
- camera3Request->num_output_buffers);
+ new Camera3RequestDescriptor(camera_.get(), camera3Request);
LOG(HAL, Debug) << "Queueing Request to libcamera with "
<< descriptor->numBuffers_ << " HAL streams";
diff --git a/src/android/camera_device.h b/src/android/camera_device.h
index 912e54a60d4b..ab3c848edd0a 100644
--- a/src/android/camera_device.h
+++ b/src/android/camera_device.h
@@ -75,8 +75,7 @@ private:
struct Camera3RequestDescriptor {
Camera3RequestDescriptor(libcamera::Camera *camera,
- unsigned int frameNumber,
- unsigned int numBuffers);
+ const camera3_capture_request_t *camera3Request);
~Camera3RequestDescriptor();
uint32_t frameNumber_;
--
2.29.2
More information about the libcamera-devel
mailing list