{"id":15607,"url":"https://patchwork.libcamera.org/api/1.1/patches/15607/?format=json","web_url":"https://patchwork.libcamera.org/patch/15607/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20220401000616.12976-5-Rauch.Christian@gmx.de>","date":"2022-04-01T00:06:15","name":"[libcamera-devel,4/5] apply clang-format style","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"4d30cfbe24cebf840728929343186234c2875e0c","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/1.1/people/111/?format=json","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/15607/mbox/","series":[{"id":3022,"url":"https://patchwork.libcamera.org/api/1.1/series/3022/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=3022","date":"2022-04-01T00:06:11","name":"generate and use fixed-sized Span Control types","version":1,"mbox":"https://patchwork.libcamera.org/series/3022/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/15607/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/15607/checks/","tags":{},"headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id ADE15C3266\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  1 Apr 2022 00:06:49 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3E7166563B;\n\tFri,  1 Apr 2022 02:06:49 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.15.18])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1E62F60135\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  1 Apr 2022 02:06:46 +0200 (CEST)","from localhost.localdomain ([92.10.251.63]) by mail.gmx.net\n\t(mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id\n\t1MF3DW-1npXHp2WeO-00FPXw; Fri, 01 Apr 2022 02:06:45 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1648771609;\n\tbh=MgYIrK0mESwIgxjRuASeFAMcLUTFookB9j/ke6uuGXY=;\n\th=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=pW2qTIXNcvI1lneTmCDEtGfLdQPp58YNbSTOQHG5wtKsIqR055/AfWWbPtsC/sLij\n\t9P8BOC3tr10j1cqc1ged+Ks9gjiaV3CT1QuRDmOIDBygUgRQ9vMg5JDvPbVtyYLS5o\n\tVLiAgipf/YOayOfZOZRqjXLnu+op3yWHYGTbxJj70qqwZrxL6aIwSHTMhIFVC6a9fG\n\toG3J0pd9jL0HThywhv5SaIED937Y3+MI4u8bI2cbbi/8yEzYNYaobR98hgS0yf+yyd\n\tzU6FTnRW1pQIGnaToq1ARUaUQbxChX/yG0aDRCahUqd24NZxmzMJRJuRNXySo0oT3I\n\tczUZqEuPWAjnA==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1648771605;\n\tbh=MgYIrK0mESwIgxjRuASeFAMcLUTFookB9j/ke6uuGXY=;\n\th=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References;\n\tb=W8S/aA6LiS8P0TiaS5rO2bUmHWnq4CbgmW7uQWpNh2TfdDLZcs3FjrThEGQ8ofTtJ\n\tIxHA0EJPAX5R2sQgIHlENTqBOeT2T4cXpfljABDYzuRIJ5b1jzSj5j+BRm+8c6dnmd\n\t3y7FK+knlm1uQlIuNByo2TheZMwQhhem17XO5qsw="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"W8S/aA6L\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","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","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:6W7XQZ8nUlpCshYLk9H6dhcx5dzp67UIFTwXfPGkbpu6ETtX2X/\n\tAxYcfbF/2LNZk+okpJ6w5PrMSKiCMVhdcKA5D7v42+laSrJ042R1bdxVyYxRAIrV0oXU/Gc\n\tvJ1m4mWJ8tA6C6m8F0OCamxJj5KBRBDMDHu/IxLL/vG3nxKp9hxJUeBv7HZONAHi0HEMejh\n\tIaAG55FJSJ0gmPsl0dpVQ==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:JQxk3HPg+lU=:85Xxo+GMfI3icoET23FK6k\n\tm25B0cCOWmqSrp9EXfSqI26pw5Sj7XJfc6Weyikb323kTKCv8d9dXieBDMclNUhozfQp1XqNE\n\tI6xkY1pn/j8dXAjLUGYpGOsLbnGY5hfSwmwuFRL+20EcCt0gKOGMNO+XjvXbVL8Cp2mpL3Xhp\n\tawxTow4fPkwo7Jqofd5nM8MZF8TYRzXd02dmDKa0F91qT+3xiz5NeJPBw499GgkspD9AxIfiK\n\ti87bNTTup2J25/PH51zOnsN85e7A4cC2WtPzlIUDHaMfWeAnWpH6jHC0yvQpRY/eng1B9lGiY\n\tN+zwO2MxT672av8ByefJpc7EvDrsJgBs4F3tgrbFXKdmOaFMKpWJtZ/wR7uM+C7JdPxw8Lagy\n\tN5TDGqBXFVxH9z8HV5IaRIt0hTRAL8kobVvNk5zJnw4gvrJsV0xQic8pV/fTT2eNAjLM51F55\n\tY/W4y+axobfnlKxOahopoo1Dg+iVO5nXfZej2/rKTIfcsBIgA1PBoeepCil2K2ts2Fi3cqAge\n\tn8amZfaR2YQ2efoFxMXd/lSOe0WibwYkAFAoC6hLYmXCUIBfhuoP4r4rpo93Oo47a8MDKIxn7\n\t71cvZqAc4jHRa/8d5P+uarR1r7roQa1ynyoxgJ2TnlmtRVyPbrsC+WtPjQ76qGp0XQLI0yN6b\n\t7iZvP2WXqsiP9q7DdVKAoMwPsUDZ8psYp6+DfnlrFNHt6QOAYX5/T654ySrDc/rpGBSw46V5N\n\tjr3XqSaP+Vikz26kXwQk2hl0R1RE9uiJmgcumk29gbfRKnT+Cz/TKXDgpVoTwWU9YF+nUODw8\n\tJ8QAWtzWfkVU03J6aiv3Ll0BP9IhGlyDfJXlCZG6wxPES/ldFXaUjvFIdkqv8XmFxS0i2EazM\n\tcMGYBvbbLOgAyFQzSlfEmpbO9zjqWZerleU0wJqtEGJjJrm3qwqJyIFI7dFohWHgboybsJzza\n\tAQYy94enCs6PrIhMNipiOycf/4GQOF5REbzt7kJ/d8OIfH9xHfMTFEOeGEgl5XK3RJOQsWvzI\n\tyM8vEvaioEjoR/gDyC8ct4O2nHUCkghSkfaBnu/QM32M2wN+MMrDE7JlkNMH4sGWGvH43wFPc\n\tXAa7WWwXKHAyQA=","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":"<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>","From":"Christian Rauch via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Christian Rauch <Rauch.Christian@gmx.de>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n---\n include/libcamera/base/span.h                 |  45 +++---\n src/ipa/raspberrypi/raspberrypi.cpp           |   3 +-\n .../pipeline/raspberrypi/raspberrypi.cpp      |  34 +++--\n src/qcam/dng_writer.cpp                       | 140 +++++++++---------\n test/span.cpp                                 |   4 +-\n 5 files changed, 116 insertions(+), 110 deletions(-)\n\n--\n2.25.1","diff":"diff --git a/include/libcamera/base/span.h b/include/libcamera/base/span.h\nindex 7a4806dc..a38f6161 100644\n--- a/include/libcamera/base/span.h\n+++ b/include/libcamera/base/span.h\n@@ -131,7 +131,7 @@ public:\n \tconstexpr Span(element_type (&arr)[N],\n \t\t       std::enable_if_t<std::is_convertible<std::remove_pointer_t<decltype(utils::data(arr))> (*)[],\n \t\t\t\t\t\t\t    element_type (*)[]>::value &&\n-\t\t\t\t\tN == Extent,\n+\t\t\t\t\t\tN == Extent,\n \t\t\t\t\tstd::nullptr_t> = nullptr) noexcept\n \t\t: data_(arr)\n \t{\n@@ -141,7 +141,7 @@ public:\n \tconstexpr Span(std::array<value_type, N> &arr,\n \t\t       std::enable_if_t<std::is_convertible<std::remove_pointer_t<decltype(utils::data(arr))> (*)[],\n \t\t\t\t\t\t\t    element_type (*)[]>::value &&\n-\t\t\t\t\tN == Extent,\n+\t\t\t\t\t\tN == Extent,\n \t\t\t\t\tstd::nullptr_t> = nullptr) noexcept\n \t\t: data_(arr.data())\n \t{\n@@ -151,7 +151,7 @@ public:\n \tconstexpr Span(const std::array<value_type, N> &arr,\n \t\t       std::enable_if_t<std::is_convertible<std::remove_pointer_t<decltype(utils::data(arr))> (*)[],\n \t\t\t\t\t\t\t    element_type (*)[]>::value &&\n-\t\t\t\t\tN == Extent,\n+\t\t\t\t\t\tN == Extent,\n \t\t\t\t\tstd::nullptr_t> = nullptr) noexcept\n \t\t: data_(arr.data())\n \t{\n@@ -160,10 +160,10 @@ public:\n \ttemplate<class Container>\n \texplicit constexpr Span(Container &cont,\n \t\t\t\tstd::enable_if_t<!details::is_span<Container>::value &&\n-\t\t\t\t\t\t !details::is_array<Container>::value &&\n-\t\t\t\t\t\t !std::is_array<Container>::value &&\n-\t\t\t\t\t\t std::is_convertible<std::remove_pointer_t<decltype(utils::data(cont))> (*)[],\n-\t\t\t\t\t\t\t\t     element_type (*)[]>::value,\n+\t\t\t\t\t\t\t !details::is_array<Container>::value &&\n+\t\t\t\t\t\t\t !std::is_array<Container>::value &&\n+\t\t\t\t\t\t\t std::is_convertible<std::remove_pointer_t<decltype(utils::data(cont))> (*)[],\n+\t\t\t\t\t\t\t\t\t     element_type (*)[]>::value,\n \t\t\t\t\t\t std::nullptr_t> = nullptr)\n \t\t: data_(utils::data(cont))\n \t{\n@@ -172,10 +172,10 @@ public:\n \ttemplate<class Container>\n \texplicit constexpr Span(const Container &cont,\n \t\t\t\tstd::enable_if_t<!details::is_span<Container>::value &&\n-\t\t\t\t\t\t !details::is_array<Container>::value &&\n-\t\t\t\t\t\t !std::is_array<Container>::value &&\n-\t\t\t\t\t\t std::is_convertible<std::remove_pointer_t<decltype(utils::data(cont))> (*)[],\n-\t\t\t\t\t\t\t\t     element_type (*)[]>::value,\n+\t\t\t\t\t\t\t !details::is_array<Container>::value &&\n+\t\t\t\t\t\t\t !std::is_array<Container>::value &&\n+\t\t\t\t\t\t\t std::is_convertible<std::remove_pointer_t<decltype(utils::data(cont))> (*)[],\n+\t\t\t\t\t\t\t\t\t     element_type (*)[]>::value,\n \t\t\t\t\t\t std::nullptr_t> = nullptr)\n \t\t: data_(utils::data(cont))\n \t{\n@@ -185,7 +185,7 @@ public:\n \ttemplate<class U, std::size_t N>\n \texplicit constexpr Span(const Span<U, N> &s,\n \t\t\t\tstd::enable_if_t<std::is_convertible<U (*)[], element_type (*)[]>::value &&\n-\t\t\t\t\t\t N == Extent,\n+\t\t\t\t\t\t\t N == Extent,\n \t\t\t\t\t\t std::nullptr_t> = nullptr) noexcept\n \t\t: data_(s.data())\n \t{\n@@ -242,10 +242,7 @@ public:\n \t\tstatic_assert(Offset <= Extent, \"Offset larger than size\");\n \t\tstatic_assert(Count == dynamic_extent || Count + Offset <= Extent,\n \t\t\t      \"Offset + Count larger than size\");\n-\t\treturn Span<element_type, Count != dynamic_extent ? Count : Extent - Offset>{\n-\t\t\tdata() + Offset,\n-\t\t\tCount == dynamic_extent ? size() - Offset : Count\n-\t\t};\n+\t\treturn Span < element_type, Count != dynamic_extent ? Count : Extent - Offset > { data() + Offset, Count == dynamic_extent ? size() - Offset : Count };\n \t}\n\n \tconstexpr Span<element_type, dynamic_extent>\n@@ -322,10 +319,10 @@ public:\n \ttemplate<class Container>\n \tconstexpr Span(Container &cont,\n \t\t       std::enable_if_t<!details::is_span<Container>::value &&\n-\t\t\t\t\t!details::is_array<Container>::value &&\n-\t\t\t\t\t!std::is_array<Container>::value &&\n-\t\t\t\t\tstd::is_convertible<std::remove_pointer_t<decltype(utils::data(cont))> (*)[],\n-\t\t\t\t\t\t\t    element_type (*)[]>::value,\n+\t\t\t\t\t\t!details::is_array<Container>::value &&\n+\t\t\t\t\t\t!std::is_array<Container>::value &&\n+\t\t\t\t\t\tstd::is_convertible<std::remove_pointer_t<decltype(utils::data(cont))> (*)[],\n+\t\t\t\t\t\t\t\t    element_type (*)[]>::value,\n \t\t\t\t\tstd::nullptr_t> = nullptr)\n \t\t: data_(utils::data(cont)), size_(utils::size(cont))\n \t{\n@@ -334,10 +331,10 @@ public:\n \ttemplate<class Container>\n \tconstexpr Span(const Container &cont,\n \t\t       std::enable_if_t<!details::is_span<Container>::value &&\n-\t\t\t\t\t!details::is_array<Container>::value &&\n-\t\t\t\t\t!std::is_array<Container>::value &&\n-\t\t\t\t\tstd::is_convertible<std::remove_pointer_t<decltype(utils::data(cont))> (*)[],\n-\t\t\t\t\t\t\t    element_type (*)[]>::value,\n+\t\t\t\t\t\t!details::is_array<Container>::value &&\n+\t\t\t\t\t\t!std::is_array<Container>::value &&\n+\t\t\t\t\t\tstd::is_convertible<std::remove_pointer_t<decltype(utils::data(cont))> (*)[],\n+\t\t\t\t\t\t\t\t    element_type (*)[]>::value,\n \t\t\t\t\tstd::nullptr_t> = nullptr)\n \t\t: data_(utils::data(cont)), size_(utils::size(cont))\n \t{\ndiff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp\nindex 1bf4e270..926b3185 100644\n--- a/src/ipa/raspberrypi/raspberrypi.cpp\n+++ b/src/ipa/raspberrypi/raspberrypi.cpp\n@@ -22,11 +22,12 @@\n #include <libcamera/control_ids.h>\n #include <libcamera/controls.h>\n #include <libcamera/framebuffer.h>\n+#include <libcamera/request.h>\n+\n #include <libcamera/ipa/ipa_interface.h>\n #include <libcamera/ipa/ipa_module_info.h>\n #include <libcamera/ipa/raspberrypi.h>\n #include <libcamera/ipa/raspberrypi_ipa_interface.h>\n-#include <libcamera/request.h>\n\n #include \"libcamera/internal/mapped_framebuffer.h\"\n\ndiff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\nindex 8fd79be6..34d9f4c4 100644\n--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n@@ -10,26 +10,26 @@\n #include <fcntl.h>\n #include <memory>\n #include <mutex>\n-#include <queue>\n #include <unordered_set>\n #include <utility>\n\n+#include <linux/bcm2835-isp.h>\n+#include <linux/media-bus-format.h>\n+#include <linux/videodev2.h>\n+\n #include <libcamera/base/shared_fd.h>\n #include <libcamera/base/utils.h>\n\n #include <libcamera/camera.h>\n #include <libcamera/control_ids.h>\n #include <libcamera/formats.h>\n-#include <libcamera/ipa/raspberrypi.h>\n-#include <libcamera/ipa/raspberrypi_ipa_interface.h>\n-#include <libcamera/ipa/raspberrypi_ipa_proxy.h>\n #include <libcamera/logging.h>\n #include <libcamera/property_ids.h>\n #include <libcamera/request.h>\n\n-#include <linux/bcm2835-isp.h>\n-#include <linux/media-bus-format.h>\n-#include <linux/videodev2.h>\n+#include <libcamera/ipa/raspberrypi.h>\n+#include <libcamera/ipa/raspberrypi_ipa_interface.h>\n+#include <libcamera/ipa/raspberrypi_ipa_proxy.h>\n\n #include \"libcamera/internal/bayer_format.h\"\n #include \"libcamera/internal/camera.h\"\n@@ -42,6 +42,8 @@\n #include \"libcamera/internal/pipeline_handler.h\"\n #include \"libcamera/internal/v4l2_videodevice.h\"\n\n+#include <queue>\n+\n #include \"dma_heaps.h\"\n #include \"rpi_stream.h\"\n\n@@ -174,8 +176,12 @@ V4L2SubdeviceFormat findBestFormat(const SensorFormats &formatsMap, const Size &\n \treturn bestFormat;\n }\n\n-enum class Unicam : unsigned int { Image, Embedded };\n-enum class Isp : unsigned int { Input, Output0, Output1, Stats };\n+enum class Unicam : unsigned int { Image,\n+\t\t\t\t   Embedded };\n+enum class Isp : unsigned int { Input,\n+\t\t\t\tOutput0,\n+\t\t\t\tOutput1,\n+\t\t\t\tStats };\n\n } /* namespace */\n\n@@ -250,7 +256,10 @@ public:\n \t * thread. So, we do not need to have any mutex to protect access to any\n \t * of the variables below.\n \t */\n-\tenum class State { Stopped, Idle, Busy, IpaComplete };\n+\tenum class State { Stopped,\n+\t\t\t   Idle,\n+\t\t\t   Busy,\n+\t\t\t   IpaComplete };\n \tState state_;\n\n \tstruct BayerFrame {\n@@ -544,7 +553,6 @@ CameraConfiguration::Status RPiCameraConfiguration::validate()\n\n \t\tcfg.stride = format.planes[0].bpl;\n \t\tcfg.frameSize = format.planes[0].size;\n-\n \t}\n\n \treturn status;\n@@ -651,8 +659,8 @@ CameraConfiguration *PipelineHandlerRPi::generateConfiguration(Camera *camera,\n \t\t\t\tPixelFormat pf = mbusCodeToPixelFormat(format.first,\n \t\t\t\t\t\t\t\t       BayerFormat::Packing::CSI2);\n \t\t\t\tif (pf.isValid())\n-\t\t\t\t\tdeviceFormats.emplace(std::piecewise_construct,\tstd::forward_as_tuple(pf),\n-\t\t\t\t\t\tstd::forward_as_tuple(format.second.begin(), format.second.end()));\n+\t\t\t\t\tdeviceFormats.emplace(std::piecewise_construct, std::forward_as_tuple(pf),\n+\t\t\t\t\t\t\t      std::forward_as_tuple(format.second.begin(), format.second.end()));\n \t\t\t}\n \t\t} else {\n \t\t\t/*\ndiff --git a/src/qcam/dng_writer.cpp b/src/qcam/dng_writer.cpp\nindex 34c8df5a..a7dd30f8 100644\n--- a/src/qcam/dng_writer.cpp\n+++ b/src/qcam/dng_writer.cpp\n@@ -11,12 +11,12 @@\n #include <iostream>\n #include <map>\n\n-#include <tiffio.h>\n-\n #include <libcamera/control_ids.h>\n #include <libcamera/formats.h>\n #include <libcamera/property_ids.h>\n\n+#include <tiffio.h>\n+\n using namespace libcamera;\n\n enum CFAPatternColour : uint8_t {\n@@ -201,7 +201,7 @@ void packScanlineIPU3(void *output, const void *input, unsigned int width)\n \t\t\tif (++x >= width)\n \t\t\t\treturn;\n\n-\t\t\t*out++ = (in[4] & 0xff) <<  8 | (in[3] & 0xc0) << 0;\n+\t\t\t*out++ = (in[4] & 0xff) << 8 | (in[3] & 0xc0) << 0;\n \t\t\tif (++x >= width)\n \t\t\t\treturn;\n\n@@ -235,8 +235,7 @@ void thumbScanlineIPU3([[maybe_unused]] const FormatInfo &info, void *output,\n \t\tif (pixelInBlock == 24)\n \t\t\tpixelInBlock--;\n\n-\t\tconst uint8_t *in = static_cast<const uint8_t *>(input)\n-\t\t\t\t  + block * 32 + (pixelInBlock / 4) * 5;\n+\t\tconst uint8_t *in = static_cast<const uint8_t *>(input) + block * 32 + (pixelInBlock / 4) * 5;\n\n \t\tuint16_t val1, val2, val3, val4;\n \t\tswitch (pixelInBlock % 4) {\n@@ -254,14 +253,14 @@ void thumbScanlineIPU3([[maybe_unused]] const FormatInfo &info, void *output,\n \t\t\tbreak;\n \t\tcase 2:\n \t\t\tval1 = (in[3] & 0x3f) << 10 | (in[2] & 0xf0) << 2;\n-\t\t\tval2 = (in[4] & 0xff) <<  8 | (in[3] & 0xc0) << 0;\n+\t\t\tval2 = (in[4] & 0xff) << 8 | (in[3] & 0xc0) << 0;\n \t\t\tval3 = (in[stride + 3] & 0x3f) << 10 | (in[stride + 2] & 0xf0) << 2;\n-\t\t\tval4 = (in[stride + 4] & 0xff) <<  8 | (in[stride + 3] & 0xc0) << 0;\n+\t\t\tval4 = (in[stride + 4] & 0xff) << 8 | (in[stride + 3] & 0xc0) << 0;\n \t\t\tbreak;\n \t\tcase 3:\n-\t\t\tval1 = (in[4] & 0xff) <<  8 | (in[3] & 0xc0) << 0;\n+\t\t\tval1 = (in[4] & 0xff) << 8 | (in[3] & 0xc0) << 0;\n \t\t\tval2 = (in[6] & 0x03) << 14 | (in[5] & 0xff) << 6;\n-\t\t\tval3 = (in[stride + 4] & 0xff) <<  8 | (in[stride + 3] & 0xc0) << 0;\n+\t\t\tval3 = (in[stride + 4] & 0xff) << 8 | (in[stride + 3] & 0xc0) << 0;\n \t\t\tval4 = (in[stride + 6] & 0x03) << 14 | (in[stride + 5] & 0xff) << 6;\n \t\t\tbreak;\n \t\t}\n@@ -275,77 +274,77 @@ void thumbScanlineIPU3([[maybe_unused]] const FormatInfo &info, void *output,\n\n static const std::map<PixelFormat, FormatInfo> formatInfo = {\n \t{ formats::SBGGR10_CSI2P, {\n-\t\t.bitsPerSample = 10,\n-\t\t.pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },\n-\t\t.packScanline = packScanlineSBGGR10P,\n-\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n-\t} },\n+\t\t\t\t\t  .bitsPerSample = 10,\n+\t\t\t\t\t  .pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },\n+\t\t\t\t\t  .packScanline = packScanlineSBGGR10P,\n+\t\t\t\t\t  .thumbScanline = thumbScanlineSBGGRxxP,\n+\t\t\t\t  } },\n \t{ formats::SGBRG10_CSI2P, {\n-\t\t.bitsPerSample = 10,\n-\t\t.pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen },\n-\t\t.packScanline = packScanlineSBGGR10P,\n-\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n-\t} },\n+\t\t\t\t\t  .bitsPerSample = 10,\n+\t\t\t\t\t  .pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen },\n+\t\t\t\t\t  .packScanline = packScanlineSBGGR10P,\n+\t\t\t\t\t  .thumbScanline = thumbScanlineSBGGRxxP,\n+\t\t\t\t  } },\n \t{ formats::SGRBG10_CSI2P, {\n-\t\t.bitsPerSample = 10,\n-\t\t.pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen },\n-\t\t.packScanline = packScanlineSBGGR10P,\n-\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n-\t} },\n+\t\t\t\t\t  .bitsPerSample = 10,\n+\t\t\t\t\t  .pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen },\n+\t\t\t\t\t  .packScanline = packScanlineSBGGR10P,\n+\t\t\t\t\t  .thumbScanline = thumbScanlineSBGGRxxP,\n+\t\t\t\t  } },\n \t{ formats::SRGGB10_CSI2P, {\n-\t\t.bitsPerSample = 10,\n-\t\t.pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue },\n-\t\t.packScanline = packScanlineSBGGR10P,\n-\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n-\t} },\n+\t\t\t\t\t  .bitsPerSample = 10,\n+\t\t\t\t\t  .pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue },\n+\t\t\t\t\t  .packScanline = packScanlineSBGGR10P,\n+\t\t\t\t\t  .thumbScanline = thumbScanlineSBGGRxxP,\n+\t\t\t\t  } },\n \t{ formats::SBGGR12_CSI2P, {\n-\t\t.bitsPerSample = 12,\n-\t\t.pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },\n-\t\t.packScanline = packScanlineSBGGR12P,\n-\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n-\t} },\n+\t\t\t\t\t  .bitsPerSample = 12,\n+\t\t\t\t\t  .pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },\n+\t\t\t\t\t  .packScanline = packScanlineSBGGR12P,\n+\t\t\t\t\t  .thumbScanline = thumbScanlineSBGGRxxP,\n+\t\t\t\t  } },\n \t{ formats::SGBRG12_CSI2P, {\n-\t\t.bitsPerSample = 12,\n-\t\t.pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen },\n-\t\t.packScanline = packScanlineSBGGR12P,\n-\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n-\t} },\n+\t\t\t\t\t  .bitsPerSample = 12,\n+\t\t\t\t\t  .pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen },\n+\t\t\t\t\t  .packScanline = packScanlineSBGGR12P,\n+\t\t\t\t\t  .thumbScanline = thumbScanlineSBGGRxxP,\n+\t\t\t\t  } },\n \t{ formats::SGRBG12_CSI2P, {\n-\t\t.bitsPerSample = 12,\n-\t\t.pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen },\n-\t\t.packScanline = packScanlineSBGGR12P,\n-\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n-\t} },\n+\t\t\t\t\t  .bitsPerSample = 12,\n+\t\t\t\t\t  .pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen },\n+\t\t\t\t\t  .packScanline = packScanlineSBGGR12P,\n+\t\t\t\t\t  .thumbScanline = thumbScanlineSBGGRxxP,\n+\t\t\t\t  } },\n \t{ formats::SRGGB12_CSI2P, {\n-\t\t.bitsPerSample = 12,\n-\t\t.pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue },\n-\t\t.packScanline = packScanlineSBGGR12P,\n-\t\t.thumbScanline = thumbScanlineSBGGRxxP,\n-\t} },\n+\t\t\t\t\t  .bitsPerSample = 12,\n+\t\t\t\t\t  .pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue },\n+\t\t\t\t\t  .packScanline = packScanlineSBGGR12P,\n+\t\t\t\t\t  .thumbScanline = thumbScanlineSBGGRxxP,\n+\t\t\t\t  } },\n \t{ formats::SBGGR10_IPU3, {\n-\t\t.bitsPerSample = 16,\n-\t\t.pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },\n-\t\t.packScanline = packScanlineIPU3,\n-\t\t.thumbScanline = thumbScanlineIPU3,\n-\t} },\n+\t\t\t\t\t .bitsPerSample = 16,\n+\t\t\t\t\t .pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },\n+\t\t\t\t\t .packScanline = packScanlineIPU3,\n+\t\t\t\t\t .thumbScanline = thumbScanlineIPU3,\n+\t\t\t\t } },\n \t{ formats::SGBRG10_IPU3, {\n-\t\t.bitsPerSample = 16,\n-\t\t.pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen },\n-\t\t.packScanline = packScanlineIPU3,\n-\t\t.thumbScanline = thumbScanlineIPU3,\n-\t} },\n+\t\t\t\t\t .bitsPerSample = 16,\n+\t\t\t\t\t .pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen },\n+\t\t\t\t\t .packScanline = packScanlineIPU3,\n+\t\t\t\t\t .thumbScanline = thumbScanlineIPU3,\n+\t\t\t\t } },\n \t{ formats::SGRBG10_IPU3, {\n-\t\t.bitsPerSample = 16,\n-\t\t.pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen },\n-\t\t.packScanline = packScanlineIPU3,\n-\t\t.thumbScanline = thumbScanlineIPU3,\n-\t} },\n+\t\t\t\t\t .bitsPerSample = 16,\n+\t\t\t\t\t .pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen },\n+\t\t\t\t\t .packScanline = packScanlineIPU3,\n+\t\t\t\t\t .thumbScanline = thumbScanlineIPU3,\n+\t\t\t\t } },\n \t{ formats::SRGGB10_IPU3, {\n-\t\t.bitsPerSample = 16,\n-\t\t.pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue },\n-\t\t.packScanline = packScanlineIPU3,\n-\t\t.thumbScanline = thumbScanlineIPU3,\n-\t} },\n+\t\t\t\t\t .bitsPerSample = 16,\n+\t\t\t\t\t .pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue },\n+\t\t\t\t\t .packScanline = packScanlineIPU3,\n+\t\t\t\t\t .thumbScanline = thumbScanlineIPU3,\n+\t\t\t\t } },\n };\n\n int DNGWriter::write(const char *filename, const Camera *camera,\n@@ -524,7 +523,8 @@ int DNGWriter::write(const char *filename, const Camera *camera,\n \t\t */\n \t\tunsigned int green = (info->pattern[0] == CFAPatternRed ||\n \t\t\t\t      info->pattern[1] == CFAPatternRed)\n-\t\t\t\t   ? 0 : 1;\n+\t\t\t\t\t     ? 0\n+\t\t\t\t\t     : 1;\n\n \t\tfor (unsigned int i = 0; i < 4; ++i) {\n \t\t\tunsigned int level;\ndiff --git a/test/span.cpp b/test/span.cpp\nindex c37e2a66..bf3b77fa 100644\n--- a/test/span.cpp\n+++ b/test/span.cpp\n@@ -9,12 +9,12 @@\n  * Include first to ensure the header is self-contained, as there's no span.cpp\n  * in libcamera.\n  */\n-#include <libcamera/base/span.h>\n-\n #include <array>\n #include <iostream>\n #include <vector>\n\n+#include <libcamera/base/span.h>\n+\n #include \"test.h\"\n\n using namespace std;\n","prefixes":["libcamera-devel","4/5"]}