[libcamera-devel] [PATCH 01/15] android: camera_stream: Break out CameraStream
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon Oct 5 13:19:40 CEST 2020
Hi Jacopo,
Thank you for the patch.
On Mon, Oct 05, 2020 at 01:46:35PM +0300, Laurent Pinchart wrote:
> From: Jacopo Mondi <jacopo at jmondi.org>
>
> Break CameraStream out of the CameraDevice class.
>
> No functional changes, only the code is moved.
>
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> ---
> src/android/camera_device.cpp | 6 ------
> src/android/camera_device.h | 24 +--------------------
> src/android/camera_stream.cpp | 16 ++++++++++++++
> src/android/camera_stream.h | 40 +++++++++++++++++++++++++++++++++++
> src/android/meson.build | 1 +
> 5 files changed, 58 insertions(+), 29 deletions(-)
> create mode 100644 src/android/camera_stream.cpp
> create mode 100644 src/android/camera_stream.h
>
> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
> index 751699cd2113..bbc692fe109f 100644
> --- a/src/android/camera_device.cpp
> +++ b/src/android/camera_device.cpp
> @@ -169,12 +169,6 @@ MappedCamera3Buffer::MappedCamera3Buffer(const buffer_handle_t camera3buffer,
> }
> }
>
> -CameraStream::CameraStream(PixelFormat format, Size size,
> - unsigned int index, Encoder *encoder)
> - : format_(format), size_(size), index_(index), encoder_(encoder)
> -{
> -}
> -
> /*
> * \struct Camera3RequestDescriptor
> *
> diff --git a/src/android/camera_device.h b/src/android/camera_device.h
> index 1837748d2efc..52923ec979a7 100644
> --- a/src/android/camera_device.h
> +++ b/src/android/camera_device.h
> @@ -23,33 +23,11 @@
> #include "libcamera/internal/log.h"
> #include "libcamera/internal/message.h"
>
> +#include "camera_stream.h"
> #include "jpeg/encoder.h"
>
> class CameraMetadata;
>
> -class CameraStream
> -{
> -public:
> - CameraStream(libcamera::PixelFormat format, libcamera::Size size,
> - unsigned int index, Encoder *encoder = nullptr);
> -
> - const libcamera::PixelFormat &format() const { return format_; }
> - const libcamera::Size &size() const { return size_; }
> - unsigned int index() const { return index_; }
> - Encoder *encoder() const { return encoder_.get(); }
> -
> -private:
> - libcamera::PixelFormat format_;
> - libcamera::Size size_;
> - /*
> - * The index of the libcamera StreamConfiguration as added during
> - * configureStreams(). A single libcamera Stream may be used to deliver
> - * one or more streams to the Android framework.
> - */
> - unsigned int index_;
> - std::unique_ptr<Encoder> encoder_;
> -};
> -
> class CameraDevice : protected libcamera::Loggable
> {
> public:
> diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp
> new file mode 100644
> index 000000000000..01c62978ca3a
> --- /dev/null
> +++ b/src/android/camera_stream.cpp
> @@ -0,0 +1,16 @@
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
> +/*
> + * Copyright (C) 2020, Google Inc.
> + *
> + * camera_stream.cpp - Camera HAL stream
> + */
> +
> +#include "camera_stream.h"
> +
> +using namespace libcamera;
> +
> +CameraStream::CameraStream(PixelFormat format, Size size,
> + unsigned int index, Encoder *encoder)
> + : format_(format), size_(size), index_(index), encoder_(encoder)
> +{
> +}
> diff --git a/src/android/camera_stream.h b/src/android/camera_stream.h
> new file mode 100644
> index 000000000000..10dece7beb69
> --- /dev/null
> +++ b/src/android/camera_stream.h
> @@ -0,0 +1,40 @@
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
> +/*
> + * Copyright (C) 2020, Google Inc.
> + *
> + * camera_stream.h - Camera HAL stream
> + */
> +#ifndef __ANDROID_CAMERA_STREAM_H__
> +#define __ANDROID_CAMERA_STREAM_H__
> +
> +#include <memory>
> +
> +#include <libcamera/geometry.h>
> +#include <libcamera/pixel_format.h>
> +
> +#include "jpeg/encoder.h"
You could forward-declare Encoder instead.
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> +
> +class CameraStream
> +{
> +public:
> + CameraStream(libcamera::PixelFormat format, libcamera::Size size,
> + unsigned int index, Encoder *encoder = nullptr);
> +
> + const libcamera::PixelFormat &format() const { return format_; }
> + const libcamera::Size &size() const { return size_; }
> + unsigned int index() const { return index_; }
> + Encoder *encoder() const { return encoder_.get(); }
> +
> +private:
> + libcamera::PixelFormat format_;
> + libcamera::Size size_;
> + /*
> + * The index of the libcamera StreamConfiguration as added during
> + * configureStreams(). A single libcamera Stream may be used to deliver
> + * one or more streams to the Android framework.
> + */
> + unsigned int index_;
> + std::unique_ptr<Encoder> encoder_;
> +};
> +
> +#endif /* __ANDROID_CAMERA_STREAM__ */
> diff --git a/src/android/meson.build b/src/android/meson.build
> index 0293c2036561..802bb89afe57 100644
> --- a/src/android/meson.build
> +++ b/src/android/meson.build
> @@ -20,6 +20,7 @@ android_hal_sources = files([
> 'camera_device.cpp',
> 'camera_metadata.cpp',
> 'camera_ops.cpp',
> + 'camera_stream.cpp',
> 'jpeg/encoder_libjpeg.cpp',
> 'jpeg/exif.cpp',
> ])
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list