{"id":15618,"url":"https://patchwork.libcamera.org/api/patches/15618/?format=json","web_url":"https://patchwork.libcamera.org/patch/15618/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/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":"<20220405004215.86340-5-Rauch.Christian@gmx.de>","date":"2022-04-05T00:42:14","name":"[libcamera-devel,v2,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/people/111/?format=json","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/15618/mbox/","series":[{"id":3028,"url":"https://patchwork.libcamera.org/api/series/3028/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=3028","date":"2022-04-05T00:42:10","name":"generate and use fixed-sized Span Control types","version":2,"mbox":"https://patchwork.libcamera.org/series/3028/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/15618/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/15618/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 0E873C3260\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  5 Apr 2022 00:42:28 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9E8F26564C;\n\tTue,  5 Apr 2022 02:42:26 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.17.21])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6479E65644\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  5 Apr 2022 02:42:23 +0200 (CEST)","from localhost.localdomain ([92.10.251.63]) by mail.gmx.net\n\t(mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id\n\t1MHG8m-1nokgQ3gEy-00DDaN; Tue, 05 Apr 2022 02:42:23 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1649119346;\n\tbh=ZAMvAKg3juwEoXLU0WdCEjcdyrCNwFE2RlHsrGAWtOQ=;\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=g7jbqh5EyMAtafhjWR9pbFpZ5E55NrKGAqKbTEW3+6Cke8Sz4aLx6ObVojhNmsqt8\n\toLnFc4BKNsuipaQcQcXKVthtVI5ElwNNb0yPjbuHgVpb5i9yroxdT27Ee/Zg/t0bDl\n\tJsUQgEVIUSn2+uVCp38LWphMZZ5pGC1+b29gbpWhuCU2s+lMH4YctcOek4SUJBN7BK\n\tnXneMw8Ky6xU1qxkUICsBUlPjvTGnW2A4PseOwif7v4nKZfZrZIbDKDL8ala7qxkko\n\ts+TA/Lx5UQ3ONNF40yZxQXEFCC/On5uNZ6WMDfXZlXrOID2pozKV1yekzpCt4/WKyT\n\t4MVxnnVf+eUcg==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1649119343;\n\tbh=ZAMvAKg3juwEoXLU0WdCEjcdyrCNwFE2RlHsrGAWtOQ=;\n\th=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References;\n\tb=Fdi0ThTBBznaRxDdXyVf7LkcoXXneKMUjhdGjiW6AMO8fhVMkWTTF9l72G0t5/T4p\n\tbfU1ypVbEJRPFxkf8uduj1ZKmVtYkzH/dZbt605s5a+eWO6wYQQW/NpVJf/ZRB5oZs\n\tp1bAgZYQQnBaofxbnwP4DMdK+bCPnT/lNXwihOQ8="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"Fdi0ThTB\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","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","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:5JBE5J7fY3u9MQXsY51yiEo1CbfHd0FmEOsf1q4SqidSrE2BFR7\n\tkzudsOEcs9j4SErZ9rFyEJedCgZWAk3QerciXhI37e4hcNSW7rx7M3JPuVnzYnaLa2NMX5z\n\tYlcy8xLjeevbvVT/CIakKwdDxVm535VVWJxanLuBVAFCaco+PG8suS6zth2LBenbjMYFP2v\n\tnAiI+cl5jMSIXMRhSB24Q==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:C1//DFEEyPk=:ysAI3NSOERGIwDWCFD8Lo/\n\t3S369/wSjPN8fEvzF5+Xuj+JzsQt6d2ilFmPijO0gK/AECUA/LLhHOWFfQvTeKbgvfx4FFoBM\n\tBNTDrVRQrB6lim67auuRkqjglcw97xZ1OqXv0dahnZ0r9HO6SgELUvZXtDy+l7KZGdMV8DxGm\n\tKvPO0QiF69GHyGr3dkdEZhJRiU/R+EdNyOt+Hi0inIkeM7uG7LNMmA+YC1Jb0G8m8zl7x9Q8X\n\t97EVbxnYqFvb8OUw92NgXTS/TGiWZASJ2onywvqDE0nBWHfj8mSgNtLwIriM2Z/kjE7DSOdy/\n\ttyxf22393KhFxO+FYLdKdupdx1us03Xf4rOwDxCKjH/y7jsCKcz7aHPu/iijdWmf8sDUKBA89\n\txk7YA7aqp3sL5OfePw1XF9FuI1Cpimhi2dHifwWgCXlo4FKoleh8FCGcoHjkT95ovr2uFpCxg\n\tOeauWS1TFPrcjdfthgLunI0RKSPz3483U9P0RdaVaXE5LaD4dCWXIYtUnnBgF0HQ4bwVL2IQU\n\t0TetKzYPSHklGu93nzrTnD7AKDzjA70SwvEBxCYr86GmA9PxGgAu0ShO15KjaQAwQGaHOnY38\n\tsjxC8Stk+WzuqFJPcTdxVkLrYcpYet7dNnFgqqM39uMwzWfOd7qptJCcKbvazClZNd5Y+kEi9\n\tf+IZ3RYqxxy2Qlv/YBstvQ8LHRZaa3PZ4WoY2qQ8H3is/UPVzJEZglyAK2B97GbF+K/q3JLaL\n\tAsrPn/9/zzYcUkyn7AJywBbj2y2503creANWaYkTdzAsXDIZvsd/Gzy5Kxz0qARpPmgnvW3IR\n\tCFO+IuU9KqlkjfnNIeltTrKTaN2KegLhJWn1ygj8Uf4Rx84GeJ/pPTH7MhjGvioZr2yhMrgDP\n\trgB9l6Xuu/RczWhP1Tk911KUgWRISrVa5BQNzS1RrOeT3zQmsFEpgVJVZY8n/m9807xQVh6Ls\n\t/FKyssuEGLJiS+iMozlzjN70dVNovgWIZrovJG1tuvB8AI6CMKasPTuP+3iiUVACQ4gZ4IgL7\n\tvDzCZrIkcAbdjCzH9QmkQQXSB87AnGhGBiUc6ZctmpCZIDAuEWbKfhW1JgZRJciln8RTOxMi4\n\tcmKGwx2fBji+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":"<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 bff4c115..b2fdd5fb 100644\n--- a/include/libcamera/base/span.h\n+++ b/include/libcamera/base/span.h\n@@ -124,7 +124,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@@ -134,7 +134,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@@ -144,7 +144,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@@ -153,10 +153,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@@ -165,10 +165,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@@ -178,7 +178,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@@ -235,10 +235,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@@ -315,10 +312,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@@ -327,10 +324,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 abf3a5d6..3c3f6937 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","v2","4/5"]}