From patchwork Tue Apr 5 00:42:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Rauch X-Patchwork-Id: 15618 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 0E873C3260 for ; Tue, 5 Apr 2022 00:42:28 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 9E8F26564C; Tue, 5 Apr 2022 02:42:26 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1649119346; bh=ZAMvAKg3juwEoXLU0WdCEjcdyrCNwFE2RlHsrGAWtOQ=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=g7jbqh5EyMAtafhjWR9pbFpZ5E55NrKGAqKbTEW3+6Cke8Sz4aLx6ObVojhNmsqt8 oLnFc4BKNsuipaQcQcXKVthtVI5ElwNNb0yPjbuHgVpb5i9yroxdT27Ee/Zg/t0bDl JsUQgEVIUSn2+uVCp38LWphMZZ5pGC1+b29gbpWhuCU2s+lMH4YctcOek4SUJBN7BK nXneMw8Ky6xU1qxkUICsBUlPjvTGnW2A4PseOwif7v4nKZfZrZIbDKDL8ala7qxkko s+TA/Lx5UQ3ONNF40yZxQXEFCC/On5uNZ6WMDfXZlXrOID2pozKV1yekzpCt4/WKyT 4MVxnnVf+eUcg== Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 6479E65644 for ; Tue, 5 Apr 2022 02:42:23 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=gmx.net header.i=@gmx.net header.b="Fdi0ThTB"; dkim-atps=neutral DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1649119343; bh=ZAMvAKg3juwEoXLU0WdCEjcdyrCNwFE2RlHsrGAWtOQ=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=Fdi0ThTBBznaRxDdXyVf7LkcoXXneKMUjhdGjiW6AMO8fhVMkWTTF9l72G0t5/T4p bfU1ypVbEJRPFxkf8uduj1ZKmVtYkzH/dZbt605s5a+eWO6wYQQW/NpVJf/ZRB5oZs p1bAgZYQQnBaofxbnwP4DMdK+bCPnT/lNXwihOQ8= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from localhost.localdomain ([92.10.251.63]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MHG8m-1nokgQ3gEy-00DDaN; Tue, 05 Apr 2022 02:42:23 +0200 To: libcamera-devel@lists.libcamera.org Date: Tue, 5 Apr 2022 01:42:14 +0100 Message-Id: <20220405004215.86340-5-Rauch.Christian@gmx.de> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220405004215.86340-1-Rauch.Christian@gmx.de> References: <20220405004215.86340-1-Rauch.Christian@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:5JBE5J7fY3u9MQXsY51yiEo1CbfHd0FmEOsf1q4SqidSrE2BFR7 kzudsOEcs9j4SErZ9rFyEJedCgZWAk3QerciXhI37e4hcNSW7rx7M3JPuVnzYnaLa2NMX5z Ylcy8xLjeevbvVT/CIakKwdDxVm535VVWJxanLuBVAFCaco+PG8suS6zth2LBenbjMYFP2v nAiI+cl5jMSIXMRhSB24Q== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:C1//DFEEyPk=:ysAI3NSOERGIwDWCFD8Lo/ 3S369/wSjPN8fEvzF5+Xuj+JzsQt6d2ilFmPijO0gK/AECUA/LLhHOWFfQvTeKbgvfx4FFoBM BNTDrVRQrB6lim67auuRkqjglcw97xZ1OqXv0dahnZ0r9HO6SgELUvZXtDy+l7KZGdMV8DxGm KvPO0QiF69GHyGr3dkdEZhJRiU/R+EdNyOt+Hi0inIkeM7uG7LNMmA+YC1Jb0G8m8zl7x9Q8X 97EVbxnYqFvb8OUw92NgXTS/TGiWZASJ2onywvqDE0nBWHfj8mSgNtLwIriM2Z/kjE7DSOdy/ tyxf22393KhFxO+FYLdKdupdx1us03Xf4rOwDxCKjH/y7jsCKcz7aHPu/iijdWmf8sDUKBA89 xk7YA7aqp3sL5OfePw1XF9FuI1Cpimhi2dHifwWgCXlo4FKoleh8FCGcoHjkT95ovr2uFpCxg OeauWS1TFPrcjdfthgLunI0RKSPz3483U9P0RdaVaXE5LaD4dCWXIYtUnnBgF0HQ4bwVL2IQU 0TetKzYPSHklGu93nzrTnD7AKDzjA70SwvEBxCYr86GmA9PxGgAu0ShO15KjaQAwQGaHOnY38 sjxC8Stk+WzuqFJPcTdxVkLrYcpYet7dNnFgqqM39uMwzWfOd7qptJCcKbvazClZNd5Y+kEi9 f+IZ3RYqxxy2Qlv/YBstvQ8LHRZaa3PZ4WoY2qQ8H3is/UPVzJEZglyAK2B97GbF+K/q3JLaL AsrPn/9/zzYcUkyn7AJywBbj2y2503creANWaYkTdzAsXDIZvsd/Gzy5Kxz0qARpPmgnvW3IR CFO+IuU9KqlkjfnNIeltTrKTaN2KegLhJWn1ygj8Uf4Rx84GeJ/pPTH7MhjGvioZr2yhMrgDP rgB9l6Xuu/RczWhP1Tk911KUgWRISrVa5BQNzS1RrOeT3zQmsFEpgVJVZY8n/m9807xQVh6Ls /FKyssuEGLJiS+iMozlzjN70dVNovgWIZrovJG1tuvB8AI6CMKasPTuP+3iiUVACQ4gZ4IgL7 vDzCZrIkcAbdjCzH9QmkQQXSB87AnGhGBiUc6ZctmpCZIDAuEWbKfhW1JgZRJciln8RTOxMi4 cmKGwx2fBji+2I= Subject: [libcamera-devel] [PATCH v2 4/5] apply clang-format style X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Christian Rauch via libcamera-devel From: Christian Rauch Reply-To: Christian Rauch Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Signed-off-by: Christian Rauch --- include/libcamera/base/span.h | 45 +++--- src/ipa/raspberrypi/raspberrypi.cpp | 3 +- .../pipeline/raspberrypi/raspberrypi.cpp | 34 +++-- src/qcam/dng_writer.cpp | 140 +++++++++--------- test/span.cpp | 4 +- 5 files changed, 116 insertions(+), 110 deletions(-) -- 2.25.1 diff --git a/include/libcamera/base/span.h b/include/libcamera/base/span.h index bff4c115..b2fdd5fb 100644 --- a/include/libcamera/base/span.h +++ b/include/libcamera/base/span.h @@ -124,7 +124,7 @@ public: constexpr Span(element_type (&arr)[N], std::enable_if_t (*)[], element_type (*)[]>::value && - N == Extent, + N == Extent, std::nullptr_t> = nullptr) noexcept : data_(arr) { @@ -134,7 +134,7 @@ public: constexpr Span(std::array &arr, std::enable_if_t (*)[], element_type (*)[]>::value && - N == Extent, + N == Extent, std::nullptr_t> = nullptr) noexcept : data_(arr.data()) { @@ -144,7 +144,7 @@ public: constexpr Span(const std::array &arr, std::enable_if_t (*)[], element_type (*)[]>::value && - N == Extent, + N == Extent, std::nullptr_t> = nullptr) noexcept : data_(arr.data()) { @@ -153,10 +153,10 @@ public: template explicit constexpr Span(Container &cont, std::enable_if_t::value && - !details::is_array::value && - !std::is_array::value && - std::is_convertible (*)[], - element_type (*)[]>::value, + !details::is_array::value && + !std::is_array::value && + std::is_convertible (*)[], + element_type (*)[]>::value, std::nullptr_t> = nullptr) : data_(utils::data(cont)) { @@ -165,10 +165,10 @@ public: template explicit constexpr Span(const Container &cont, std::enable_if_t::value && - !details::is_array::value && - !std::is_array::value && - std::is_convertible (*)[], - element_type (*)[]>::value, + !details::is_array::value && + !std::is_array::value && + std::is_convertible (*)[], + element_type (*)[]>::value, std::nullptr_t> = nullptr) : data_(utils::data(cont)) { @@ -178,7 +178,7 @@ public: template explicit constexpr Span(const Span &s, std::enable_if_t::value && - N == Extent, + N == Extent, std::nullptr_t> = nullptr) noexcept : data_(s.data()) { @@ -235,10 +235,7 @@ public: static_assert(Offset <= Extent, "Offset larger than size"); static_assert(Count == dynamic_extent || Count + Offset <= Extent, "Offset + Count larger than size"); - return Span{ - data() + Offset, - Count == dynamic_extent ? size() - Offset : Count - }; + return Span < element_type, Count != dynamic_extent ? Count : Extent - Offset > { data() + Offset, Count == dynamic_extent ? size() - Offset : Count }; } constexpr Span @@ -315,10 +312,10 @@ public: template constexpr Span(Container &cont, std::enable_if_t::value && - !details::is_array::value && - !std::is_array::value && - std::is_convertible (*)[], - element_type (*)[]>::value, + !details::is_array::value && + !std::is_array::value && + std::is_convertible (*)[], + element_type (*)[]>::value, std::nullptr_t> = nullptr) : data_(utils::data(cont)), size_(utils::size(cont)) { @@ -327,10 +324,10 @@ public: template constexpr Span(const Container &cont, std::enable_if_t::value && - !details::is_array::value && - !std::is_array::value && - std::is_convertible (*)[], - element_type (*)[]>::value, + !details::is_array::value && + !std::is_array::value && + std::is_convertible (*)[], + element_type (*)[]>::value, std::nullptr_t> = nullptr) : data_(utils::data(cont)), size_(utils::size(cont)) { diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp index 1bf4e270..926b3185 100644 --- a/src/ipa/raspberrypi/raspberrypi.cpp +++ b/src/ipa/raspberrypi/raspberrypi.cpp @@ -22,11 +22,12 @@ #include #include #include +#include + #include #include #include #include -#include #include "libcamera/internal/mapped_framebuffer.h" diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp index 8fd79be6..34d9f4c4 100644 --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp @@ -10,26 +10,26 @@ #include #include #include -#include #include #include +#include +#include +#include + #include #include #include #include #include -#include -#include -#include #include #include #include -#include -#include -#include +#include +#include +#include #include "libcamera/internal/bayer_format.h" #include "libcamera/internal/camera.h" @@ -42,6 +42,8 @@ #include "libcamera/internal/pipeline_handler.h" #include "libcamera/internal/v4l2_videodevice.h" +#include + #include "dma_heaps.h" #include "rpi_stream.h" @@ -174,8 +176,12 @@ V4L2SubdeviceFormat findBestFormat(const SensorFormats &formatsMap, const Size & return bestFormat; } -enum class Unicam : unsigned int { Image, Embedded }; -enum class Isp : unsigned int { Input, Output0, Output1, Stats }; +enum class Unicam : unsigned int { Image, + Embedded }; +enum class Isp : unsigned int { Input, + Output0, + Output1, + Stats }; } /* namespace */ @@ -250,7 +256,10 @@ public: * thread. So, we do not need to have any mutex to protect access to any * of the variables below. */ - enum class State { Stopped, Idle, Busy, IpaComplete }; + enum class State { Stopped, + Idle, + Busy, + IpaComplete }; State state_; struct BayerFrame { @@ -544,7 +553,6 @@ CameraConfiguration::Status RPiCameraConfiguration::validate() cfg.stride = format.planes[0].bpl; cfg.frameSize = format.planes[0].size; - } return status; @@ -651,8 +659,8 @@ CameraConfiguration *PipelineHandlerRPi::generateConfiguration(Camera *camera, PixelFormat pf = mbusCodeToPixelFormat(format.first, BayerFormat::Packing::CSI2); if (pf.isValid()) - deviceFormats.emplace(std::piecewise_construct, std::forward_as_tuple(pf), - std::forward_as_tuple(format.second.begin(), format.second.end())); + deviceFormats.emplace(std::piecewise_construct, std::forward_as_tuple(pf), + std::forward_as_tuple(format.second.begin(), format.second.end())); } } else { /* diff --git a/src/qcam/dng_writer.cpp b/src/qcam/dng_writer.cpp index 34c8df5a..a7dd30f8 100644 --- a/src/qcam/dng_writer.cpp +++ b/src/qcam/dng_writer.cpp @@ -11,12 +11,12 @@ #include #include -#include - #include #include #include +#include + using namespace libcamera; enum CFAPatternColour : uint8_t { @@ -201,7 +201,7 @@ void packScanlineIPU3(void *output, const void *input, unsigned int width) if (++x >= width) return; - *out++ = (in[4] & 0xff) << 8 | (in[3] & 0xc0) << 0; + *out++ = (in[4] & 0xff) << 8 | (in[3] & 0xc0) << 0; if (++x >= width) return; @@ -235,8 +235,7 @@ void thumbScanlineIPU3([[maybe_unused]] const FormatInfo &info, void *output, if (pixelInBlock == 24) pixelInBlock--; - const uint8_t *in = static_cast(input) - + block * 32 + (pixelInBlock / 4) * 5; + const uint8_t *in = static_cast(input) + block * 32 + (pixelInBlock / 4) * 5; uint16_t val1, val2, val3, val4; switch (pixelInBlock % 4) { @@ -254,14 +253,14 @@ void thumbScanlineIPU3([[maybe_unused]] const FormatInfo &info, void *output, break; case 2: val1 = (in[3] & 0x3f) << 10 | (in[2] & 0xf0) << 2; - val2 = (in[4] & 0xff) << 8 | (in[3] & 0xc0) << 0; + val2 = (in[4] & 0xff) << 8 | (in[3] & 0xc0) << 0; val3 = (in[stride + 3] & 0x3f) << 10 | (in[stride + 2] & 0xf0) << 2; - val4 = (in[stride + 4] & 0xff) << 8 | (in[stride + 3] & 0xc0) << 0; + val4 = (in[stride + 4] & 0xff) << 8 | (in[stride + 3] & 0xc0) << 0; break; case 3: - val1 = (in[4] & 0xff) << 8 | (in[3] & 0xc0) << 0; + val1 = (in[4] & 0xff) << 8 | (in[3] & 0xc0) << 0; val2 = (in[6] & 0x03) << 14 | (in[5] & 0xff) << 6; - val3 = (in[stride + 4] & 0xff) << 8 | (in[stride + 3] & 0xc0) << 0; + val3 = (in[stride + 4] & 0xff) << 8 | (in[stride + 3] & 0xc0) << 0; val4 = (in[stride + 6] & 0x03) << 14 | (in[stride + 5] & 0xff) << 6; break; } @@ -275,77 +274,77 @@ void thumbScanlineIPU3([[maybe_unused]] const FormatInfo &info, void *output, static const std::map formatInfo = { { formats::SBGGR10_CSI2P, { - .bitsPerSample = 10, - .pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed }, - .packScanline = packScanlineSBGGR10P, - .thumbScanline = thumbScanlineSBGGRxxP, - } }, + .bitsPerSample = 10, + .pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed }, + .packScanline = packScanlineSBGGR10P, + .thumbScanline = thumbScanlineSBGGRxxP, + } }, { formats::SGBRG10_CSI2P, { - .bitsPerSample = 10, - .pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen }, - .packScanline = packScanlineSBGGR10P, - .thumbScanline = thumbScanlineSBGGRxxP, - } }, + .bitsPerSample = 10, + .pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen }, + .packScanline = packScanlineSBGGR10P, + .thumbScanline = thumbScanlineSBGGRxxP, + } }, { formats::SGRBG10_CSI2P, { - .bitsPerSample = 10, - .pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen }, - .packScanline = packScanlineSBGGR10P, - .thumbScanline = thumbScanlineSBGGRxxP, - } }, + .bitsPerSample = 10, + .pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen }, + .packScanline = packScanlineSBGGR10P, + .thumbScanline = thumbScanlineSBGGRxxP, + } }, { formats::SRGGB10_CSI2P, { - .bitsPerSample = 10, - .pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue }, - .packScanline = packScanlineSBGGR10P, - .thumbScanline = thumbScanlineSBGGRxxP, - } }, + .bitsPerSample = 10, + .pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue }, + .packScanline = packScanlineSBGGR10P, + .thumbScanline = thumbScanlineSBGGRxxP, + } }, { formats::SBGGR12_CSI2P, { - .bitsPerSample = 12, - .pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed }, - .packScanline = packScanlineSBGGR12P, - .thumbScanline = thumbScanlineSBGGRxxP, - } }, + .bitsPerSample = 12, + .pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed }, + .packScanline = packScanlineSBGGR12P, + .thumbScanline = thumbScanlineSBGGRxxP, + } }, { formats::SGBRG12_CSI2P, { - .bitsPerSample = 12, - .pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen }, - .packScanline = packScanlineSBGGR12P, - .thumbScanline = thumbScanlineSBGGRxxP, - } }, + .bitsPerSample = 12, + .pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen }, + .packScanline = packScanlineSBGGR12P, + .thumbScanline = thumbScanlineSBGGRxxP, + } }, { formats::SGRBG12_CSI2P, { - .bitsPerSample = 12, - .pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen }, - .packScanline = packScanlineSBGGR12P, - .thumbScanline = thumbScanlineSBGGRxxP, - } }, + .bitsPerSample = 12, + .pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen }, + .packScanline = packScanlineSBGGR12P, + .thumbScanline = thumbScanlineSBGGRxxP, + } }, { formats::SRGGB12_CSI2P, { - .bitsPerSample = 12, - .pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue }, - .packScanline = packScanlineSBGGR12P, - .thumbScanline = thumbScanlineSBGGRxxP, - } }, + .bitsPerSample = 12, + .pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue }, + .packScanline = packScanlineSBGGR12P, + .thumbScanline = thumbScanlineSBGGRxxP, + } }, { formats::SBGGR10_IPU3, { - .bitsPerSample = 16, - .pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed }, - .packScanline = packScanlineIPU3, - .thumbScanline = thumbScanlineIPU3, - } }, + .bitsPerSample = 16, + .pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed }, + .packScanline = packScanlineIPU3, + .thumbScanline = thumbScanlineIPU3, + } }, { formats::SGBRG10_IPU3, { - .bitsPerSample = 16, - .pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen }, - .packScanline = packScanlineIPU3, - .thumbScanline = thumbScanlineIPU3, - } }, + .bitsPerSample = 16, + .pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen }, + .packScanline = packScanlineIPU3, + .thumbScanline = thumbScanlineIPU3, + } }, { formats::SGRBG10_IPU3, { - .bitsPerSample = 16, - .pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen }, - .packScanline = packScanlineIPU3, - .thumbScanline = thumbScanlineIPU3, - } }, + .bitsPerSample = 16, + .pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen }, + .packScanline = packScanlineIPU3, + .thumbScanline = thumbScanlineIPU3, + } }, { formats::SRGGB10_IPU3, { - .bitsPerSample = 16, - .pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue }, - .packScanline = packScanlineIPU3, - .thumbScanline = thumbScanlineIPU3, - } }, + .bitsPerSample = 16, + .pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue }, + .packScanline = packScanlineIPU3, + .thumbScanline = thumbScanlineIPU3, + } }, }; int DNGWriter::write(const char *filename, const Camera *camera, @@ -524,7 +523,8 @@ int DNGWriter::write(const char *filename, const Camera *camera, */ unsigned int green = (info->pattern[0] == CFAPatternRed || info->pattern[1] == CFAPatternRed) - ? 0 : 1; + ? 0 + : 1; for (unsigned int i = 0; i < 4; ++i) { unsigned int level; diff --git a/test/span.cpp b/test/span.cpp index abf3a5d6..3c3f6937 100644 --- a/test/span.cpp +++ b/test/span.cpp @@ -9,12 +9,12 @@ * Include first to ensure the header is self-contained, as there's no span.cpp * in libcamera. */ -#include - #include #include #include +#include + #include "test.h" using namespace std;