From facadb188efa32e0846fb59b73d8d669b7686e29 Mon Sep 17 00:00:00 2001 From: Jacopo Mondi Date: Wed, 2 Sep 2020 12:11:46 +0200 Subject: android: camera_device: Set Encoder at construction MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make the CameraStream encoder a private unique pointer and require its initialization at construction time. This ties the encoder lifetime to the CameraStream it has been created with, allowing to remove the CameraStream destructor. This change dis-allow creating a CameraStream and set the Encoder later, which shall not happen now that we create CameraStream once we have all the required information in place. No functional changes intended but this change aims to make the code more robust enforcing a stricter CameraStream interface. Reviewed-by: Hirokazu Honda Reviewed-by: Niklas Söderlund Reviewed-by: Laurent Pinchart Reviewed-by: Kieran Bingham Signed-off-by: Jacopo Mondi --- src/android/camera_device.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/android/camera_device.h') diff --git a/src/android/camera_device.h b/src/android/camera_device.h index 376d001e..49a2e7f3 100644 --- a/src/android/camera_device.h +++ b/src/android/camera_device.h @@ -29,16 +29,15 @@ class CameraMetadata; struct CameraStream { public: - CameraStream(libcamera::PixelFormat, libcamera::Size, unsigned int i); - ~CameraStream(); + CameraStream(libcamera::PixelFormat, libcamera::Size, unsigned int i, + Encoder *e = nullptr); unsigned int index() const { return index_; } + Encoder *encoder() const { return encoder_.get(); } libcamera::PixelFormat format; libcamera::Size size; - Encoder *jpeg; - private: /* * The index of the libcamera StreamConfiguration as added during @@ -46,6 +45,7 @@ private: * one or more streams to the Android framework. */ unsigned int index_; + std::unique_ptr encoder_; }; class CameraDevice : protected libcamera::Loggable -- cgit v1.2.1