[libcamera-devel] [PATCH 2/3] libcamera: Use utils::make_array()
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon Jan 20 18:38:15 CET 2020
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>
---
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
More information about the libcamera-devel
mailing list