[libcamera-devel] [PATCH 01/15] android: camera_stream: Break out CameraStream

Umang Jain email at uajain.com
Tue Oct 6 13:08:52 CEST 2020


Hi Jacopo,

On 10/5/20 4:16 PM, 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>
Reviewed-by: Umang Jain <email at uajain.com>
> ---
>   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"
> +
> +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',
>   ])



More information about the libcamera-devel mailing list