diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2021-01-21 10:51:05 +0100 |
---|---|---|
committer | Jacopo Mondi <jacopo@jmondi.org> | 2021-01-22 10:35:53 +0100 |
commit | dd1cd532caecc06f5e6d5b6ae4b6f4afd465ffb9 (patch) | |
tree | 82f88dea45ccd34d5631c8adc6e2f18fa86de922 | |
parent | 5e2596006bc662c1e565052728cd732d8f78bf1e (diff) |
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 <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
-rw-r--r-- | src/android/camera_device.cpp | 13 | ||||
-rw-r--r-- | 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 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"; diff --git a/src/android/camera_device.h b/src/android/camera_device.h index 07d3a846..c2afc9d3 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_; |