[{"id":23020,"web_url":"https://patchwork.libcamera.org/comment/23020/","msgid":"<30757629-281e-b015-1a06-68b7e78eff21@gmx.de>","date":"2022-05-17T22:44:31","subject":"Re: [libcamera-devel] [PATCH v4 0/4] generate and use fixed-sized\n\tSpan Control types","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"content":"Hi all,\n\nCan you let me know what is missing to go forward with this? I think I\nresolved all comments.\n\nBest,\nChristian\n\n\nAm 27.04.22 um 23:30 schrieb Christian Rauch:\n> Hello,\n>\n> In version 4 of this patch set I applied minor modification from feedback that I received so far. I reorderd the commits such that the \"std::optional\" commit appears first and can be used without the changes related to fixed-sized Spans.\n>\n> Best,\n>\n> Christian Rauch (4):\n>   use std::optional to handle invalid control values\n>   libcamera: controls: Define size of array controls as a shape vector\n>   generate fixed- and variable-sized Span Controls\n>   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                |  2 +-\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, 61 insertions(+), 43 deletions(-)\n>\n> --\n> 2.34.1","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 69863C3256\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 17 May 2022 22:44:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6D4E565657;\n\tWed, 18 May 2022 00:44:34 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.15.18])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3E9E96150E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 18 May 2022 00:44:32 +0200 (CEST)","from [192.168.1.209] ([92.10.251.63]) by mail.gmx.net (mrgmx004\n\t[212.227.17.190]) with ESMTPSA (Nemesis) id 1MxUs7-1ngbME36WP-00xoN7\n\tfor\n\t<libcamera-devel@lists.libcamera.org>; Wed, 18 May 2022 00:44:31 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1652827474;\n\tbh=loWypiVrgmqCFgr0FWzdRqVJZrWcqH9/eKFEuYOegS4=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=ctFiVUYjdsiD68o8uPoMvhXj9APVm5TP8xTzP8f1fIAdEamWupIGt238zajZ6XeLd\n\t5bd3AXfYo0XMHOIFlcln387p2YlG2HbA+xsCVy+3vWsicwGMxpI7AIEjM6hKKleIpA\n\tFPDs00hLFpI4V1/ox4huUVO8EbrOUT1BsEkkiSEMyNR78lCFgURzdrhk9czTmVp0JH\n\twlKUv0vjVmRHWZDV30FJQopqS/XkH+gQrhzqlqLzuy/yEIrXVlYDuAeWCkTRILuVjS\n\t1NWbzIV/T4pdTg/5EHGDJNdlMgw/6l+XD5oliEPSfAbk9Oxc5y0ZXqxpjENmOExsUo\n\tIJqUY9hD/IxMQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1652827471;\n\tbh=loWypiVrgmqCFgr0FWzdRqVJZrWcqH9/eKFEuYOegS4=;\n\th=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To;\n\tb=PvOJX5u0uFGwv7u1ooGJOJHisg0ApDh6psI9ewlcln6VPUC4lcoK/7PLHIBPfHCd0\n\tc50LVesUXK4an/T1OYNHUdMSMOTNok/FeFubCdONKEvsn4O5/h1nKynLJ/BB37++m3\n\trQRKVSXIKyXKKph7Av8f9JDdxnr1rnlgFLE9nGUM="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"PvOJX5u0\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","Message-ID":"<30757629-281e-b015-1a06-68b7e78eff21@gmx.de>","Date":"Tue, 17 May 2022 23:44:31 +0100","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.8.0","Content-Language":"en-GB","To":"libcamera-devel@lists.libcamera.org","References":"<20220427223004.115381-1-Rauch.Christian@gmx.de>","In-Reply-To":"<20220427223004.115381-1-Rauch.Christian@gmx.de>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:7pTD78e1hKV5qTir0jTg2KQSl1TIW1w6zySHh9tQGRdEsl6DzZz\n\ttxUun3OdhRWfai1VLSX0cub4a+d1Fb9ScHBE2UDT6uFzeeHf+obtc6XDdMAPHqdxiijUFMW\n\tsHHUIKiRdp1F5oUV3RFJbPz/qLCho23LxSe2dR8wSW/R+VWmCE3h8rswI6CqLgMIWUwpp8N\n\tGvG0QdnR/bYKQOMdK5KFw==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:ScdF3z2jB1o=:X2fH72i0UHcHpeE2YLmMWj\n\tvEwIbE4qB+cx7CgOlDF8YOROBUVfkw7Wc+ABecZg81UYs3Yw8dglQJb1CqLFqhMuwmJqRQTJY\n\tGYFj582K0stTZLIsh8XLi4zIj922uOduvw2k9MUYRk7AX5Fo8mojs3v1J0hNxLumsPTgoaGOv\n\tGMgATh1lrRGlW89SY23T65qqKFgprEDSpl6Yfh8hrt9GCZX1jGsTPRlSnv1Oxr3XgoP0BxCMA\n\tb8/vp4tTInE32YlkF8k59874rBhNti00T9O/UZfamG72yHhwnhPmaYrPjkNjINbahhdvG5OGL\n\th5l1XH9ThK/cbZHYVF/NvzJUkIee1057r7S7Nwg8ZKDuhpiRSEXUUmieN8HIVaI90bC7U7tCS\n\tZ2uLiaV2b1NsPLH+IOdqjivNgzND4JvKn7K1N20YB8JZe6Im2wHn1U7dlBKHObaRDsDcRs/hT\n\tLZTM8Kzq6h0YA3vLomFQlAPh139XU+p76BwtCueHUUJt/QY5iM+kkqEL5qP+WlaGhFZqiA2wu\n\t8uWvdeZY/A+jfpVQC6tlGGuxSjhzlsojZ2R20ExGkGK2qwkl5FnQvaM8OQkI9TY71lxDr/hjv\n\t8snIrzY75AFyq1zaqnPnLXvhORYlJ5jsCIYBHjrp6oNU0uRjJJaHq1c7xdRAuo9W+kRdd+zcH\n\tNNh2Zq+VNiy1mWWVv0g//0FjOE/Ax4NKETw/RPIGoOyyb8+V2znqK//efNWVMgpPZBGH1d5FK\n\tvcwuidXnCNHfGcbQD3Oh21wYTwzVf+a5ul1wSM+BIn6EbrbXfTpXBnnSJi+sV4bzxHUkLJ2Zj\n\tnJkrmJacW4CIhLUwc9KepuoOQyNViZbka7MLyB+JGpZh3pC/F0FJMrSYsQaawVf/OYRSTJNms\n\t/ql4na2QS9o1AB3lr3FIMQN3sYh44jdrM/pXHzcGRw6TnwRJZpNfoShhBHrJZVkli26MydRqY\n\t9nQnNSO1imSV6bvBCdUX7jMcCXN+C0a20VnJFmwX+dT7ROMXsZ7JaLL8xppZ8qQLbg0IO4JRz\n\tH84PCWRlR01BOu2fhuw6wM7Zq6uArD4jIsnpc2+IuvosAFI9mN2A94ekSEU8C3jP+HNktwt5K\n\t8kSMxGA+9fRZ8Iaal3iWqDzbV5D57YMDMgrjObbiHk71sBIr8hYv6Io/w==","Subject":"Re: [libcamera-devel] [PATCH v4 0/4] generate and use fixed-sized\n\tSpan Control 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>"}},{"id":23025,"web_url":"https://patchwork.libcamera.org/comment/23025/","msgid":"<165283181789.2416244.2366924008338201474@Monstersaurus>","date":"2022-05-17T23:56:57","subject":"Re: [libcamera-devel] [PATCH v4 0/4] generate and use fixed-sized\n\tSpan Control types","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Christian Rauch via libcamera-devel (2022-05-17 23:44:31)\n> Hi all,\n> \n> Can you let me know what is missing to go forward with this? I think I\n> resolved all comments.\n> \n\nThe outstanding investigation was not knowing if opencv could support\nfeatures from C++17.\n\nIt looks like they use C++11, and we're already using C++14 - so this\nmay mean that it is already not possible for open-cv to implement a\nlibcamera plugin directly until they update their C++ standard.\n\nThe difficulty is, as a library that could be widely used - to support\nmore projects would require conservative updating of the C++ standard.\nSo somehow we have to decide when we can use C++ 17 features on our\npublic API.\n\nWe could also simply choose to do so - and therefore enforce any\nprojects that want to use libcamera to update... For applciations that's\nprobably trivial - but for other libraries, like opencv, well then they\nface the same issue - that they might not be able to update easily.\n\n--\nKieran\n\n> Best,\n> Christian\n> \n> \n> Am 27.04.22 um 23:30 schrieb Christian Rauch:\n> > Hello,\n> >\n> > In version 4 of this patch set I applied minor modification from feedback that I received so far. I reorderd the commits such that the \"std::optional\" commit appears first and can be used without the changes related to fixed-sized Spans.\n> >\n> > Best,\n> >\n> > Christian Rauch (4):\n> >   use std::optional to handle invalid control values\n> >   libcamera: controls: Define size of array controls as a shape vector\n> >   generate fixed- and variable-sized Span Controls\n> >   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                |  2 +-\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, 61 insertions(+), 43 deletions(-)\n> >\n> > --\n> > 2.34.1","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 C98EBC0F2A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 17 May 2022 23:57:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 061A765656;\n\tWed, 18 May 2022 01:57:02 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2AB276041D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 18 May 2022 01:57:01 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C06B34A8;\n\tWed, 18 May 2022 01:57:00 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1652831822;\n\tbh=Fnoe9H/FN2Nu87mYxUTBAGf2OKA0J2I6O9c15EqlFlo=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=rJyEZlySosBzp+pxAZPhx4UECjSFLYLrRQZ6zp4tI7Ykd2soQTlVmbEX9loRvlCL+\n\tawh7S/4bbyiVJmoJVzflOfNAwWwx33aSAUQbvM++Mov4JuFSiAzuxHN3dQsDjlQepo\n\tSJ8Kil6koXZstTBjXSz49FAp7aKsldTg5DPHe29Kr9eUZUJfeduXqr4p4YIqquJDvy\n\tGcjfSMyaJSBC4iT6rVJaXKKtXeB6JQiXx6ZksFuy2GmdPr0MdqBDr0jZPdom2HI5Wz\n\tS5QeH/J3Re9OGA3H3yqfWHW32Q7jrvCiMTUU1g1cuJXPoosbxrXn1cjQ4/RcjBCr4a\n\tY6wsUfER0VocQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1652831820;\n\tbh=Fnoe9H/FN2Nu87mYxUTBAGf2OKA0J2I6O9c15EqlFlo=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=L8rd9Mf8F+/V9H3jfxr9Ji24FMLvZ/aUpBRXFYGuI98BspZlIRcSseUYYfjjOy2Wg\n\t/XVJo/UQzwosgVloe5eB/UgR+ri717EE0ZtPXNw0FGUHO6F/lvmCk74zIN8T+qV8Nc\n\tbJ2RHv4bI7L1WBOZMyWmjQfjiHUPdZjv/cMYpjI8="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"L8rd9Mf8\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<30757629-281e-b015-1a06-68b7e78eff21@gmx.de>","References":"<20220427223004.115381-1-Rauch.Christian@gmx.de>\n\t<30757629-281e-b015-1a06-68b7e78eff21@gmx.de>","To":"Christian Rauch <Rauch.Christian@gmx.de>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Wed, 18 May 2022 00:56:57 +0100","Message-ID":"<165283181789.2416244.2366924008338201474@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v4 0/4] generate and use fixed-sized\n\tSpan Control 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":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":23116,"web_url":"https://patchwork.libcamera.org/comment/23116/","msgid":"<48288dc9-2216-6b67-2220-22795d46683c@gmx.de>","date":"2022-05-21T09:42:35","subject":"Re: [libcamera-devel] [PATCH v4 0/4] generate and use fixed-sized\n\tSpan Control types","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"content":"Dear Kieran,\n\nIs this a question of ABI or API compatibility? I understand that if you\nraise the required C++ standard for libcamera, you also have to compile\nOpenCV with that higher C++ standard. But why is this a problem? C++17\ncompilers are now widely available. Since newer standards are backwards\ncompatible, other projects do not have to make changes to their source.\n\nAm I missing something here? What is the concrete problem? Are you\nworried that other projects will not compile with newer C++ versions?\n\nBest,\nChristian\n\n\nAm 18.05.22 um 00:56 schrieb Kieran Bingham:\n> Quoting Christian Rauch via libcamera-devel (2022-05-17 23:44:31)\n>> Hi all,\n>>\n>> Can you let me know what is missing to go forward with this? I think I\n>> resolved all comments.\n>>\n>\n> The outstanding investigation was not knowing if opencv could support\n> features from C++17.\n>\n> It looks like they use C++11, and we're already using C++14 - so this\n> may mean that it is already not possible for open-cv to implement a\n> libcamera plugin directly until they update their C++ standard.\n>\n> The difficulty is, as a library that could be widely used - to support\n> more projects would require conservative updating of the C++ standard.\n> So somehow we have to decide when we can use C++ 17 features on our\n> public API.\n>\n> We could also simply choose to do so - and therefore enforce any\n> projects that want to use libcamera to update... For applciations that's\n> probably trivial - but for other libraries, like opencv, well then they\n> face the same issue - that they might not be able to update easily.\n>\n> --\n> Kieran\n>\n>> Best,\n>> Christian\n>>\n>>\n>> Am 27.04.22 um 23:30 schrieb Christian Rauch:\n>>> Hello,\n>>>\n>>> In version 4 of this patch set I applied minor modification from feedback that I received so far. I reorderd the commits such that the \"std::optional\" commit appears first and can be used without the changes related to fixed-sized Spans.\n>>>\n>>> Best,\n>>>\n>>> Christian Rauch (4):\n>>>   use std::optional to handle invalid control values\n>>>   libcamera: controls: Define size of array controls as a shape vector\n>>>   generate fixed- and variable-sized Span Controls\n>>>   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                |  2 +-\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, 61 insertions(+), 43 deletions(-)\n>>>\n>>> --\n>>> 2.34.1","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 CC206C3256\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 21 May 2022 09:42:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0C7F565661;\n\tSat, 21 May 2022 11:42:38 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.17.21])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 699326041B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 21 May 2022 11:42:36 +0200 (CEST)","from [192.168.1.209] ([92.18.80.244]) by mail.gmx.net (mrgmx105\n\t[212.227.17.168]) with ESMTPSA (Nemesis) id 1MJVHU-1o7pB53lJA-00JuHp\n\tfor\n\t<libcamera-devel@lists.libcamera.org>; Sat, 21 May 2022 11:42:35 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1653126158;\n\tbh=Bc3LhGrSG1S/xJZ1b7kE670cU/aQoLNrn4fiTLrdP68=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=Ct39PAEtda7MUzxUZ0wGVQklAnOTxOZJF5CRdbUKhsmyOZxLenifBxfnAwNL3bTRd\n\tT0bKhU9VknEQX0dyiZ9VtM7An5NYsCl9G9UVpyiAL6FE/gGwM4KkxKd+2z0tpyFkWM\n\tOMHZCUCrGQ2Kh/CGidhuiUa+hQTyluTYeMjznoxaMwas9VXADSTBP4M8yLwd90UKgC\n\t+RNW2a/nAF00AMTVcXBoybVJ7mJ26nFXBrE5Gs2OBh9buGJv2nioh9MG/3+Mgzk6FJ\n\txyV5lYbM37/LNjWwXYTJLXTF/CLVRq3nGLgEIIZA1vuurzP5LApI1BXWJDLi86fmcm\n\tncdF5ZCEznEbw==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1653126156;\n\tbh=Bc3LhGrSG1S/xJZ1b7kE670cU/aQoLNrn4fiTLrdP68=;\n\th=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To;\n\tb=PxBK51cDHeDlTdk7dXJBvr+gfQhXdXWU+lKfc8nhBWqAZGrNsvRkzwX6NFYxnJ7JC\n\tz+YFBx8wJz3azATigk1GI9B0/Ys2Jsl5vxs0RzFHBbx3GdLO68bPUhvh7lwBb8XBh1\n\tmsMvHOKIPLU05KW08W/cNUjhYgiL9ziIWngXy7hs="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"PxBK51cD\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","Message-ID":"<48288dc9-2216-6b67-2220-22795d46683c@gmx.de>","Date":"Sat, 21 May 2022 10:42:35 +0100","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.8.0","Content-Language":"en-GB","To":"libcamera-devel@lists.libcamera.org","References":"<20220427223004.115381-1-Rauch.Christian@gmx.de>\n\t<30757629-281e-b015-1a06-68b7e78eff21@gmx.de>\n\t<165283181789.2416244.2366924008338201474@Monstersaurus>","In-Reply-To":"<165283181789.2416244.2366924008338201474@Monstersaurus>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:F80P4ZPWaJhaBWZQ0Mxc+tYZT+pQlA7P0yDF8KRCOv9La8UK+rb\n\tH9YfaHz46GFSc9pRZ1ADZ6fs76LTzQFyRfq8qwIiGIS5krTtTHADUNlo7QWjl6Yoi31Aq81\n\tvjkNsx+f+GjUsb2SgkSLIR5+AfGVIyl5FX0xRNFjjVsxNu1Q85eZzQ+iOhGIL/lN6SSHdAF\n\tXiuBW5aViL2n4D4LtveWA==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:f0u6zVpLBOA=:FEs+XMwBGy0qQ7IZ2DdGHX\n\toVGpnVodKaxTs6Bq4qvxI4WT1dFHrwePkiYPWElK32uCxryAbGKXGYIFbn8Tve96koL3HZPOZ\n\tqvkZke/cRc4U64zWt3J9Ft/blQhPlKNtaOdHJ5nbFoqlDxeftO1nivDbvPm1V6FhNKyRR2Rv4\n\tS+7xpF8bEs/FdwL58hwAF0Dav6nvdZ6kEbT9tzq7bc3ODYaswv1h814Flbv0pwA5KoJeIp4iB\n\tajbHLG55r4dy2K9PEQt7DDD0+kvv67jwBu4/XkyHGNKF6V0Hmqkyw/Huc+TemhZqGaZfcU9kS\n\tPSa0MG6XXswXhkxXO4Ys5ojWfS/DhRv2XFfVvB6FmMUY2RyFMHWReMAahfEFsqUUI9uZftf8h\n\tFYOALI2iC5pf0970wwobkVVagLp8DayvHY67gpXZnPt1ZdiC9uBi6G1WTlF9bH4oj4GbhDFh5\n\tewUxIOWs4vC+jzu3HXcq26gckTjHWIbpaETMHyzi4TM2m8020EaauhKD7go34iuxF134CLtPU\n\tgGx1SEKaa6GBKpeEMDBU9vZV7UVoE8sf0hf+fd9Pe/t29Q4W+QOdNKmOtk8Urzdp9c98NvNB5\n\tw8XAAL+oyhAGMwjod8ecBX1G72cQ8x0aCARsETcTaPQzpyt9VrLW0oJXva8hgSRVSQl2Uc9Cv\n\tSGqiiGPURl8lMzBv7dDPmrVdUZEjMAScu5JOxZjuSTLFgR7Ab/f6EEK/e9MWx3JKPhWXLjkPn\n\tzheJS7fjvmu/TaaV5yXszFzGFEHmOrvrL4panpasXHqgm3lGjdgZ4sNwf528+4bTvDRypmS0Y\n\t4h7yJQgN3n+582rK74lGhye+pm+so9lsOQIMSYgbettmunpCepRFXXOTXA1C9Xmvk4GGiNAYy\n\ts7ugBoSUqCBFzpy+e9LK66QKiZOkW96CixwEFxag0fKt+/TMukKkovN+9Xjiu6CELXRqVgu93\n\tF3+VT4FQsa7DbRiOwC0Sx19jszJ/ZW2hZrvXi8eGawE7sErpARGRmd/KvnhPXRZZduJ472KG5\n\tPdW/EVh4O23nWxFKMOZZX40B0PzEhTeH3T4JoWNb4iGjW2s+HoSFohzwdlf99h8aIPYlRa4vy\n\thRUWJKnaysob4GlmtAOm00zXijjrxec+Rtkt2BLne+Z/crlBRbGX0jv5Q==","Subject":"Re: [libcamera-devel] [PATCH v4 0/4] generate and use fixed-sized\n\tSpan Control 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>"}},{"id":23119,"web_url":"https://patchwork.libcamera.org/comment/23119/","msgid":"<021e4efc-6cd8-181f-cd63-a00a7fb72cff@gmx.de>","date":"2022-05-21T16:30:24","subject":"Re: [libcamera-devel] [PATCH v4 0/4] generate and use fixed-sized\n\tSpan Control types","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"content":"Hi Kieran,\n\nLooking at this again ... libcamera already uses \"std::optional\" in the\npublic API and requires C++17. Using \"std::optional\" additionally for\nthe control values does not increase the requirements.\n\nBest,\nChristian\n\n\nAm 18.05.22 um 00:56 schrieb Kieran Bingham:\n> Quoting Christian Rauch via libcamera-devel (2022-05-17 23:44:31)\n>> Hi all,\n>>\n>> Can you let me know what is missing to go forward with this? I think I\n>> resolved all comments.\n>>\n>\n> The outstanding investigation was not knowing if opencv could support\n> features from C++17.\n>\n> It looks like they use C++11, and we're already using C++14 - so this\n> may mean that it is already not possible for open-cv to implement a\n> libcamera plugin directly until they update their C++ standard.\n>\n> The difficulty is, as a library that could be widely used - to support\n> more projects would require conservative updating of the C++ standard.\n> So somehow we have to decide when we can use C++ 17 features on our\n> public API.\n>\n> We could also simply choose to do so - and therefore enforce any\n> projects that want to use libcamera to update... For applciations that's\n> probably trivial - but for other libraries, like opencv, well then they\n> face the same issue - that they might not be able to update easily.\n>\n> --\n> Kieran\n>\n>> Best,\n>> Christian\n>>\n>>\n>> Am 27.04.22 um 23:30 schrieb Christian Rauch:\n>>> Hello,\n>>>\n>>> In version 4 of this patch set I applied minor modification from feedback that I received so far. I reorderd the commits such that the \"std::optional\" commit appears first and can be used without the changes related to fixed-sized Spans.\n>>>\n>>> Best,\n>>>\n>>> Christian Rauch (4):\n>>>   use std::optional to handle invalid control values\n>>>   libcamera: controls: Define size of array controls as a shape vector\n>>>   generate fixed- and variable-sized Span Controls\n>>>   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                |  2 +-\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, 61 insertions(+), 43 deletions(-)\n>>>\n>>> --\n>>> 2.34.1","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 986DBC3256\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 21 May 2022 16:30:28 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id F006265663;\n\tSat, 21 May 2022 18:30:27 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.17.22])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0A4F065654\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 21 May 2022 18:30:26 +0200 (CEST)","from [192.168.1.209] ([92.18.80.244]) by mail.gmx.net (mrgmx105\n\t[212.227.17.168]) with ESMTPSA (Nemesis) id 1MTRQq-1oHrhN1kJY-00Tm4Z;\n\tSat, 21 May 2022 18:30:25 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1653150628;\n\tbh=LEWkMA+i6XK3n9TQvnk4/OR5SlmKTEX0IjsjYd5hssM=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=Kn8V/kVTgrfqtoiOkyYgiXzStzjASOj10lnq2uftxVBUXqVcy6+EW/nE3lHTFtqYk\n\tV59cqMYhZM3LdTBu4+jVaSuHmOrhURNcKHCWUbCf+sPqsepvRtdVCpqzSDuTUp13JA\n\tPXikPFeJXaYyr6qOufCJBRy872OO0boV5IILHJw2WlPXWHHWulETQLEYArWVWyAw8k\n\tKXhtJSjnMdROH/kHN9PuJ1/TMXxuWOspQfJtvjTLI7BtIb1TpRNA6FkCagqHt3RCMU\n\tcLONdBkfhZTJjNNdpKx4W8MYtXqZO/m2KKbE0WpyeMallE+5jdS6ckMiiKy7Lpci5g\n\tNPlV6cZoLHgqg==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1653150625;\n\tbh=LEWkMA+i6XK3n9TQvnk4/OR5SlmKTEX0IjsjYd5hssM=;\n\th=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To;\n\tb=ib0UF/gCdn++ZoBnfk62gMno14+zWRfG6gAtf64YKec3n9YCqmQq52D3T39PLJP07\n\t7Xrq5x1TLN20QEFT4stz9oX50QSEp73DX0U6ndQSOmCqwv24ifPE3xBJ3tEzYNbyK+\n\tLwaXPmo7HPlDHNHFmZhDlU75A31n2YbaW2AJvrH0="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"ib0UF/gC\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","Message-ID":"<021e4efc-6cd8-181f-cd63-a00a7fb72cff@gmx.de>","Date":"Sat, 21 May 2022 17:30:24 +0100","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.8.0","Content-Language":"en-GB","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20220427223004.115381-1-Rauch.Christian@gmx.de>\n\t<30757629-281e-b015-1a06-68b7e78eff21@gmx.de>\n\t<165283181789.2416244.2366924008338201474@Monstersaurus>","In-Reply-To":"<165283181789.2416244.2366924008338201474@Monstersaurus>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:FB9K3WTMAObUBmXU4ZsVKeJt6wejKs86CI9QsdBc6sYG7KOZYxH\n\tidXNqxoYTihUjbGDh1Ls143eae6tB8bwGepQjIZZluLePgv3HiD7kNIQsAh5Vjqjq+KN4FH\n\tctzkLnvBxwL2MrAM7/5fIzmbts71WJ5Ac4hfMRUEaZnmoq430Nlamx6z4u42Te1vi7D0k52\n\tW0Lx2oiHBxatLaAzRaomw==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:ZhYUBXcyHwY=:ifchqlWJlpZeXYNxW7owpu\n\tAvhuwQTgS1N3ffyiQU11+mpIdvbJxboArq1ee+9zui2EslnIkVCZ9B179VqL5Ne/wntMCsBRG\n\thrLPv/X/vCJX6Zf4XW139cp4ET780gbqsN3N4KQ7F0vMiByz+ncry7DfFzUdD45vcek6P2Py/\n\ttcaHfups2gB5Pr3/eeWDc7xFmlP8Faz/Q5x08RF8QgNHIjGW1xafZZoBSHvcJk/NVsQfgVQVD\n\tK5seq87iwnP0eeHATGnchmzfUAYML6RnCrbz7mAdbqFn5gkC2T6fyf6akbzqXrCViJzJE2JZg\n\trXcwz9zuD9x8AHe8AY00I6wPin2Tz1H6/lb4LbPQX/VxhA1PZYXlB3Jw7poP0ibq9jpX/8sbi\n\tfxYpINzGSnsAsaWMTrLRZWIGaoxGbRwQKZl3+MqrQ7zLFBA/0QLtVIev1iK25KCXjFjzgU+7+\n\tKUTHt6ZfFxx+sXaIMo/Eh/PHYm+hGpq4ofh0y2QslJL5dLGV/RDY/JqsfjF8IF9CS1rmJ5sQg\n\twuTQvHIBMx4vnfeBo8vCZxHATvjuiutw4sDHJ8jqhBU7Ejb54q3xfQS/JYnsOVWIF73yok65d\n\t/gKKeInKfvBM5Vu2rK6TWI2dAYZnWIFHLJlTtgk088DGEqPKmPJpE96moIOg85ukxEqrTPndg\n\tt7wnPrludXtqUQXRp5rCKfHc43Ay/5VrrTZTkl0cDtpD7KSvB6TPyHHk6SbhFtD2VzsnPXVd8\n\teevBBV4BkbF1Fq6P2ZCVi+jldXLd9iR0Y/SjSlHzHMEOEKS9RJBo62i20+1DCKdIRklWIEM5g\n\tUZiGkZPW1YZvbitOd88J9ErDBjrgdbAdsu1ymkHAsHqGAw2YAzOkYHrw4t2LznuFFz295As0n\n\t5sSvVP2sEGp3StNftH9MEWXUlJr5ggeoK8/uF6ATo/qqIK7LrdYR74ZfUzj/vE8kV80OuiHmV\n\tKC3e1YLivyN5fAhRM9xR5GYEqBHB9CaiCqwkPfauPH5iaKU2A0rKsCoWU1N2L53aDTPJ4iFlA\n\toqAtGjvKJDiU85Wok36a7y/Uxyx/AsvTiad+WJKxUEc7auSIY6Iw0aSMP23B9BbsVNv6RNxan\n\tvDH6S84mbdVcoBsDojP8fwDOX0hE3aEIhwcV+n36wLp0kEduTmUreK38A==","Subject":"Re: [libcamera-devel] [PATCH v4 0/4] generate and use fixed-sized\n\tSpan Control 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>"}}]