Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/15603/?format=api
{ "id": 15603, "url": "https://patchwork.libcamera.org/api/1.1/covers/15603/?format=api", "web_url": "https://patchwork.libcamera.org/cover/15603/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api", "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-1-Rauch.Christian@gmx.de>", "date": "2022-04-01T00:06:11", "name": "[libcamera-devel,0/5] generate and use fixed-sized Span Control types", "submitter": { "id": 111, "url": "https://patchwork.libcamera.org/api/1.1/people/111/?format=api", "name": "Christian Rauch", "email": "Rauch.Christian@gmx.de" }, "mbox": "https://patchwork.libcamera.org/cover/15603/mbox/", "series": [ { "id": 3022, "url": "https://patchwork.libcamera.org/api/1.1/series/3022/?format=api", "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/covers/15603/comments/", "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 52BD3C0F1B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 1 Apr 2022 00:06:34 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 85DC165633;\n\tFri, 1 Apr 2022 02:06:33 +0200 (CEST)", "from mout.gmx.net (mout.gmx.net [212.227.15.15])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E7DA160135\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 1 Apr 2022 02:06:31 +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\t1MIMbO-1nmER11sgu-00EIYK; Fri, 01 Apr 2022 02:06:31 +0200" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1648771593;\n\tbh=l/tZWxQ1Somu1FPOzMlLIrfe4No3CI/birou7jckx48=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:From;\n\tb=wINShdzL73FleeS1Vzi/3xDTB1j0SdHnGdejhtmnuKexs57u93Wo00k2dcjAPMOcz\n\t7Yap2Wu+aCSQ+sPty+sI6LWg+nM3dntoSlwVno3Vsg19nQhgPukpgQy9acqpyfC/Oe\n\tlhk5vNF69HoNmfH0mMNMxgb0uhth/lLb7opemmOCtjVUxF99uwVW5TooqFVUO2LbtG\n\tDuuNfR0/VpT3gqn2XxDBTiMwVBTapC0y2wkCsrUEyVXxEOXnwitU0mpmlMITx2OjaU\n\t72kxaKEdlLaeZVFDaW1IpVjgttd10I9mXVL17YLairP0NblZX1YPyXjcyFNtb+2Kq/\n\tFM9aC2crMVlsg==", "v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1648771591;\n\tbh=l/tZWxQ1Somu1FPOzMlLIrfe4No3CI/birou7jckx48=;\n\th=X-UI-Sender-Class:From:To:Cc:Subject:Date;\n\tb=Aj5xEIsfEWyW7k0sXXL85Puhoa+6yhgtfdPST7jTJhz4SmHeg9rfgmzCDfk5MOh2s\n\t7WIzxZVUpMlXIGVHQX4Y+c+EhZ5aY11ASDpoIFgJ/2lo6qc0a1ardwTGCFbfY0fmNO\n\t9u+V7BHQNG748EqCMFvxUiM0KxrOeibb7zkmiaQQ=" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"Aj5xEIsf\"; 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:11 +0100", "Message-Id": "<20220401000616.12976-1-Rauch.Christian@gmx.de>", "X-Mailer": "git-send-email 2.25.1", "MIME-Version": "1.0", "X-Provags-ID": "V03:K1:OVnlV5mIycrJpRVVSFmjLdCZWOIb7AUKMAN36QrhEl4xen62VFh\n\trlLHaVd0Q0WVUxskGgkmgkPJFWT+CLYdLDUJKJYCBdOgQLx/P7EZIch5qSs5Wa3jOMc+gKc\n\tKMP9PZM5JMqZ0aTe3IRSTfeZd+5Ks0YMlsOy2Uksk09/rHnYKG00RtTv1bCWvZFtEFHFECk\n\thAjWXwLslCXQNHibEop3w==", "X-Spam-Flag": "NO", "X-UI-Out-Filterresults": "notjunk:1; V03:K0:+LKxQE8IhXs=:6wmyk0DHWfWabbH0wHXhI+\n\tO+t46riB81orcfLFDUWedqZCntYpwftm1f887CqFaVpAq2wdQvpvUoCQh7GAAtYkubkaLzgK8\n\tD9hQRdL3r7//KRI5BnIdjQqXk63ZUgxkBRkjZ3UYtAFVgscPXNqeGnzfqIHGyWHS2aacIoirA\n\tpfiw8kkPl15AJfqO8M/eomN4p5tVN4/tEgcFdPOFpn+1FL06uPjbWtTBeDEjQxFV+IgWhXD/H\n\tcISryqIG9RlMzE2JYcDC//rxfLMj2fPPN5XD+rqiK5SBHdgMu7j0MWdSm4LTnQoEyAeAbYalT\n\tVYfYClaugocsiNXAoNtHxAcddo+pPfLeSejZqFzkGXMjMue8jIDtd78A39BBw2IYEtbfZKCjk\n\tJlu115cPV9ytRMDMRtBCxIBzDtdGVvAGW4QwkNl7zSH8ugVnB4szbvVTilEmojyko9FgWASAv\n\tHEbf6hwTgBpNBn/bWH3EBZ4OxCZtpsZXF7mB99+D3T8oAq5vsguD192OLThK4XY4ytLyMDShL\n\tTp5rS6sBP9kjr7YukQncaDlqMh+64gWnJtm+xO7PawsDz7GlVaBWeCrL2oAOli+bm299heyjb\n\teQH3z3SgT+/YPMTPXvC/7hGF6ParceldacewMQFXJTbU3MNtiVTYG8RUBTxamvtI4UqasDhdP\n\tr07IuAKtqCq0BK8jd3qRz22pDEO1yYumXL8RsoFPunlHtdx6VEgRmyP1hhhQxwdFwFMO5Cl/b\n\tdbV3CZXtlXJS28tF9Kl2PQBX7RUsbENHeWoOCN2rP0HWrDzEXdCysGB0w6SZJisnlESV2wW9b\n\tbQl1AzEcBjCF3au8m9XDwl3rxZJjFwk0qv36LbZeE8attbTUHCj68vt8PedHGcRY1YuEKE1zR\n\tOInD7qqgsvaDNGCDFcY4IFXSD2IcDDvsfKQ/l3zSqMWWW9cFXf0hWf10kenlqsQdr/1idgsKR\n\thR5n4ReH2wHvzyMibBuY+f7DtYbR84DfzRizyZSWzPmLPWgeot/oiSFCYzeHmxiFKQlLnGNDJ\n\tKQxinXtl6VuiNKbLvrAnhkWiyvtVQMqMBeXfCbikfuxiYFUripzIPBE1Q8lhQAnHe/Eavk+5i\n\tbU+X54G4PCRLDk=", "Subject": "[libcamera-devel] [PATCH 0/5] generate and use fixed-sized Span\n\tControl types", "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": "Hello,\n\nThis series of patches explicitely defines Spans of Control as either fixed-\nor variable- sized. The control and property definitions in \"control_ids.yaml\"\nand \"property_ids.yaml\", respectively, already specify the size of array-typed\nControls. The \"gen-controls.py\" script, which generates source and header files\nfrom those definitions, currently ignores the provided \"size\" value and\ntranslates any \"size\" into a variable-sized Span<T>.\n\nThe motivation for this is to carry the dimensionaltiy of a Control from its\noriginal definition within the source into the public API, in order to provide\ninformation about the dimension of the settings that a camera is expecting.\nCurrently, this information is not available via the public API.\n\nThis patch series implements the fixed-sized Span<T,N> generation in three steps:\n1. The format of the \"size\" property in the definitions is now interpreted as a\n shape array, where an array of size greater than 1 (e.g. [3,3]) defines the\n shape of a multi-dimensional array (a.k.a. tensor), and an empty size (e.g. [])\n defines a variable-sized array.\n2. When a Control is deifned with a size in the yaml (e.g. \"size: [2]\"), the\n \"gen-controls.py\" script now translates this into a fixed-sized Span<T,N>\n (e.g. with N=2). This requires a default contructor for fixed-sized Spans and\n the removal of 0-fixed-sized Spans (i.e. Span<T,0>).\n2. Where applicable, the old variable-sized Span<T> types are replaced by the new\n fixed-sized Span<T,N> types, in some cases by explicit casts.\n\nThis patch set is submitted in conjunction with my set of patches that fully define\nthe ControlInfo of Span Controls, but can be applied seperately without a change in\nthe default behaviour.\n\nBest,\nChristian\n\n\nChristian Rauch (5):\n define Span size as shape vector\n generate fixed- and variable-sized Span Controls\n provide a default fixed-sized Span constructor\n apply clang-format style\n apply explicit fixed-sized Span type casts\n\n include/libcamera/base/span.h | 50 +++---\n include/libcamera/controls.h | 2 +-\n src/ipa/raspberrypi/raspberrypi.cpp | 21 +--\n src/libcamera/control_ids.yaml | 2 +-\n .../pipeline/raspberrypi/raspberrypi.cpp | 36 +++--\n src/libcamera/property_ids.yaml | 4 +-\n src/qcam/dng_writer.cpp | 142 +++++++++---------\n test/span.cpp | 6 +-\n utils/gen-controls.py | 33 ++--\n 9 files changed, 160 insertions(+), 136 deletions(-)\n\n--\n2.25.1" }