{"id":16126,"url":"https://patchwork.libcamera.org/api/covers/16126/?format=json","web_url":"https://patchwork.libcamera.org/cover/16126/","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":"<20220601231802.16735-1-Rauch.Christian@gmx.de>","date":"2022-06-01T23:17:58","name":"[libcamera-devel,v5,0/4] generate and use fixed-sized Span Control types","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/?format=json","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"mbox":"https://patchwork.libcamera.org/cover/16126/mbox/","series":[{"id":3152,"url":"https://patchwork.libcamera.org/api/series/3152/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=3152","date":"2022-06-01T23:17:58","name":"generate and use fixed-sized Span Control types","version":5,"mbox":"https://patchwork.libcamera.org/series/3152/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/16126/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 3171ABD160\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  1 Jun 2022 23:18:19 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5F4BA65633;\n\tThu,  2 Jun 2022 01:18:18 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.17.22])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7F1016040A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  2 Jun 2022 01:18:15 +0200 (CEST)","from localhost.localdomain ([92.18.80.244]) by mail.gmx.net\n\t(mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id\n\t1N6KUT-1nl13P3sPh-016hFp; Thu, 02 Jun 2022 01:18:15 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1654125498;\n\tbh=6i72WclrdWLH9TeWspVy64s+wKqv4XYzx6v37uapdP8=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:From;\n\tb=aoePcf5x8AB8+IZ092J1bMhmYWzMaS/hPhK/tPStg9hlpefTbGUgTrSrKtL3WmJLh\n\tc9XWVwnB5CQm9kJCf0zbi9nhVWKW5l5AUrSQPw/sdYb0YePmYyMKW7qCp+wXI/Irc3\n\t/9wEr0h2Ts4QIpgYd7/sjf7TfnfqKFdbINySLKMzFOmD4hAeBCRENaJtgfukQU7PH2\n\tMcN5vHbD7ZeR0Zp1YxdSHGtgxU+Olqb3Hc4uvMTXGFH5mFjwQOJE1cXhq/2PntUw1j\n\te7RGBtCUr81PWTNaNgT0RDJIQLCd0j6gqUThXs57jh/vb/hkbxqQVRJ0ndejAxUbIX\n\t/aMSY3R2Kq0WQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1654125495;\n\tbh=6i72WclrdWLH9TeWspVy64s+wKqv4XYzx6v37uapdP8=;\n\th=X-UI-Sender-Class:From:To:Cc:Subject:Date;\n\tb=hGK1GvoZR/j7MYi4PyEAlXXAQXmD43bGuL2+32OrNKDlS52nby7/w3Bm0AvsG7+Uf\n\t6kY/cc5gb+TBtmPtWNCQDEjuKi3sMibRj1bHfuaPTtI0Af8dbA4coX9oQWnYw+50fh\n\tOE+ba/fNnbFKhBNoiwwqSrDgDsYuF8S4OrvbFfa0="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"hGK1GvoZ\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","To":"libcamera-devel@lists.libcamera.org","Date":"Thu,  2 Jun 2022 00:17:58 +0100","Message-Id":"<20220601231802.16735-1-Rauch.Christian@gmx.de>","X-Mailer":"git-send-email 2.34.1","MIME-Version":"1.0","X-Provags-ID":"V03:K1:odL66a14HG/6Njs+X2MsLEAOQZecJHz5ppzLhFVq2BAm0xjrhvJ\n\tq7GtPpXdEcDeDcq8mS90DKGxFQWlUALhSOGys5aLkjFY9T1fvLvuvoQO+8UqSBxe6jzBZnR\n\t7kQP1OCo0FBhSmXKQ8jgmtY+ceJ2QBEtQdPskyybd0dd49gZG+mQxkKItCQszP8g9PGkBJJ\n\tl9Pb3jPPtzTclQ4rukZpw==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:8jHcHBAKPEE=:8t9Se/l7K+SQtB0pVzYzmb\n\tEsGrCKomN/uIHuFibP1Nt13dex7/Xvgwzf16Yjhb08GH0nBh1jjweM1Phynvlew/d57ffdQBT\n\tF7/wr8xS9j5q8cMJryivEXdjqtRcYmmYCPUQ/zL2YnlFcBsXVQzywsfiDncj41+gD0Oo/aS/s\n\tf0YfiIzbPzmaNgXLPwfJK62gDex20ItIbRPyzTRxfukthke+S//EMcYpRGKp6ZyI3XJuXfGji\n\t1bTSZ2IMv8gOP8k58ROlSWsGQR4STpA3bQtZZnaYfvc4Tb7XjFiiPnW7u9LQtKekiJvHnxbGY\n\t05DEzal1q7CCPOJPmS+DR7nLiOjOiX47tiMW+2z2SvwNpO6CxGA3f6ZZGaMiG8+LH2dd3dJsg\n\tsGE6iMBkDO1+5a6O1Ns2G4Mw18eoz1TnAD972QLyoq7XZJLV2RWZu0Hf+RS5q9NaFca7pCGTO\n\t8LT169jgMJOxT6CPEzMwJNAbhseuYrlv7SUo0Ttflds8KIxhtZMFwDXU57GPxbXUmhFykYRSv\n\tgxLVIW+flHxWnmPmYny/AusiUEUARw1kpby8cEHWSHvIImx4M4pcZvfkNn2KhNaa+TLXCA6kt\n\tJ6RgKkXQ57EX5x2d4On7ewFHtVb/7HwwP7noVKa8OVnbkch/NrcwmT/oSk/SLSd7PhJ47IHRr\n\tl/s5dLBjbNwLnJ5F25+jIX8bATJAugRWMdpZBP+Thmgep1rk41yFTgP0F1kCq84H+UoUVLyXa\n\tk91W8bv7Sj2TX+eZbQosv6Xku/ws+rl0YOHjxPTmxlIZYeIFoPxwpcDy6U/NoE4/xrjzfCk7H\n\tc01ak3LzplqIfh1fjfK7Xhz/C9oykv1Pjzt+Tyao1ls2+uRaNAURom/9B9/gqkWSMYRbIauH1\n\tJsb2Friwunhzx50SoRUEfrars07T9TiEnwGt+uGOzzsHeXc8rYkFb1ona3P9YEOU+SD4BZuWj\n\tDk4OL1jOt0/rKxI9UypFKFvA7LuFLNzCzDIaHaglHhSOa4HBoM2UFMO3QxkGZp07O0gPKrf15\n\tAK+w5AEEK95wOTVNYuG7Wmsx4m4COOYZMH6yCq+2lyY6f1158h7is1qxmFPf7r7b/PoIF7owe\n\tKXsKzzondveuPUonz7V7hipHAshlwKHsgRfDyBpnlQ10djL173/sF65fA==","Subject":"[libcamera-devel] [PATCH v5 0/4] 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 is the rebased version of my patch set with minor modifications for an additional control value that was added in the meantime. I additionally prefixed and capitalised the commit messages to follow the estalished commit style.\n\nThe last remaining concern was about the use of \"std::optional\". This has been resolved now by accepting std::optional in the public API.\n\nBest,\n\nChristian Rauch (4):\n  libcamera: controls: Use std::optional to handle invalid control\n    values\n  libcamera: controls: Define size of array controls as a shape vector\n  libcamera: controls: Generate fixed- and variable-sized Span Controls\n  libcamera: controls: Apply explicit fixed-sized Span type casts\n\n include/libcamera/controls.h                  |  7 ++--\n src/cam/main.cpp                              |  4 +--\n src/ipa/raspberrypi/raspberrypi.cpp           | 21 ++++++------\n src/libcamera/control_ids.yaml                |  4 +--\n src/libcamera/pipeline/ipu3/ipu3.cpp          |  9 +++---\n .../pipeline/raspberrypi/raspberrypi.cpp      | 10 +++---\n src/libcamera/property_ids.yaml               |  4 +--\n src/qcam/dng_writer.cpp                       | 15 +++++----\n utils/gen-controls.py                         | 32 +++++++++++++------\n 9 files changed, 62 insertions(+), 44 deletions(-)\n\n--\n2.34.1"}