[libcamera-devel] [PATCH 2/3] libcamera: Use utils::make_array()

Niklas Söderlund niklas.soderlund at ragnatech.se
Wed Jan 22 16:02:31 CET 2020


Hi Laurent,

Thanks for your patch.

On 2020-01-20 19:38:15 +0200, Laurent Pinchart wrote:
> Replace manual static array initialization with utils::make_array() to
> avoid manually specifying the number of elements.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>

> ---
>  src/libcamera/pipeline/rkisp1/rkisp1.cpp |  6 ++---
>  src/libcamera/pipeline/vimc.cpp          |  6 ++---
>  src/libcamera/stream.cpp                 |  6 ++---
>  src/v4l2/v4l2_camera_proxy.cpp           | 30 ++++++++++++------------
>  4 files changed, 24 insertions(+), 24 deletions(-)
> 
> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> index 0b3dd9759387..911f665720b3 100644
> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> @@ -433,16 +433,16 @@ RkISP1CameraConfiguration::RkISP1CameraConfiguration(Camera *camera,
>  
>  CameraConfiguration::Status RkISP1CameraConfiguration::validate()
>  {
> -	static const std::array<unsigned int, 8> formats{
> +	static const auto formats = utils::make_array<unsigned int>(
>  		DRM_FORMAT_YUYV,
>  		DRM_FORMAT_YVYU,
>  		DRM_FORMAT_VYUY,
>  		DRM_FORMAT_NV16,
>  		DRM_FORMAT_NV61,
>  		DRM_FORMAT_NV21,
> -		DRM_FORMAT_NV12,
> +		DRM_FORMAT_NV12
>  		/* \todo Add support for 8-bit greyscale to DRM formats */
> -	};
> +	);
>  
>  	const CameraSensor *sensor = data_->sensor_;
>  	Status status = Valid;
> diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp
> index b1054d307ea2..7df21f2b7a6f 100644
> --- a/src/libcamera/pipeline/vimc.cpp
> +++ b/src/libcamera/pipeline/vimc.cpp
> @@ -106,11 +106,11 @@ private:
>  
>  namespace {
>  
> -constexpr std::array<unsigned int, 3> pixelformats{
> +constexpr auto pixelformats = utils::make_array<unsigned int>(
>  	DRM_FORMAT_RGB888,
>  	DRM_FORMAT_BGR888,
> -	DRM_FORMAT_BGRA8888,
> -};
> +	DRM_FORMAT_BGRA8888
> +);
>  
>  } /* namespace */
>  
> diff --git a/src/libcamera/stream.cpp b/src/libcamera/stream.cpp
> index 13789e9eb344..943f044b7b7a 100644
> --- a/src/libcamera/stream.cpp
> +++ b/src/libcamera/stream.cpp
> @@ -135,7 +135,7 @@ std::vector<Size> StreamFormats::sizes(PixelFormat pixelformat) const
>  	 * from v4l2 documentation and source code as well as lists of
>  	 * common frame sizes.
>  	 */
> -	static const std::array<Size, 53> rangeDiscreteSizes = {
> +	static const auto rangeDiscreteSizes = utils::make_array<Size>(
>  		Size(160, 120),
>  		Size(240, 160),
>  		Size(320, 240),
> @@ -188,8 +188,8 @@ std::vector<Size> StreamFormats::sizes(PixelFormat pixelformat) const
>  		Size(4096, 2160),
>  		Size(5120, 2160),
>  		Size(5120, 2880),
> -		Size(7680, 4320),
> -	};
> +		Size(7680, 4320)
> +	);
>  	std::vector<Size> sizes;
>  
>  	/* Make sure pixel format exists. */
> diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
> index e58fd6a0d8b5..3b0a4bcb830f 100644
> --- a/src/v4l2/v4l2_camera_proxy.cpp
> +++ b/src/v4l2/v4l2_camera_proxy.cpp
> @@ -546,24 +546,24 @@ struct PixelFormatInfo {
>  
>  namespace {
>  
> -constexpr std::array<PixelFormatInfo, 13> pixelFormatInfo = {{
> +constexpr auto pixelFormatInfo = utils::make_array<PixelFormatInfo>(
>  	/* RGB formats. */
> -	{ DRM_FORMAT_RGB888,	V4L2_PIX_FMT_BGR24,	1, {{ { 24, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },
> -	{ DRM_FORMAT_BGR888,	V4L2_PIX_FMT_RGB24,	1, {{ { 24, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },
> -	{ DRM_FORMAT_BGRA8888,	V4L2_PIX_FMT_ARGB32,	1, {{ { 32, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },
> +	PixelFormatInfo{ DRM_FORMAT_RGB888,	V4L2_PIX_FMT_BGR24,	1, {{ { 24, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },
> +	PixelFormatInfo{ DRM_FORMAT_BGR888,	V4L2_PIX_FMT_RGB24,	1, {{ { 24, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },
> +	PixelFormatInfo{ DRM_FORMAT_BGRA8888,	V4L2_PIX_FMT_ARGB32,	1, {{ { 32, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },
>  	/* YUV packed formats. */
> -	{ DRM_FORMAT_UYVY,	V4L2_PIX_FMT_UYVY,	1, {{ { 16, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },
> -	{ DRM_FORMAT_VYUY,	V4L2_PIX_FMT_VYUY,	1, {{ { 16, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },
> -	{ DRM_FORMAT_YUYV,	V4L2_PIX_FMT_YUYV,	1, {{ { 16, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },
> -	{ DRM_FORMAT_YVYU,	V4L2_PIX_FMT_YVYU,	1, {{ { 16, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },
> +	PixelFormatInfo{ DRM_FORMAT_UYVY,	V4L2_PIX_FMT_UYVY,	1, {{ { 16, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },
> +	PixelFormatInfo{ DRM_FORMAT_VYUY,	V4L2_PIX_FMT_VYUY,	1, {{ { 16, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },
> +	PixelFormatInfo{ DRM_FORMAT_YUYV,	V4L2_PIX_FMT_YUYV,	1, {{ { 16, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },
> +	PixelFormatInfo{ DRM_FORMAT_YVYU,	V4L2_PIX_FMT_YVYU,	1, {{ { 16, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },
>  	/* YUY planar formats. */
> -	{ DRM_FORMAT_NV12,	V4L2_PIX_FMT_NV12,	2, {{ {  8, 1, 1 }, { 16, 2, 2 }, {  0, 0, 0 } }} },
> -	{ DRM_FORMAT_NV21,	V4L2_PIX_FMT_NV21,	2, {{ {  8, 1, 1 }, { 16, 2, 2 }, {  0, 0, 0 } }} },
> -	{ DRM_FORMAT_NV16,	V4L2_PIX_FMT_NV16,	2, {{ {  8, 1, 1 }, { 16, 2, 1 }, {  0, 0, 0 } }} },
> -	{ DRM_FORMAT_NV61,	V4L2_PIX_FMT_NV61,	2, {{ {  8, 1, 1 }, { 16, 2, 1 }, {  0, 0, 0 } }} },
> -	{ DRM_FORMAT_NV24,	V4L2_PIX_FMT_NV24,	2, {{ {  8, 1, 1 }, { 16, 2, 1 }, {  0, 0, 0 } }} },
> -	{ DRM_FORMAT_NV42,	V4L2_PIX_FMT_NV42,	2, {{ {  8, 1, 1 }, { 16, 1, 1 }, {  0, 0, 0 } }} },
> -}};
> +	PixelFormatInfo{ DRM_FORMAT_NV12,	V4L2_PIX_FMT_NV12,	2, {{ {  8, 1, 1 }, { 16, 2, 2 }, {  0, 0, 0 } }} },
> +	PixelFormatInfo{ DRM_FORMAT_NV21,	V4L2_PIX_FMT_NV21,	2, {{ {  8, 1, 1 }, { 16, 2, 2 }, {  0, 0, 0 } }} },
> +	PixelFormatInfo{ DRM_FORMAT_NV16,	V4L2_PIX_FMT_NV16,	2, {{ {  8, 1, 1 }, { 16, 2, 1 }, {  0, 0, 0 } }} },
> +	PixelFormatInfo{ DRM_FORMAT_NV61,	V4L2_PIX_FMT_NV61,	2, {{ {  8, 1, 1 }, { 16, 2, 1 }, {  0, 0, 0 } }} },
> +	PixelFormatInfo{ DRM_FORMAT_NV24,	V4L2_PIX_FMT_NV24,	2, {{ {  8, 1, 1 }, { 16, 2, 1 }, {  0, 0, 0 } }} },
> +	PixelFormatInfo{ DRM_FORMAT_NV42,	V4L2_PIX_FMT_NV42,	2, {{ {  8, 1, 1 }, { 16, 1, 1 }, {  0, 0, 0 } }} }
> +);
>  
>  } /* namespace */
>  
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

-- 
Regards,
Niklas Söderlund


More information about the libcamera-devel mailing list