From 9e6eece622a00166e9f6a2013aa07ef8095b016c Mon Sep 17 00:00:00 2001 From: Jacopo Mondi Date: Thu, 21 Jan 2021 12:52:10 +0100 Subject: android: camera_device: Clone settings in request descriptor When a Camera3RequestDescriptor instance is created to wrap a camera3_capture_request_t the settings associated with the request are cloned for later re-use. Reviewed-by: Paul Elder Reviewed-by: Laurent Pinchart Signed-off-by: Jacopo Mondi --- src/android/camera_device.cpp | 4 +++- src/android/camera_device.h | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src/android') diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp index abccb0db..822de254 100644 --- a/src/android/camera_device.cpp +++ b/src/android/camera_device.cpp @@ -22,7 +22,6 @@ #include "libcamera/internal/log.h" #include "libcamera/internal/utils.h" -#include "camera_metadata.h" #include "system/graphics.h" using namespace libcamera; @@ -311,6 +310,9 @@ CameraDevice::Camera3RequestDescriptor::Camera3RequestDescriptor( */ frameBuffers_.reserve(numBuffers_); + /* Clone the controls associated with the camera3 request. */ + settings_ = CameraMetadata(camera3Request->settings); + /* * Create the libcamera::Request unique_ptr<> to tie its lifetime * to the descriptor's one. Set the descriptor's address as the diff --git a/src/android/camera_device.h b/src/android/camera_device.h index c2afc9d3..96b7fd99 100644 --- a/src/android/camera_device.h +++ b/src/android/camera_device.h @@ -24,12 +24,11 @@ #include "libcamera/internal/log.h" #include "libcamera/internal/message.h" +#include "camera_metadata.h" #include "camera_stream.h" #include "camera_worker.h" #include "jpeg/encoder.h" -class CameraMetadata; - class MappedCamera3Buffer : public libcamera::MappedBuffer { public: @@ -82,6 +81,7 @@ private: uint32_t numBuffers_; camera3_stream_buffer_t *buffers_; std::vector> frameBuffers_; + CameraMetadata settings_; std::unique_ptr request_; }; -- cgit v1.2.1