[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