From patchwork Fri Apr 1 00:06:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Rauch X-Patchwork-Id: 15607 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 ADE15C3266 for ; Fri, 1 Apr 2022 00:06:49 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 3E7166563B; Fri, 1 Apr 2022 02:06:49 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1648771609; bh=MgYIrK0mESwIgxjRuASeFAMcLUTFookB9j/ke6uuGXY=; 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=pW2qTIXNcvI1lneTmCDEtGfLdQPp58YNbSTOQHG5wtKsIqR055/AfWWbPtsC/sLij 9P8BOC3tr10j1cqc1ged+Ks9gjiaV3CT1QuRDmOIDBygUgRQ9vMg5JDvPbVtyYLS5o VLiAgipf/YOayOfZOZRqjXLnu+op3yWHYGTbxJj70qqwZrxL6aIwSHTMhIFVC6a9fG oG3J0pd9jL0HThywhv5SaIED937Y3+MI4u8bI2cbbi/8yEzYNYaobR98hgS0yf+yyd zU6FTnRW1pQIGnaToq1ARUaUQbxChX/yG0aDRCahUqd24NZxmzMJRJuRNXySo0oT3I czUZqEuPWAjnA== Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 1E62F60135 for ; Fri, 1 Apr 2022 02:06:46 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=gmx.net header.i=@gmx.net header.b="W8S/aA6L"; dkim-atps=neutral DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1648771605; bh=MgYIrK0mESwIgxjRuASeFAMcLUTFookB9j/ke6uuGXY=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=W8S/aA6LiS8P0TiaS5rO2bUmHWnq4CbgmW7uQWpNh2TfdDLZcs3FjrThEGQ8ofTtJ IxHA0EJPAX5R2sQgIHlENTqBOeT2T4cXpfljABDYzuRIJ5b1jzSj5j+BRm+8c6dnmd 3y7FK+knlm1uQlIuNByo2TheZMwQhhem17XO5qsw= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from localhost.localdomain ([92.10.251.63]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MF3DW-1npXHp2WeO-00FPXw; Fri, 01 Apr 2022 02:06:45 +0200 To: libcamera-devel@lists.libcamera.org Date: Fri, 1 Apr 2022 01:06:15 +0100 Message-Id: <20220401000616.12976-5-Rauch.Christian@gmx.de> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220401000616.12976-1-Rauch.Christian@gmx.de> References: <20220401000616.12976-1-Rauch.Christian@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:6W7XQZ8nUlpCshYLk9H6dhcx5dzp67UIFTwXfPGkbpu6ETtX2X/ AxYcfbF/2LNZk+okpJ6w5PrMSKiCMVhdcKA5D7v42+laSrJ042R1bdxVyYxRAIrV0oXU/Gc vJ1m4mWJ8tA6C6m8F0OCamxJj5KBRBDMDHu/IxLL/vG3nxKp9hxJUeBv7HZONAHi0HEMejh IaAG55FJSJ0gmPsl0dpVQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:JQxk3HPg+lU=:85Xxo+GMfI3icoET23FK6k m25B0cCOWmqSrp9EXfSqI26pw5Sj7XJfc6Weyikb323kTKCv8d9dXieBDMclNUhozfQp1XqNE I6xkY1pn/j8dXAjLUGYpGOsLbnGY5hfSwmwuFRL+20EcCt0gKOGMNO+XjvXbVL8Cp2mpL3Xhp awxTow4fPkwo7Jqofd5nM8MZF8TYRzXd02dmDKa0F91qT+3xiz5NeJPBw499GgkspD9AxIfiK i87bNTTup2J25/PH51zOnsN85e7A4cC2WtPzlIUDHaMfWeAnWpH6jHC0yvQpRY/eng1B9lGiY N+zwO2MxT672av8ByefJpc7EvDrsJgBs4F3tgrbFXKdmOaFMKpWJtZ/wR7uM+C7JdPxw8Lagy N5TDGqBXFVxH9z8HV5IaRIt0hTRAL8kobVvNk5zJnw4gvrJsV0xQic8pV/fTT2eNAjLM51F55 Y/W4y+axobfnlKxOahopoo1Dg+iVO5nXfZej2/rKTIfcsBIgA1PBoeepCil2K2ts2Fi3cqAge n8amZfaR2YQ2efoFxMXd/lSOe0WibwYkAFAoC6hLYmXCUIBfhuoP4r4rpo93Oo47a8MDKIxn7 71cvZqAc4jHRa/8d5P+uarR1r7roQa1ynyoxgJ2TnlmtRVyPbrsC+WtPjQ76qGp0XQLI0yN6b 7iZvP2WXqsiP9q7DdVKAoMwPsUDZ8psYp6+DfnlrFNHt6QOAYX5/T654ySrDc/rpGBSw46V5N jr3XqSaP+Vikz26kXwQk2hl0R1RE9uiJmgcumk29gbfRKnT+Cz/TKXDgpVoTwWU9YF+nUODw8 J8QAWtzWfkVU03J6aiv3Ll0BP9IhGlyDfJXlCZG6wxPES/ldFXaUjvFIdkqv8XmFxS0i2EazM cMGYBvbbLOgAyFQzSlfEmpbO9zjqWZerleU0wJqtEGJjJrm3qwqJyIFI7dFohWHgboybsJzza AQYy94enCs6PrIhMNipiOycf/4GQOF5REbzt7kJ/d8OIfH9xHfMTFEOeGEgl5XK3RJOQsWvzI yM8vEvaioEjoR/gDyC8ct4O2nHUCkghSkfaBnu/QM32M2wN+MMrDE7JlkNMH4sGWGvH43wFPc XAa7WWwXKHAyQA= Subject: [libcamera-devel] [PATCH 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 7a4806dc..a38f6161 100644 --- a/include/libcamera/base/span.h +++ b/include/libcamera/base/span.h @@ -131,7 +131,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) { @@ -141,7 +141,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()) { @@ -151,7 +151,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()) { @@ -160,10 +160,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)) { @@ -172,10 +172,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)) { @@ -185,7 +185,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()) { @@ -242,10 +242,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 @@ -322,10 +319,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)) { @@ -334,10 +331,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 c37e2a66..bf3b77fa 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;