From dd1cd532caecc06f5e6d5b6ae4b6f4afd465ffb9 Mon Sep 17 00:00:00 2001 From: Jacopo Mondi Date: Thu, 21 Jan 2021 10:51:05 +0100 Subject: android: camera_device: Pass camera3 request to descriptor 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. Reviewed-by: Paul Elder Reviewed-by: Laurent Pinchart Signed-off-by: Jacopo Mondi --- src/android/camera_device.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/android/camera_device.cpp') diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp index a136f8e3..c349b7b0 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 @@ -1603,8 +1605,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"; -- cgit v1.2.1