{"id":16189,"url":"https://patchwork.libcamera.org/api/covers/16189/?format=json","web_url":"https://patchwork.libcamera.org/cover/16189/","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":"<20220610120338.96883-1-Rauch.Christian@gmx.de>","date":"2022-06-10T12:03:34","name":"[libcamera-devel,v8,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/16189/mbox/","series":[{"id":3168,"url":"https://patchwork.libcamera.org/api/series/3168/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=3168","date":"2022-06-10T12:03:34","name":"generate and use fixed-sized Span Control types","version":8,"mbox":"https://patchwork.libcamera.org/series/3168/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/16189/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 C6C76BD161\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 10 Jun 2022 12:03:44 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CF87D65638;\n\tFri, 10 Jun 2022 14:03:43 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.17.21])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 69C39633A4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 10 Jun 2022 14:03:41 +0200 (CEST)","from localhost.localdomain ([92.18.80.244]) by mail.gmx.net\n\t(mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id\n\t1Mlf0U-1nHBk63OQE-00ijCC; Fri, 10 Jun 2022 14:03:40 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1654862623;\n\tbh=+mQiNtfFfxdjOiNbw7GMBWeiG2DlPbno5zv+hoqzjXA=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:From;\n\tb=LWhBkZXoMjF2/ygp6ibeVqdSvu/uwhyvQ74agoV9caxKXM5FUvVjqpf48+KEki6Cm\n\t+WEiYE+q6O30jBrEHBLCx3tG1ipNvr0nETsrrpF10qbLQT+cx8Q76FT4SD9g9xTePp\n\t3BzeBpQyzVByoDtycBe9NVw54iGAwCWaxFdxkSz38CK5JWDeQdp+ie64F+Jz8bR2jm\n\t5pLpiRcJLgMIbw9ckYH9Lp3US3Mj/P/Se5A997xgsHqKe7CopKnMPjNy0ZdRnzWCOc\n\tA/dtbxOKjjKW7blPkL8ufbPm4/Nj8zIZJ7CsXb6KYOcUn4SrByupim4wr+zTYoLg+J\n\t89XJ+z6yi40Xg==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1654862621;\n\tbh=+mQiNtfFfxdjOiNbw7GMBWeiG2DlPbno5zv+hoqzjXA=;\n\th=X-UI-Sender-Class:From:To:Cc:Subject:Date;\n\tb=ics/CAefUSL9WgZEvNgXytVPPCxSQHAJBwvEvXKzJxjdBMQF3OuFClTixKNzumVu7\n\tvQay7IU3p0LGP5lMPYsT5xFdWxCD+sw1X8mxnee8HBAE+wB92Hdm94aca92nboyxTf\n\tsUpjY28Ij+tjP2JGhjqKWkXFqBN8WRjL3dwcEJXI="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"ics/CAef\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","To":"libcamera-devel@lists.libcamera.org","Date":"Fri, 10 Jun 2022 13:03:34 +0100","Message-Id":"<20220610120338.96883-1-Rauch.Christian@gmx.de>","X-Mailer":"git-send-email 2.34.1","MIME-Version":"1.0","X-Provags-ID":"V03:K1:lJexTkQYVCoRf5iZbJY1B0EnALcZ4+GvGwED+bxLtol8i3VqQtx\n\tXduKmGEHZqz007f0SxnXVow9r7U84z4LhDYe8Mn3WuyBSz3o6ALn+1AMdfNpVJOnk23uuYG\n\tUi7STVAUR9LJWX7UwJ4FauxJu5piBeffYybiXRQbV/0JECI84VaDE+KKNddbxFWOq8aQDhK\n\tZfRczOOrzrq3LWPqBjcBw==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:+di5RjBySts=:v2k0ExtnZWxqatpRmMT2wW\n\tMlt1iqTBfvvtDmIAD+miLSRULJq3i1WJoz+oOS3bSt35e0C78bdwaXoQq14owpX27t/0n65KL\n\t4ndmJyn2945xWSpaOBVphWuanlyfRN8mG7mA2pIz6CqphZzGJvTb+LpzWHOz+u9Ocz+UWRrjG\n\tfrR3hjpO7n+UpFJaFcgxTbzndm0BqwlCOgJ0WeUXwsVrfghoU9+nZ8VLuIi2ZMLPvaAi47IWn\n\tBZG7yzR3JdkXav+EM7T/5wu+n/49TyEBw0owpYx9PNMPUjpLrIBFsBrn0O50I6WMDpmk+DAjp\n\tt9UyxQQOirPhn4S2PZd2a4D/+RYTEfr1vSyTTd5QJ6cv2yA0ZFZM9kCSTXOTM8oq2ph1cJygl\n\t0gN3fYeNpVtQEds2VpgImRx6Vt/wXoCqk4iGAj/vr9leKEL73RWccsI0n4mdYBMEKVd0+JRBB\n\thi4b8EZ7RpOSGzEYHLeHtno3eBd1xhianhAFh+M3xS8JSmOSrU831VOwv4TGRQ9+LVb+EAwt9\n\tmo8VeoGC0dN3eQqh1izy3LuO0hSZu7JXjInDSVoasgGbOF2RJxm2oUbJ3wXZxkfuhwErzFPQW\n\tUGitnGRD3WqCpz7rFQ+oTwDQ2rGXvE1cw+8wNInY12a58IXnedUB3d0+pk2abBICZ7CQGo2RR\n\tbeLRlndDd/1CYux+ff8oNXp4Z6q5ldm/V+tRc1Cff64XtVEwRv3YjXhZyNSBsXG71orka8M4h\n\tIqYsxbBNW0zVbD3ym6vOiwE7fukfUXspnbTIcvrU9dKRQRLAZTQkD0DmbHhT3rj2fLDlqFChK\n\tsqPqadI8KH2hJwA6AnA54ZFPyIcOmKLK+q45z7hsR+Kxci6eiKQm0tPj6gaXC9ks+Qr/AnCcV\n\tUgqMEsVPxN1PdL0X+UoG9UowlYiBBd+MzPml5IR04A1PBpsgpSCwh7KUB43iEh3+g0SxpocXM\n\tIkMPo8paxKryDKsoLhOG6zph/qhh5mk34px2FW7A/E5Dqjm7S+POoHVSskrYUyu1+aCPStX9T\n\tyCj81P2pGxBH62XBhXAGHOSUzOpV96sbX9psjI1LrZQPfOlCPuD3vwrj55QzVDzy/BFUXuFxI\n\tw25+WaUoXzAOOicr7nV3CcS2Ur+M/mAIm4Hjx3RLHSwsAw0fTQdbydmEg==","Subject":"[libcamera-devel] [PATCH v8 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\nIn the latest version of this, I am just rebasing on master. This essentially removes one already merged commit from this patch set.\n\nDue to previous reports on compilation issues, I set up a CI workflow/pipeline for native amd64 and arm64 builds, and an arm64 cross-compilation build [1]. Those three workflows pass for the full set of libcamera features as well as for gcc and clang [2], [3], [4]. The workflow configurations are not included in this patch set. Please see the GitHub link if you want to fork and modify them.\n\nIf you encounter further compilation issues, then please let me know how to reproduce them, e.g. provide a CI configuration or docker image.\n\n\n[1] https://github.com/christianrauch/libcamera-ci/tree/ci/.github/workflows\n\n[2] https://github.com/christianrauch/libcamera-ci/actions/runs/2474771137\n[3] https://github.com/christianrauch/libcamera-ci/actions/runs/2474771142\n[4] https://github.com/christianrauch/libcamera-ci/actions/runs/2474771143\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/android/camera_capabilities.cpp           | 12 +++----\n src/android/camera_device.cpp                 | 21 ++++++------\n src/android/camera_hal_manager.cpp            |  2 +-\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      |  9 +++---\n src/libcamera/property_ids.yaml               |  4 +--\n src/qcam/dng_writer.cpp                       | 22 ++++++-------\n utils/gen-controls.py                         | 32 +++++++++++++------\n 12 files changed, 80 insertions(+), 67 deletions(-)\n\n--\n2.34.1"}