[{"id":3564,"web_url":"https://patchwork.libcamera.org/comment/3564/","msgid":"<20200122150231.GL1124294@oden.dyn.berto.se>","date":"2020-01-22T15:02:31","subject":"Re: [libcamera-devel] [PATCH 2/3] libcamera: Use utils::make_array()","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Laurent,\n\nThanks for your patch.\n\nOn 2020-01-20 19:38:15 +0200, Laurent Pinchart wrote:\n> Replace manual static array initialization with utils::make_array() to\n> avoid manually specifying the number of elements.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n\n> ---\n>  src/libcamera/pipeline/rkisp1/rkisp1.cpp |  6 ++---\n>  src/libcamera/pipeline/vimc.cpp          |  6 ++---\n>  src/libcamera/stream.cpp                 |  6 ++---\n>  src/v4l2/v4l2_camera_proxy.cpp           | 30 ++++++++++++------------\n>  4 files changed, 24 insertions(+), 24 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> index 0b3dd9759387..911f665720b3 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> @@ -433,16 +433,16 @@ RkISP1CameraConfiguration::RkISP1CameraConfiguration(Camera *camera,\n>  \n>  CameraConfiguration::Status RkISP1CameraConfiguration::validate()\n>  {\n> -\tstatic const std::array<unsigned int, 8> formats{\n> +\tstatic const auto formats = utils::make_array<unsigned int>(\n>  \t\tDRM_FORMAT_YUYV,\n>  \t\tDRM_FORMAT_YVYU,\n>  \t\tDRM_FORMAT_VYUY,\n>  \t\tDRM_FORMAT_NV16,\n>  \t\tDRM_FORMAT_NV61,\n>  \t\tDRM_FORMAT_NV21,\n> -\t\tDRM_FORMAT_NV12,\n> +\t\tDRM_FORMAT_NV12\n>  \t\t/* \\todo Add support for 8-bit greyscale to DRM formats */\n> -\t};\n> +\t);\n>  \n>  \tconst CameraSensor *sensor = data_->sensor_;\n>  \tStatus status = Valid;\n> diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp\n> index b1054d307ea2..7df21f2b7a6f 100644\n> --- a/src/libcamera/pipeline/vimc.cpp\n> +++ b/src/libcamera/pipeline/vimc.cpp\n> @@ -106,11 +106,11 @@ private:\n>  \n>  namespace {\n>  \n> -constexpr std::array<unsigned int, 3> pixelformats{\n> +constexpr auto pixelformats = utils::make_array<unsigned int>(\n>  \tDRM_FORMAT_RGB888,\n>  \tDRM_FORMAT_BGR888,\n> -\tDRM_FORMAT_BGRA8888,\n> -};\n> +\tDRM_FORMAT_BGRA8888\n> +);\n>  \n>  } /* namespace */\n>  \n> diff --git a/src/libcamera/stream.cpp b/src/libcamera/stream.cpp\n> index 13789e9eb344..943f044b7b7a 100644\n> --- a/src/libcamera/stream.cpp\n> +++ b/src/libcamera/stream.cpp\n> @@ -135,7 +135,7 @@ std::vector<Size> StreamFormats::sizes(PixelFormat pixelformat) const\n>  \t * from v4l2 documentation and source code as well as lists of\n>  \t * common frame sizes.\n>  \t */\n> -\tstatic const std::array<Size, 53> rangeDiscreteSizes = {\n> +\tstatic const auto rangeDiscreteSizes = utils::make_array<Size>(\n>  \t\tSize(160, 120),\n>  \t\tSize(240, 160),\n>  \t\tSize(320, 240),\n> @@ -188,8 +188,8 @@ std::vector<Size> StreamFormats::sizes(PixelFormat pixelformat) const\n>  \t\tSize(4096, 2160),\n>  \t\tSize(5120, 2160),\n>  \t\tSize(5120, 2880),\n> -\t\tSize(7680, 4320),\n> -\t};\n> +\t\tSize(7680, 4320)\n> +\t);\n>  \tstd::vector<Size> sizes;\n>  \n>  \t/* Make sure pixel format exists. */\n> diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp\n> index e58fd6a0d8b5..3b0a4bcb830f 100644\n> --- a/src/v4l2/v4l2_camera_proxy.cpp\n> +++ b/src/v4l2/v4l2_camera_proxy.cpp\n> @@ -546,24 +546,24 @@ struct PixelFormatInfo {\n>  \n>  namespace {\n>  \n> -constexpr std::array<PixelFormatInfo, 13> pixelFormatInfo = {{\n> +constexpr auto pixelFormatInfo = utils::make_array<PixelFormatInfo>(\n>  \t/* RGB formats. */\n> -\t{ DRM_FORMAT_RGB888,\tV4L2_PIX_FMT_BGR24,\t1, {{ { 24, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },\n> -\t{ DRM_FORMAT_BGR888,\tV4L2_PIX_FMT_RGB24,\t1, {{ { 24, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },\n> -\t{ DRM_FORMAT_BGRA8888,\tV4L2_PIX_FMT_ARGB32,\t1, {{ { 32, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },\n> +\tPixelFormatInfo{ DRM_FORMAT_RGB888,\tV4L2_PIX_FMT_BGR24,\t1, {{ { 24, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },\n> +\tPixelFormatInfo{ DRM_FORMAT_BGR888,\tV4L2_PIX_FMT_RGB24,\t1, {{ { 24, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },\n> +\tPixelFormatInfo{ DRM_FORMAT_BGRA8888,\tV4L2_PIX_FMT_ARGB32,\t1, {{ { 32, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },\n>  \t/* YUV packed formats. */\n> -\t{ DRM_FORMAT_UYVY,\tV4L2_PIX_FMT_UYVY,\t1, {{ { 16, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },\n> -\t{ DRM_FORMAT_VYUY,\tV4L2_PIX_FMT_VYUY,\t1, {{ { 16, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },\n> -\t{ DRM_FORMAT_YUYV,\tV4L2_PIX_FMT_YUYV,\t1, {{ { 16, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },\n> -\t{ DRM_FORMAT_YVYU,\tV4L2_PIX_FMT_YVYU,\t1, {{ { 16, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },\n> +\tPixelFormatInfo{ DRM_FORMAT_UYVY,\tV4L2_PIX_FMT_UYVY,\t1, {{ { 16, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },\n> +\tPixelFormatInfo{ DRM_FORMAT_VYUY,\tV4L2_PIX_FMT_VYUY,\t1, {{ { 16, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },\n> +\tPixelFormatInfo{ DRM_FORMAT_YUYV,\tV4L2_PIX_FMT_YUYV,\t1, {{ { 16, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },\n> +\tPixelFormatInfo{ DRM_FORMAT_YVYU,\tV4L2_PIX_FMT_YVYU,\t1, {{ { 16, 1, 1 }, {  0, 0, 0 }, {  0, 0, 0 } }} },\n>  \t/* YUY planar formats. */\n> -\t{ DRM_FORMAT_NV12,\tV4L2_PIX_FMT_NV12,\t2, {{ {  8, 1, 1 }, { 16, 2, 2 }, {  0, 0, 0 } }} },\n> -\t{ DRM_FORMAT_NV21,\tV4L2_PIX_FMT_NV21,\t2, {{ {  8, 1, 1 }, { 16, 2, 2 }, {  0, 0, 0 } }} },\n> -\t{ DRM_FORMAT_NV16,\tV4L2_PIX_FMT_NV16,\t2, {{ {  8, 1, 1 }, { 16, 2, 1 }, {  0, 0, 0 } }} },\n> -\t{ DRM_FORMAT_NV61,\tV4L2_PIX_FMT_NV61,\t2, {{ {  8, 1, 1 }, { 16, 2, 1 }, {  0, 0, 0 } }} },\n> -\t{ DRM_FORMAT_NV24,\tV4L2_PIX_FMT_NV24,\t2, {{ {  8, 1, 1 }, { 16, 2, 1 }, {  0, 0, 0 } }} },\n> -\t{ DRM_FORMAT_NV42,\tV4L2_PIX_FMT_NV42,\t2, {{ {  8, 1, 1 }, { 16, 1, 1 }, {  0, 0, 0 } }} },\n> -}};\n> +\tPixelFormatInfo{ DRM_FORMAT_NV12,\tV4L2_PIX_FMT_NV12,\t2, {{ {  8, 1, 1 }, { 16, 2, 2 }, {  0, 0, 0 } }} },\n> +\tPixelFormatInfo{ DRM_FORMAT_NV21,\tV4L2_PIX_FMT_NV21,\t2, {{ {  8, 1, 1 }, { 16, 2, 2 }, {  0, 0, 0 } }} },\n> +\tPixelFormatInfo{ DRM_FORMAT_NV16,\tV4L2_PIX_FMT_NV16,\t2, {{ {  8, 1, 1 }, { 16, 2, 1 }, {  0, 0, 0 } }} },\n> +\tPixelFormatInfo{ DRM_FORMAT_NV61,\tV4L2_PIX_FMT_NV61,\t2, {{ {  8, 1, 1 }, { 16, 2, 1 }, {  0, 0, 0 } }} },\n> +\tPixelFormatInfo{ DRM_FORMAT_NV24,\tV4L2_PIX_FMT_NV24,\t2, {{ {  8, 1, 1 }, { 16, 2, 1 }, {  0, 0, 0 } }} },\n> +\tPixelFormatInfo{ DRM_FORMAT_NV42,\tV4L2_PIX_FMT_NV42,\t2, {{ {  8, 1, 1 }, { 16, 1, 1 }, {  0, 0, 0 } }} }\n> +);\n>  \n>  } /* namespace */\n>  \n> -- \n> Regards,\n> \n> Laurent Pinchart\n> \n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from mail-lj1-x241.google.com (mail-lj1-x241.google.com\n\t[IPv6:2a00:1450:4864:20::241])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F3231607F3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Jan 2020 16:02:32 +0100 (CET)","by mail-lj1-x241.google.com with SMTP id o11so6864105ljc.6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Jan 2020 07:02:32 -0800 (PST)","from localhost (h-93-159.A463.priv.bahnhof.se. [46.59.93.159])\n\tby smtp.gmail.com with ESMTPSA id\n\ti5sm20396752ljj.29.2020.01.22.07.02.31\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 22 Jan 2020 07:02:31 -0800 (PST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to;\n\tbh=5pgsRRXWmzPjAd9tX1DsnUdEfSo2t5Q+ZbfL6+E851k=;\n\tb=PfClKa9vO2jaxT4ICgRA1he9YM15bDGnvSPwB4tQwBVf0vMJNk+rqUq9Om1qurqOFV\n\ttVD80NKCnm3woyQrEB2OW4dqv7ZtjPVKt523fcUGOj1uvhrpOGCfxNiEOCZ+uE3CG6A2\n\thqircdowkCpddzBTPJvjDqa7eCqAcDDZ50Ho1vaoVGItrwQnQS45UnSqMRZorEOUMHiB\n\tr++Xu3POR3lN/eLQ7TFXUpfPmSOEvnczQANEFHFVBy3j/72WH9o5V5nLB6CyOB15n0X7\n\tFwiv0PHmKQbEiw2/zohMXBVgVqYau5LpahJgyuSFk6wU/UdOcV0NYqhqQG34LTxAAZF9\n\tfcRQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to;\n\tbh=5pgsRRXWmzPjAd9tX1DsnUdEfSo2t5Q+ZbfL6+E851k=;\n\tb=PxOP552SDko4XdUqdUqRnhQc7p5CzTugvx7yp5qnWWv4qieirNJFuJvi7VwC38cCeM\n\tq6QR8UPfR+sIPKz9G9tDDls+Q77zTtzCDfJNs88tKl2EM/v76UBpfxPv+2SMF2MpgKJy\n\t+jYRD3PP51o//yQDrJa4q34qpcja5hoTnnCy4xK9iNegqL8K4HUpd3jiPlGlkj20GbFd\n\ttZpohbfmp0KBDLGZtJgbxnOyQweN3/AykFN9KnbTZJBXtaV1a3zjASHcHE9H3FiSKRFS\n\tumsuO/2yh20FFsQ7RRoMIXpcHyIkYC0jN6m3dRoeIBgNSWAK+QF00KEohRp/uiuVVqhD\n\tj3Cw==","X-Gm-Message-State":"APjAAAUaom0xt9hVgW3XmhxAj4VAV4D7mlsGKz9Lrdo+O66v3rZWgY3/\n\t25rq2/ISYtg3MUuPqEGtQDa6Dg==","X-Google-Smtp-Source":"APXvYqyGxi+ysOJsbzl4ZdHt50L7Mohys4xZzoy1g7b17+AcNT3ww/wKGQ0lZB4gp4dqZq/cfP3aaA==","X-Received":"by 2002:a2e:9883:: with SMTP id b3mr19845961ljj.80.1579705352077;\n\tWed, 22 Jan 2020 07:02:32 -0800 (PST)","Date":"Wed, 22 Jan 2020 16:02:31 +0100","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20200122150231.GL1124294@oden.dyn.berto.se>","References":"<20200120173816.31829-1-laurent.pinchart@ideasonboard.com>\n\t<20200120173816.31829-3-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20200120173816.31829-3-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 2/3] libcamera: Use utils::make_array()","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Wed, 22 Jan 2020 15:02:33 -0000"}}]