[{"id":24864,"web_url":"https://patchwork.libcamera.org/comment/24864/","msgid":"<166194670894.15972.13151184407715478564@Monstersaurus>","date":"2022-08-31T11:51:48","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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-08-30 21:21:23)\n> The default ControlInfo constructor allows to partially initialised the\n> min/max/def values. Uninitialised values are assigned to 0 by default. This\n> implicit initialisation makes it impossible to distinguish between and\n> uninitialised and an explicitly 0-initialised ControlValue.\n> \n> Default construct the ControlValue in the ControlInfo default contructor to\n> explicitly represent uninitialised values by the ControlTypeNone type.\n\nThis sounds ... a lot better !\n\nTesting with this series applied (including the patch 2/2, which should\nprobably be squashed to one patch to maintain bisection) has the\nfollowing failures for me:\n\n27/70 libcamera:serialization / ipa_data_serializer_test                 FAIL            0.02s   (exit status 255 or signal 127 SIGinvalid)\n>>> MALLOC_PERTURB_=174 /home/kbingham/iob/libcamera/libcamera/build/gcc/test/serialization/ipa_data_serializer_test\n―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――\nstderr:\n[148:04:16.561414604] [830675]  INFO IPAManager ipa_manager.cpp:141 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/libcamera/build/gcc/src/ipa' to the IPA search path\n[148:04:16.562718193] [830675]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3856-6478a395\n[148:04:16.567590564] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:174 No static properties available for 'Sensor B'\n[148:04:16.567599841] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:176 Please consider updating the camera sensor properties database\n[148:04:16.567605382] [830679]  WARN CameraSensor camera_sensor.cpp:411 'Sensor B': Failed to retrieve the camera location\n[148:04:16.568583439] [830679]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/libcamera/src/ipa/vimc/data'\n[148:04:16.569025699] [830675] ERROR Serializer control_serializer.cpp:509 Bad data, entry offset mismatch (entry 1)\nlhs:\n- 1: [false..true]\n- 7: [0..999999]\n- 8: [1.000000..32.000000]\n- 9: [-1.000000..1.000000]\n- 15: [0.000000..32.000000]\nrhs:\nDeserialized std::vector<libcamera::ControlInfoMap> doesn't match original\n\nSo I think we have to identify what impact this has on control\nserialisation. I expect we haven't tried to serialize ControlTypeNone\nbefore.\n\nBut I think this is a good path to take currently.\n\n--\nKieran\n\n\n> \n> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n> ---\n>  include/libcamera/controls.h | 6 +++---\n>  1 file changed, 3 insertions(+), 3 deletions(-)\n> \n> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n> index ebc168fc..38d0a3e8 100644\n> --- a/include/libcamera/controls.h\n> +++ b/include/libcamera/controls.h\n> @@ -268,9 +268,9 @@ private:\n>  class ControlInfo\n>  {\n>  public:\n> -       explicit ControlInfo(const ControlValue &min = 0,\n> -                            const ControlValue &max = 0,\n> -                            const ControlValue &def = 0);\n> +       explicit ControlInfo(const ControlValue &min = {},\n> +                            const ControlValue &max = {},\n> +                            const ControlValue &def = {});\n>         explicit ControlInfo(Span<const ControlValue> values,\n>                              const ControlValue &def = {});\n>         explicit ControlInfo(std::set<bool> values, bool def);\n> --\n> 2.34.1\n>","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 ECDD0C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 31 Aug 2022 11:51:53 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3549961FC0;\n\tWed, 31 Aug 2022 13:51:53 +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 2DBC661F9F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 31 Aug 2022 13:51:52 +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 9935F481;\n\tWed, 31 Aug 2022 13:51:51 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1661946713;\n\tbh=/AuaQ7kL/EiAvsJeKLVTWxBpT0cI9mJGC1uNevSZkDc=;\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=p4MmxH8qe9rFsrFeyPNws7Mc4Ns0zR14cUXcIM0FCKnipqaVg/4uJAEcs242259Z2\n\tI9qn+oRxKYeT92SvqMimGds6Ar6ikEwCNqk0ovriiQ4MV6ZiGpRIaPpp2NByGEeyep\n\tXNIwNQAS/F5jthKchPrVEJHqJP48ejTt5x7J6+DPL/m2WUcFbLcZwQI5wbPJ1LuPY8\n\tYSzl1d7fAWLzwtJSdkRCoKXR6B4PAtYpjEK675bDhyUg7NzviC+ir8yMcc0gR0Wvc3\n\tJ3aBQXvOVShaYkVO4B9t6jV1Z3N3Adx1a5JlBDKehPWOh+r47QLJApicomG5bWDFBe\n\tbb3gyUCPsnAow==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1661946711;\n\tbh=/AuaQ7kL/EiAvsJeKLVTWxBpT0cI9mJGC1uNevSZkDc=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=HU1gLSTvoyfS26XAZXDwy9MLz75Y0ySwMy/LeOmyc36XzHwyFZFCR+NcAaNkR/gFf\n\tVr6BVtuI+3KiQ1kuD4fvpLYiO6fLX0feL7N4UI4k426aRqOAG46llp1baOaFGUbq3O\n\t4EhYrM7DhCRZvbv1IJNvwjAnyLWTGiduQ2eyL6KQ="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"HU1gLSTv\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20220830202124.457253-1-Rauch.Christian@gmx.de>","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>","To":"Christian Rauch <Rauch.Christian@gmx.de>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Wed, 31 Aug 2022 12:51:48 +0100","Message-ID":"<166194670894.15972.13151184407715478564@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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":24869,"web_url":"https://patchwork.libcamera.org/comment/24869/","msgid":"<b01cc1c0-8cb3-49c1-7c04-01c8778b4e4b@gmx.de>","date":"2022-08-31T20:45:31","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"content":"Hi Kieran,\n\nThis test (and others) are skipped with \"exit status 77\". When I try to\nrun \"test/serialization/ipa_data_serializer_test\" manually, it fails\nwith \"Can not find 'platform/vimc.0 Sensor B' camera\". This seems to be\na virtual device. Is it somewhere documented how this is created? Could\nthis be created automatically for convenience?\n\nBest,\nChristian\n\n\nAm 31.08.22 um 13:51 schrieb Kieran Bingham:\n> Quoting Christian Rauch via libcamera-devel (2022-08-30 21:21:23)\n>> The default ControlInfo constructor allows to partially initialised the\n>> min/max/def values. Uninitialised values are assigned to 0 by default. This\n>> implicit initialisation makes it impossible to distinguish between and\n>> uninitialised and an explicitly 0-initialised ControlValue.\n>>\n>> Default construct the ControlValue in the ControlInfo default contructor to\n>> explicitly represent uninitialised values by the ControlTypeNone type.\n>\n> This sounds ... a lot better !\n>\n> Testing with this series applied (including the patch 2/2, which should\n> probably be squashed to one patch to maintain bisection) has the\n> following failures for me:\n>\n> 27/70 libcamera:serialization / ipa_data_serializer_test                 FAIL            0.02s   (exit status 255 or signal 127 SIGinvalid)\n>>>> MALLOC_PERTURB_=174 /home/kbingham/iob/libcamera/libcamera/build/gcc/test/serialization/ipa_data_serializer_test\n> ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――\n> stderr:\n> [148:04:16.561414604] [830675]  INFO IPAManager ipa_manager.cpp:141 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/libcamera/build/gcc/src/ipa' to the IPA search path\n> [148:04:16.562718193] [830675]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3856-6478a395\n> [148:04:16.567590564] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:174 No static properties available for 'Sensor B'\n> [148:04:16.567599841] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:176 Please consider updating the camera sensor properties database\n> [148:04:16.567605382] [830679]  WARN CameraSensor camera_sensor.cpp:411 'Sensor B': Failed to retrieve the camera location\n> [148:04:16.568583439] [830679]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/libcamera/src/ipa/vimc/data'\n> [148:04:16.569025699] [830675] ERROR Serializer control_serializer.cpp:509 Bad data, entry offset mismatch (entry 1)\n> lhs:\n> - 1: [false..true]\n> - 7: [0..999999]\n> - 8: [1.000000..32.000000]\n> - 9: [-1.000000..1.000000]\n> - 15: [0.000000..32.000000]\n> rhs:\n> Deserialized std::vector<libcamera::ControlInfoMap> doesn't match original\n>\n> So I think we have to identify what impact this has on control\n> serialisation. I expect we haven't tried to serialize ControlTypeNone\n> before.\n>\n> But I think this is a good path to take currently.\n>\n> --\n> Kieran\n>\n>\n>>\n>> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n>> ---\n>>  include/libcamera/controls.h | 6 +++---\n>>  1 file changed, 3 insertions(+), 3 deletions(-)\n>>\n>> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n>> index ebc168fc..38d0a3e8 100644\n>> --- a/include/libcamera/controls.h\n>> +++ b/include/libcamera/controls.h\n>> @@ -268,9 +268,9 @@ private:\n>>  class ControlInfo\n>>  {\n>>  public:\n>> -       explicit ControlInfo(const ControlValue &min = 0,\n>> -                            const ControlValue &max = 0,\n>> -                            const ControlValue &def = 0);\n>> +       explicit ControlInfo(const ControlValue &min = {},\n>> +                            const ControlValue &max = {},\n>> +                            const ControlValue &def = {});\n>>         explicit ControlInfo(Span<const ControlValue> values,\n>>                              const ControlValue &def = {});\n>>         explicit ControlInfo(std::set<bool> values, bool def);\n>> --\n>> 2.34.1\n>>","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 6E188C3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 31 Aug 2022 20:45:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6AD5361FC0;\n\tWed, 31 Aug 2022 22:45:34 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.15.18])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BF89061F9F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 31 Aug 2022 22:45:32 +0200 (CEST)","from [192.168.0.158] ([88.152.184.103]) by mail.gmx.net (mrgmx005\n\t[212.227.17.190]) with ESMTPSA (Nemesis) id\n\t1MvbFs-1pIRJa0MtS-00sfoR for\n\t<libcamera-devel@lists.libcamera.org>; Wed, 31 Aug 2022 22:45:32 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1661978734;\n\tbh=Xxa+MeZqzP/W2prlRw6mqBPlHvWIqUGBhZtHcJxAwWg=;\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=VzFO4HB4srXHBvEzBxp1tIGZ7WdqfQvcQLVqMdBP0Ko5UW89hfjqInC1h9CP1iIob\n\tXi3b4WDGHRek0ggrT5sPDRNX3xgWG3406svL2CMhwT1+WOiD9AO+mV/B6oyUus4tFZ\n\tsBY8lJhRF0Z7f/pyehVrFSkcALUhkrmQUpyGk2b1MbZSNhyj2JVcOYtv/YbCJya+06\n\ti/2f6eTWMSGfXud9a3xU+s9qHnZnDqZO/R0lREmxnO/wk7fCfMFWxnzGIZ2X9jN4F5\n\tyS1UsByOBc/Mf3Bm0RaH3qJC88fodY7zRH50BAd6tv7FeGhaMosuy4+EiR1U5ygUpC\n\tMfLvyHYH6yqXw==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1661978732;\n\tbh=Xxa+MeZqzP/W2prlRw6mqBPlHvWIqUGBhZtHcJxAwWg=;\n\th=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To;\n\tb=NeAVeGX2d4wK3rfRar2KXvakP2xVhclm4io4r0JaKHeQ2IM8ByK4QqX3FjF3DXhrS\n\t/FbdIFem2MdsA8WKQGLLvge/21wnKMgRY5l9BdSqMA+dJekMLZN/HIBtsF/MG2WX6J\n\t06K2yOKWgb3ltPZlu9ri3yEkqdp6fC1OxiVPuW30="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"NeAVeGX2\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","Message-ID":"<b01cc1c0-8cb3-49c1-7c04-01c8778b4e4b@gmx.de>","Date":"Wed, 31 Aug 2022 22:45:31 +0200","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.11.0","Content-Language":"en-GB","To":"libcamera-devel@lists.libcamera.org","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>\n\t<166194670894.15972.13151184407715478564@Monstersaurus>","In-Reply-To":"<166194670894.15972.13151184407715478564@Monstersaurus>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:OQAXuThEi0cnX0BI3uaZwnuDrBrF7+VIXZotaMTf4R/BYQk8k+2\n\tZC4MIpvkgXtVu9c5kggs9ba18jrwzaNsozSZSZ2Ky74Pnpe6fEqLPwKiMrQBDAEljexC1kk\n\tQieLaHDkpqO6+Ezc80qHK6L/PFUAVMWj6ix6queAMwq0/oFyl0cjSUh/7SBpMSxjfPSvDQ1\n\tgwhzL/z76ACge+7tyb95A==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:E+YEGI26aa0=:VPvsCt2c1ruE/nm1IMR09P\n\tNxh/NxtJp4BNqDpbAYmDrHo9ktVn4KhUB9lQeJ0i0chsIGHL5xUxpopXr6KMVHDu7DcfO+C4W\n\tVvN/KfNFUeuR9cV4vZDlZ4SMfLD9sHsSYG+fqfmnQoJ+CY4ipTsR868ii8NpUjO1yF5cuOCJH\n\tzFE7/44bm1srzkcoxavqPnsyADd/JKN68z33A4VZJBIo2VoakwkaJ9CWU6w7ZIIh+nZzT8p2v\n\tcrz/1j0nPG4eOdyuugWTBQrZQe4ZGpwSvNOQ7IdwlDS7kMBBFsQ1dIlro/OpnaMyRVAhdVt7P\n\t2OjME9qbGSRi8P0x20r+Iw8kc79y4F49DwaYNy0UiiJi/D6HrkjObeBdoomQW5sv/maJ/0Jo5\n\t/o/+szor3r0Zh2pW0FVw3Ey0HzcG0k+cVw4y3l30mbRzMxPPKXedO/e4EQ6IBwuzSnQc1NFIt\n\tGAYy2VnFNIBhGZ4xXsgnwup4MfCEXTyFxXkl6dmCMVNHjt51gJftEr8qxdPr6kYB3taowLvLf\n\t8rqDRpb4Vb3WRpK1wP1pdAQmm/6LB7sue/Yjt4//q8nHX5BEMPNWOCx5yUMHTpAhfieyaREUn\n\tCeynM/hUFGtECK7Bqv16aS8JWnEWE9xkENOb/QwxdIho6kwcPJb64Kjbf3vOFcoaUP6ydukXn\n\toBpBw0NxgvTW4ExUCQsA7Al0iOI1XGKOlg/tyLWu6ZGb/6eZu1p/c/2rVEQIs61FkQ3B83rda\n\tz/XHfDTzmqKCw2JlwHgdiXRKbLfIFOdXoKv1hYniGDobj6ujTz01Fl7QfmnKVqBTFSwhG3Gk8\n\tRZ6FiBJmMgskD0y4swvPWBxxx5ir7dELRTnus0scg9o38BNXvm5VQglh0SPTqnYzMxs4gDO7C\n\tPbaX5osV2hlgkWC6fwZNo3YnuR0I5kgqhHuHjszaUb2VCbVbYytgDcwLvY+tCBDanhWekFq48\n\tzR2zPM8MNp311GQsz6QB05lNFcI8UJGkCaN9VKlt360lMDEbSdsiSKmKuNu9jENDiXGT5NDfl\n\tWgtdtHhkvLiKR6ThqWHiJzxseOl83ahAFTCctyCYixitgzpOj36VkpOP+w9QAurja+HPTcixs\n\tesTqIBS4Hjv7/dXGuUkWC+MhJNlqreea6e/hn0ag25eSd6P30urxqxeZig7UzU4PcLP5sdbx5\n\tsog+MUw3jTb9anWwzAoBO607CJ","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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":24870,"web_url":"https://patchwork.libcamera.org/comment/24870/","msgid":"<166198002807.1138516.11933891331899071444@Monstersaurus>","date":"2022-08-31T21:07:08","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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-08-31 21:45:31)\n> Hi Kieran,\n> \n> This test (and others) are skipped with \"exit status 77\". When I try to\n> run \"test/serialization/ipa_data_serializer_test\" manually, it fails\n> with \"Can not find 'platform/vimc.0 Sensor B' camera\". This seems to be\n> a virtual device. Is it somewhere documented how this is created? Could\n> this be created automatically for convenience?\n\nTo load the modules for testing:\n\nsudo modprobe vimc\nsudo modprobe vim2m\nsudo modrpobe vivid\n\nWe should really find somewhere suitable to document that.\n\n--\nKieran\n\n\n> \n> Best,\n> Christian\n> \n> \n> Am 31.08.22 um 13:51 schrieb Kieran Bingham:\n> > Quoting Christian Rauch via libcamera-devel (2022-08-30 21:21:23)\n> >> The default ControlInfo constructor allows to partially initialised the\n> >> min/max/def values. Uninitialised values are assigned to 0 by default. This\n> >> implicit initialisation makes it impossible to distinguish between and\n> >> uninitialised and an explicitly 0-initialised ControlValue.\n> >>\n> >> Default construct the ControlValue in the ControlInfo default contructor to\n> >> explicitly represent uninitialised values by the ControlTypeNone type.\n> >\n> > This sounds ... a lot better !\n> >\n> > Testing with this series applied (including the patch 2/2, which should\n> > probably be squashed to one patch to maintain bisection) has the\n> > following failures for me:\n> >\n> > 27/70 libcamera:serialization / ipa_data_serializer_test                 FAIL            0.02s   (exit status 255 or signal 127 SIGinvalid)\n> >>>> MALLOC_PERTURB_=174 /home/kbingham/iob/libcamera/libcamera/build/gcc/test/serialization/ipa_data_serializer_test\n> > ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――\n> > stderr:\n> > [148:04:16.561414604] [830675]  INFO IPAManager ipa_manager.cpp:141 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/libcamera/build/gcc/src/ipa' to the IPA search path\n> > [148:04:16.562718193] [830675]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3856-6478a395\n> > [148:04:16.567590564] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:174 No static properties available for 'Sensor B'\n> > [148:04:16.567599841] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:176 Please consider updating the camera sensor properties database\n> > [148:04:16.567605382] [830679]  WARN CameraSensor camera_sensor.cpp:411 'Sensor B': Failed to retrieve the camera location\n> > [148:04:16.568583439] [830679]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/libcamera/src/ipa/vimc/data'\n> > [148:04:16.569025699] [830675] ERROR Serializer control_serializer.cpp:509 Bad data, entry offset mismatch (entry 1)\n> > lhs:\n> > - 1: [false..true]\n> > - 7: [0..999999]\n> > - 8: [1.000000..32.000000]\n> > - 9: [-1.000000..1.000000]\n> > - 15: [0.000000..32.000000]\n> > rhs:\n> > Deserialized std::vector<libcamera::ControlInfoMap> doesn't match original\n> >\n> > So I think we have to identify what impact this has on control\n> > serialisation. I expect we haven't tried to serialize ControlTypeNone\n> > before.\n> >\n> > But I think this is a good path to take currently.\n> >\n> > --\n> > Kieran\n> >\n> >\n> >>\n> >> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n> >> ---\n> >>  include/libcamera/controls.h | 6 +++---\n> >>  1 file changed, 3 insertions(+), 3 deletions(-)\n> >>\n> >> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n> >> index ebc168fc..38d0a3e8 100644\n> >> --- a/include/libcamera/controls.h\n> >> +++ b/include/libcamera/controls.h\n> >> @@ -268,9 +268,9 @@ private:\n> >>  class ControlInfo\n> >>  {\n> >>  public:\n> >> -       explicit ControlInfo(const ControlValue &min = 0,\n> >> -                            const ControlValue &max = 0,\n> >> -                            const ControlValue &def = 0);\n> >> +       explicit ControlInfo(const ControlValue &min = {},\n> >> +                            const ControlValue &max = {},\n> >> +                            const ControlValue &def = {});\n> >>         explicit ControlInfo(Span<const ControlValue> values,\n> >>                              const ControlValue &def = {});\n> >>         explicit ControlInfo(std::set<bool> values, bool def);\n> >> --\n> >> 2.34.1\n> >>","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 7BC86C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 31 Aug 2022 21:07:13 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D670C61FC0;\n\tWed, 31 Aug 2022 23:07:12 +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 7501E61F9F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 31 Aug 2022 23:07:11 +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 D465B481;\n\tWed, 31 Aug 2022 23:07:10 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1661980032;\n\tbh=tRXwCHdR5c3IlUdy1+Yr7IapWH2i1rKZV1NeIGaZDWI=;\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=cs+uy0eo75iaPOfUZnDdefiVhWZ8UAdw3z9n3kUREhJb97bErEDezFo05E89PxGxo\n\tx+SrmCYgMobLKrNFvQzSHdcH4C62cc8WTPlM7kkMNIAI7/DxP4rtHsjeIMj6e4CP/V\n\t9Rx3n7cgJarROUtUYIG8B3aKU00iyTsezP3ycY7JSm3ZRmE+i6nxyQ4zBG27bX3avu\n\txMUcxDtvLQePj3MpldfpsOF886ts/22SATKXcDQ2fveZKjhwhZJReqTF+TD7+NA2Ie\n\tQEgwdvH5fBPGOGKyhfr6buf3IAORimpXM48wIwA5hkzUU00hkbAejegy2keQVCVsUN\n\tjozmhyVAjGUMA==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1661980030;\n\tbh=tRXwCHdR5c3IlUdy1+Yr7IapWH2i1rKZV1NeIGaZDWI=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=EK0/TUI6boAFYYtXA8Q5KWGUcS+ph/uz7tPaaeVrECKWAkEuIz2xCReQIGq7+9m8n\n\tmZt7/tkbzOwa0bb5bKrgk/7Al5WpdHz/mABBO4PcVayv783Ya10PaQfRNeB99yB7yr\n\tp63W0zJkZx555W3fDvSqlhJvLdV5yRnAbHkdxwHA="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"EK0/TUI6\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<b01cc1c0-8cb3-49c1-7c04-01c8778b4e4b@gmx.de>","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>\n\t<166194670894.15972.13151184407715478564@Monstersaurus>\n\t<b01cc1c0-8cb3-49c1-7c04-01c8778b4e4b@gmx.de>","To":"Christian Rauch <Rauch.Christian@gmx.de>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Wed, 31 Aug 2022 22:07:08 +0100","Message-ID":"<166198002807.1138516.11933891331899071444@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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":24871,"web_url":"https://patchwork.libcamera.org/comment/24871/","msgid":"<20220831210648.GA27075@pyrite.rasen.tech>","date":"2022-08-31T21:09:09","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","submitter":{"id":97,"url":"https://patchwork.libcamera.org/api/people/97/","name":"Nicolas Dufresne via libcamera-devel","email":"libcamera-devel@lists.libcamera.org"},"content":"On Wed, Aug 31, 2022 at 12:51:48PM +0100, Kieran Bingham via libcamera-devel wrote:\n> Quoting Christian Rauch via libcamera-devel (2022-08-30 21:21:23)\n> > The default ControlInfo constructor allows to partially initialised the\n> > min/max/def values. Uninitialised values are assigned to 0 by default. This\n> > implicit initialisation makes it impossible to distinguish between and\n> > uninitialised and an explicitly 0-initialised ControlValue.\n> > \n> > Default construct the ControlValue in the ControlInfo default contructor to\n> > explicitly represent uninitialised values by the ControlTypeNone type.\n> \n> This sounds ... a lot better !\n> \n> Testing with this series applied (including the patch 2/2, which should\n> probably be squashed to one patch to maintain bisection) has the\n> following failures for me:\n> \n> 27/70 libcamera:serialization / ipa_data_serializer_test                 FAIL            0.02s   (exit status 255 or signal 127 SIGinvalid)\n> >>> MALLOC_PERTURB_=174 /home/kbingham/iob/libcamera/libcamera/build/gcc/test/serialization/ipa_data_serializer_test\n> ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――\n> stderr:\n> [148:04:16.561414604] [830675]  INFO IPAManager ipa_manager.cpp:141 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/libcamera/build/gcc/src/ipa' to the IPA search path\n> [148:04:16.562718193] [830675]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3856-6478a395\n> [148:04:16.567590564] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:174 No static properties available for 'Sensor B'\n> [148:04:16.567599841] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:176 Please consider updating the camera sensor properties database\n> [148:04:16.567605382] [830679]  WARN CameraSensor camera_sensor.cpp:411 'Sensor B': Failed to retrieve the camera location\n> [148:04:16.568583439] [830679]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/libcamera/src/ipa/vimc/data'\n> [148:04:16.569025699] [830675] ERROR Serializer control_serializer.cpp:509 Bad data, entry offset mismatch (entry 1)\n> lhs:\n> - 1: [false..true]\n> - 7: [0..999999]\n> - 8: [1.000000..32.000000]\n> - 9: [-1.000000..1.000000]\n> - 15: [0.000000..32.000000]\n> rhs:\n> Deserialized std::vector<libcamera::ControlInfoMap> doesn't match original\n> \n> So I think we have to identify what impact this has on control\n> serialisation. I expect we haven't tried to serialize ControlTypeNone\n> before.\n\nThis is probably related to bug 137 [1].\n\nMaybe it's time to fix it :p\n\n\nPaul\n\n\n[1] https://bugs.libcamera.org/show_bug.cgi?id=137\n\n> \n> But I think this is a good path to take currently.\n> \n> --\n> Kieran\n> \n> \n> > \n> > Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n> > ---\n> >  include/libcamera/controls.h | 6 +++---\n> >  1 file changed, 3 insertions(+), 3 deletions(-)\n> > \n> > diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n> > index ebc168fc..38d0a3e8 100644\n> > --- a/include/libcamera/controls.h\n> > +++ b/include/libcamera/controls.h\n> > @@ -268,9 +268,9 @@ private:\n> >  class ControlInfo\n> >  {\n> >  public:\n> > -       explicit ControlInfo(const ControlValue &min = 0,\n> > -                            const ControlValue &max = 0,\n> > -                            const ControlValue &def = 0);\n> > +       explicit ControlInfo(const ControlValue &min = {},\n> > +                            const ControlValue &max = {},\n> > +                            const ControlValue &def = {});\n> >         explicit ControlInfo(Span<const ControlValue> values,\n> >                              const ControlValue &def = {});\n> >         explicit ControlInfo(std::set<bool> values, bool def);\n> > --\n> > 2.34.1\n> >","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 3A7BEC0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 31 Aug 2022 21:09:17 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 785E761FC0;\n\tWed, 31 Aug 2022 23:09:16 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F1FFD61F9F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 31 Aug 2022 23:09:14 +0200 (CEST)","from pyrite.rasen.tech (unknown [50.228.9.220])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 91C7A481;\n\tWed, 31 Aug 2022 23:09:13 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1661980156;\n\tbh=RyZeEnFKWPsQYn/WUHgec+P24hKN4acuS4fjxADRCSE=;\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:Cc:\n\tFrom;\n\tb=tnDh7Dnrm5KCaNnm2Wamf1RaPAfxdZVktcboYCRXK1RcfvSZE7bchVjatBT3zTAvd\n\tLtgfkH6g3XIkJyDgl5Upshj533MS74k/0bj5nl89p3OXfYjrwnWpPpl/j1JtTtL+WJ\n\tgSh6S/DizQCcz2vBz6D9JDyxIKwa9did5AEcUrC85BFuGaaGW+zwH1hs64/aVXFdRo\n\tZ5bvxBbCzvufbiRdOi2gdphmVpnfCpysEPokKQ8NiF0GR1p1/ZQXKGBF5aLB98jfsH\n\tkpSTVms4NKb17yqYe8Znv7vEPJP2gEv6e/YWmvyHvRmU+XBJtCByFYRnL1g2XkWcy9\n\te5fwngqil2s6w==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1661980154;\n\tbh=RyZeEnFKWPsQYn/WUHgec+P24hKN4acuS4fjxADRCSE=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=fKia/DEmv2Dm4/oBjpXWqZ5kEwyZKxEHYvN+PENhaEP+6BajAKe3aE3IA1ii7IN3u\n\tYbzTMo0rLrntiX8x6TCLxGyWsZO6IwSSUOtava2gjH+XQkoc6btzj3YfFxQjfzy5Qb\n\tZjyxwqEvQBBTUn1g/asC1s8n3OsAQ4hD1GOIez4A="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"fKia/DEm\"; dkim-atps=neutral","Date":"Wed, 31 Aug 2022 17:09:09 -0400","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20220831210648.GA27075@pyrite.rasen.tech>","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>\n\t<166194670894.15972.13151184407715478564@Monstersaurus>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<166194670894.15972.13151184407715478564@Monstersaurus>","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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":"Paul Elder via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"paul.elder@ideasonboard.com","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24872,"web_url":"https://patchwork.libcamera.org/comment/24872/","msgid":"<20220831211259.GB27075@pyrite.rasen.tech>","date":"2022-08-31T21:12:59","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","submitter":{"id":97,"url":"https://patchwork.libcamera.org/api/people/97/","name":"Nicolas Dufresne via libcamera-devel","email":"libcamera-devel@lists.libcamera.org"},"content":"Hi Christian,\n\nOn Wed, Aug 31, 2022 at 10:45:31PM +0200, Christian Rauch via libcamera-devel wrote:\n> Hi Kieran,\n> \n> This test (and others) are skipped with \"exit status 77\". When I try to\n> run \"test/serialization/ipa_data_serializer_test\" manually, it fails\n> with \"Can not find 'platform/vimc.0 Sensor B' camera\". This seems to be\n> a virtual device. Is it somewhere documented how this is created? Could\n> this be created automatically for convenience?\n\nIt's a kernel module; you can load it like:\n\n$ sudo modprobe vimc\n\nAlthough iirc many distro kernels these days don't come with it? Or\nmaybe they fixed that [1]. Anyway it's not difficult to test.\n\n[1] https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1831482\n\n\nPaul\n\n> \n> Am 31.08.22 um 13:51 schrieb Kieran Bingham:\n> > Quoting Christian Rauch via libcamera-devel (2022-08-30 21:21:23)\n> >> The default ControlInfo constructor allows to partially initialised the\n> >> min/max/def values. Uninitialised values are assigned to 0 by default. This\n> >> implicit initialisation makes it impossible to distinguish between and\n> >> uninitialised and an explicitly 0-initialised ControlValue.\n> >>\n> >> Default construct the ControlValue in the ControlInfo default contructor to\n> >> explicitly represent uninitialised values by the ControlTypeNone type.\n> >\n> > This sounds ... a lot better !\n> >\n> > Testing with this series applied (including the patch 2/2, which should\n> > probably be squashed to one patch to maintain bisection) has the\n> > following failures for me:\n> >\n> > 27/70 libcamera:serialization / ipa_data_serializer_test                 FAIL            0.02s   (exit status 255 or signal 127 SIGinvalid)\n> >>>> MALLOC_PERTURB_=174 /home/kbingham/iob/libcamera/libcamera/build/gcc/test/serialization/ipa_data_serializer_test\n> > ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――\n> > stderr:\n> > [148:04:16.561414604] [830675]  INFO IPAManager ipa_manager.cpp:141 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/libcamera/build/gcc/src/ipa' to the IPA search path\n> > [148:04:16.562718193] [830675]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3856-6478a395\n> > [148:04:16.567590564] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:174 No static properties available for 'Sensor B'\n> > [148:04:16.567599841] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:176 Please consider updating the camera sensor properties database\n> > [148:04:16.567605382] [830679]  WARN CameraSensor camera_sensor.cpp:411 'Sensor B': Failed to retrieve the camera location\n> > [148:04:16.568583439] [830679]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/libcamera/src/ipa/vimc/data'\n> > [148:04:16.569025699] [830675] ERROR Serializer control_serializer.cpp:509 Bad data, entry offset mismatch (entry 1)\n> > lhs:\n> > - 1: [false..true]\n> > - 7: [0..999999]\n> > - 8: [1.000000..32.000000]\n> > - 9: [-1.000000..1.000000]\n> > - 15: [0.000000..32.000000]\n> > rhs:\n> > Deserialized std::vector<libcamera::ControlInfoMap> doesn't match original\n> >\n> > So I think we have to identify what impact this has on control\n> > serialisation. I expect we haven't tried to serialize ControlTypeNone\n> > before.\n> >\n> > But I think this is a good path to take currently.\n> >\n> > --\n> > Kieran\n> >\n> >\n> >>\n> >> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n> >> ---\n> >>  include/libcamera/controls.h | 6 +++---\n> >>  1 file changed, 3 insertions(+), 3 deletions(-)\n> >>\n> >> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n> >> index ebc168fc..38d0a3e8 100644\n> >> --- a/include/libcamera/controls.h\n> >> +++ b/include/libcamera/controls.h\n> >> @@ -268,9 +268,9 @@ private:\n> >>  class ControlInfo\n> >>  {\n> >>  public:\n> >> -       explicit ControlInfo(const ControlValue &min = 0,\n> >> -                            const ControlValue &max = 0,\n> >> -                            const ControlValue &def = 0);\n> >> +       explicit ControlInfo(const ControlValue &min = {},\n> >> +                            const ControlValue &max = {},\n> >> +                            const ControlValue &def = {});\n> >>         explicit ControlInfo(Span<const ControlValue> values,\n> >>                              const ControlValue &def = {});\n> >>         explicit ControlInfo(std::set<bool> values, bool def);\n> >> --\n> >> 2.34.1\n> >>","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 3B37BC3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 31 Aug 2022 21:13:06 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 88FC061FC0;\n\tWed, 31 Aug 2022 23:13:05 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DBBBB61F9F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 31 Aug 2022 23:13:03 +0200 (CEST)","from pyrite.rasen.tech (unknown [50.228.9.220])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 11BC2481;\n\tWed, 31 Aug 2022 23:13:02 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1661980385;\n\tbh=bMbfwNaJlIbAo+pIgYgw18bnuV2I7WEU9o+F1Q7OPe4=;\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:Cc:\n\tFrom;\n\tb=22xATT/wZZMioS1WtAAVrqYZf/HJQMXPB9pZtN9Hlm1cgsHVDSVCncn7EYtJo7ORi\n\tcTHHwSexTCmgeP90m6GmKx91W9Znj7PGmWwc/66XyepHGfRG/H6u5hp6P5l027XOL6\n\tmdwrfEHfJIChVkp4+ewk1LXNsMXg3Cx3EEF4iB824U5lpBTkAkVzA3vOl2VfOTXSBn\n\t5Cqdo9PNLdXDm9rCfvHiOXdhJx5EOnKdGsilkDWS6P897jUOcC+6c4ywu5ctCN4hdZ\n\tutAsquUyz1vIimk1ky6r8DDjfTT/aAwDWtnMYk5cQWaMwxDKB6e3T5RWeFR0Y7X81I\n\ttEiC3peHjXENg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1661980383;\n\tbh=bMbfwNaJlIbAo+pIgYgw18bnuV2I7WEU9o+F1Q7OPe4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=ESaplwzb97upaQ2rK+C1feq7pNZ/ceqZ0gFORPl8ZwrZTW5TFlb+8PnVKRi048JK5\n\tJXtH9IZMHNYAGc0UAcvCfmm4kZtyAFcGBn+VzuQLPNE3ylciKoQ46RTIfQC6lcxMoN\n\tFPg9qwdaINnn0ygYlTrLZwy5Zua4itgP/9GqCzew="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"ESaplwzb\"; dkim-atps=neutral","Date":"Wed, 31 Aug 2022 17:12:59 -0400","To":"Christian Rauch <Rauch.Christian@gmx.de>","Message-ID":"<20220831211259.GB27075@pyrite.rasen.tech>","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>\n\t<166194670894.15972.13151184407715478564@Monstersaurus>\n\t<b01cc1c0-8cb3-49c1-7c04-01c8778b4e4b@gmx.de>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<b01cc1c0-8cb3-49c1-7c04-01c8778b4e4b@gmx.de>","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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":"Paul Elder via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"paul.elder@ideasonboard.com","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24898,"web_url":"https://patchwork.libcamera.org/comment/24898/","msgid":"<126fcab4-0ce5-f782-77c6-015fa134fe1f@gmx.de>","date":"2022-09-02T22:52:08","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"content":"Hi Kieran,\n\nAm 31.08.22 um 13:51 schrieb Kieran Bingham:\n> Quoting Christian Rauch via libcamera-devel (2022-08-30 21:21:23)\n>> The default ControlInfo constructor allows to partially initialised the\n>> min/max/def values. Uninitialised values are assigned to 0 by default. This\n>> implicit initialisation makes it impossible to distinguish between and\n>> uninitialised and an explicitly 0-initialised ControlValue.\n>>\n>> Default construct the ControlValue in the ControlInfo default contructor to\n>> explicitly represent uninitialised values by the ControlTypeNone type.\n>\n> This sounds ... a lot better !\n>\n> Testing with this series applied (including the patch 2/2, which should\n> probably be squashed to one patch to maintain bisection) has the\n> following failures for me:\n>\n> 27/70 libcamera:serialization / ipa_data_serializer_test                 FAIL            0.02s   (exit status 255 or signal 127 SIGinvalid)\n>>>> MALLOC_PERTURB_=174 /home/kbingham/iob/libcamera/libcamera/build/gcc/test/serialization/ipa_data_serializer_test\n> ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――\n> stderr:\n> [148:04:16.561414604] [830675]  INFO IPAManager ipa_manager.cpp:141 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/libcamera/build/gcc/src/ipa' to the IPA search path\n> [148:04:16.562718193] [830675]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3856-6478a395\n> [148:04:16.567590564] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:174 No static properties available for 'Sensor B'\n> [148:04:16.567599841] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:176 Please consider updating the camera sensor properties database\n> [148:04:16.567605382] [830679]  WARN CameraSensor camera_sensor.cpp:411 'Sensor B': Failed to retrieve the camera location\n> [148:04:16.568583439] [830679]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/libcamera/src/ipa/vimc/data'\n> [148:04:16.569025699] [830675] ERROR Serializer control_serializer.cpp:509 Bad data, entry offset mismatch (entry 1)\n> lhs:\n> - 1: [false..true]\n> - 7: [0..999999]\n> - 8: [1.000000..32.000000]\n> - 9: [-1.000000..1.000000]\n> - 15: [0.000000..32.000000]\n> rhs:\n> Deserialized std::vector<libcamera::ControlInfoMap> doesn't match original\n>\n> So I think we have to identify what impact this has on control\n> serialisation. I expect we haven't tried to serialize ControlTypeNone\n> before.\n\nSee v3. I added a commit that de-/serialises the type alongside the\nvalue. This fixes the test for me. Can you test this again?\n\n> But I think this is a good path to take currently.\n>\n> --\n> Kieran\n>\n>\n>>\n>> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n>> ---\n>>  include/libcamera/controls.h | 6 +++---\n>>  1 file changed, 3 insertions(+), 3 deletions(-)\n>>\n>> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n>> index ebc168fc..38d0a3e8 100644\n>> --- a/include/libcamera/controls.h\n>> +++ b/include/libcamera/controls.h\n>> @@ -268,9 +268,9 @@ private:\n>>  class ControlInfo\n>>  {\n>>  public:\n>> -       explicit ControlInfo(const ControlValue &min = 0,\n>> -                            const ControlValue &max = 0,\n>> -                            const ControlValue &def = 0);\n>> +       explicit ControlInfo(const ControlValue &min = {},\n>> +                            const ControlValue &max = {},\n>> +                            const ControlValue &def = {});\n>>         explicit ControlInfo(Span<const ControlValue> values,\n>>                              const ControlValue &def = {});\n>>         explicit ControlInfo(std::set<bool> values, bool def);\n>> --\n>> 2.34.1\n>>","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 F39E2C3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  2 Sep 2022 22:52:10 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 567C761FFE;\n\tSat,  3 Sep 2022 00:52:10 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.15.19])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 77C0E61FF8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat,  3 Sep 2022 00:52:09 +0200 (CEST)","from [192.168.0.158] ([88.152.184.103]) by mail.gmx.net (mrgmx005\n\t[212.227.17.190]) with ESMTPSA (Nemesis) id\n\t1N3bSj-1pTXQ205WF-010fxx for\n\t<libcamera-devel@lists.libcamera.org>; Sat, 03 Sep 2022 00:52:09 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1662159130;\n\tbh=utk+QP7qKbvAuMQureskYyYZ+TqYuMKY96DCnkQQ0eE=;\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=NDGmXUDI7aLDvHXBkTWeM3Kjr5m+TMZLDM2sMgvowVi5zVQ8Yu88wCYt5OcGW+3W6\n\t/xIHYez1C0nMHUJg5rlUURp2p3j8OaryO7b3OeI+MLnUJMxY14WSEie617fhdC981E\n\tFyDcsIJDSbnIrKKyxICMN4UZJH90aUxMhdBn12LtCf/WYuXvaOw9pjatwjhfKv1F9M\n\twWYKTI7SVFUe4Rxymo32LpuUVq23TdO3jcOVOgggIhLwnYGk2yEzxbwQ/Oaznlx7zi\n\tgTi63l7qsfpU5ng4CXBY5yszNHrznhpUNcu7ZVqWijmyZvPBUshm6TVlvvLPaEakeW\n\tmHatWHnzJj+FQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1662159129;\n\tbh=utk+QP7qKbvAuMQureskYyYZ+TqYuMKY96DCnkQQ0eE=;\n\th=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To;\n\tb=it3thbPnsETGjrvCqW71y8FykBJgq/McFaVnYuPBuszfz/egXxyD5i0TeiS9N5auL\n\tV5ivEhHQ79/uWrybW5T0pCShN2lyIYnJELP4AW4jdGqH54g10Mwrri4YQqaoENtMTJ\n\tyVkPjwOZdLiYsUV8NdqD0S6b6c8CK97k4zsx6ON0="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"it3thbPn\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","Message-ID":"<126fcab4-0ce5-f782-77c6-015fa134fe1f@gmx.de>","Date":"Sat, 3 Sep 2022 00:52:08 +0200","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.11.0","Content-Language":"en-GB","To":"libcamera-devel@lists.libcamera.org","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>\n\t<166194670894.15972.13151184407715478564@Monstersaurus>","In-Reply-To":"<166194670894.15972.13151184407715478564@Monstersaurus>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:qlfdGTlF+JSlJkGQpDpMInCAN671f8Lih5cCSVQt8ZVwHowLKYX\n\tUbkDKI2Q0gLz9iAsiexcnnqiwRhbhi9JhgrZ3swdwNuqBm4Ndggg+ROLN7CPyBMLs0DIYo9\n\tx1QAcj6BBEhyV1PptMgi581ESj+CAQ9fLRHw8F/CWRzrDAJ6THjooJDrI/tA0dFlVyv65LH\n\tGzk5egpNyL8qkPJX+eK5Q==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:xCBhT9X6EPg=:EVlBGLM1Qj6Gk82y3eGIFw\n\td0sZBIZwWc26uc2KAAC/0OO0SKNd/qF8AJY+BHTDooR/n10rGiHo1jKlzVtPTr2quDDa2BFR0\n\t7yMWQpK0QyO48A14QcNQXoXXcbDOmOR1umrpccjV3Lnd9r+dT8sWJREYWZGeYQJMNKXuk/NOx\n\tbwW0y9QdL1uBDWG5i56StFvDwnFeEtATOGUMYXmmkY5muZOLnPFoCNGsfHigxNYduUgobEvEU\n\tVvMRdXYXvctEjMKhm217GMSDDN0HUV93KcrLxItBCSJkWHaFtHpIkBfLH2v1dSs2PFnFixjP8\n\tCeBEz7OKukWHx+tPtG/+kmtgPF7cSvVH50ykumqjqlWFycWahuDOU0VcOG2mxmEX5cBBdX0Mx\n\tw9R/NCbFhT1SGCjriQMrh8EjAK9BGIycMYXQsK1F1zxr31w3FJ+kSsXbiitLeQwr9sQI7IS54\n\tOGb4us4ci0utac626rXOYJhijJ5BrTezZqv0zw+q8xdkZIydU3uO5n0VgY9HiEm1Xc+UmTW+n\n\tu6sS6IKn5pf2iVQh7229D2CgE7qb7N9GMQHsSVVPyX1eexswBj2UBPwVLmNWRKBi+IlwLy4Bz\n\tggm37J3PaxeROjq0LTCHlsGkV1ztdM2yfqSC4pgmjUOkv+SvM8nm3mh2JSQjyTP7BMN8hcULO\n\tLn0CCE6f+p7xbMX+71LS4o3nwiKvA/BI5VTsaekVBjIlJ4LZiZIM7SAnyymyVJoUgtZ7iMwU7\n\tHDlh2kJx37iF3dE1nWiXYkoDtS8Rb8p+eCVVKk2viE3KeAxYQRnlvSZAUmD7ZSHXLTStcfd2n\n\tR4tyBVicLFjHNCkRqTv8KzDjD0rrClrVS2PZz8VLUbC3lh+RRlgyRrQRNjIL+ojDVQXWyE6SN\n\tOmIQIAZnq5X8z6HAjsaGO5GQjiEt02e1UL2v2d0MXeLQ8JcF/16HgOi1YeKkxfMYHRZ0w4xIn\n\tZBtPBuEfVedi/6K4M/WZRKfmW8wru0BP38cQPoz99lXVoyNNuWHCdkbWo22e5TQzFC5jIckJo\n\thFx5VjY/1pSI/pfqSGGv2sD7K0xD+m1p85LLL96vYCxuywFXe9P1Nx0BpVk0ug6Occ//j7Wi4\n\toq9ncx+z0bjegOucxc6qPKjxh6G254X7T3lXV+Acn47LWN8W9lNQoQS4mAaC09wbTgWmag9OI\n\tWWI+r2yCRbDANKrcPCb9K2FEvA","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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":24899,"web_url":"https://patchwork.libcamera.org/comment/24899/","msgid":"<6f79196f-3f49-89c2-ad5c-06ef2be8d7ae@gmx.de>","date":"2022-09-02T23:04:36","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"content":"Hi Paul,\n\nAm 31.08.22 um 23:09 schrieb paul.elder@ideasonboard.com:\n> On Wed, Aug 31, 2022 at 12:51:48PM +0100, Kieran Bingham via libcamera-devel wrote:\n>> Quoting Christian Rauch via libcamera-devel (2022-08-30 21:21:23)\n>>> The default ControlInfo constructor allows to partially initialised the\n>>> min/max/def values. Uninitialised values are assigned to 0 by default. This\n>>> implicit initialisation makes it impossible to distinguish between and\n>>> uninitialised and an explicitly 0-initialised ControlValue.\n>>>\n>>> Default construct the ControlValue in the ControlInfo default contructor to\n>>> explicitly represent uninitialised values by the ControlTypeNone type.\n>>\n>> This sounds ... a lot better !\n>>\n>> Testing with this series applied (including the patch 2/2, which should\n>> probably be squashed to one patch to maintain bisection) has the\n>> following failures for me:\n>>\n>> 27/70 libcamera:serialization / ipa_data_serializer_test                 FAIL            0.02s   (exit status 255 or signal 127 SIGinvalid)\n>>>>> MALLOC_PERTURB_=174 /home/kbingham/iob/libcamera/libcamera/build/gcc/test/serialization/ipa_data_serializer_test\n>> ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――\n>> stderr:\n>> [148:04:16.561414604] [830675]  INFO IPAManager ipa_manager.cpp:141 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/libcamera/build/gcc/src/ipa' to the IPA search path\n>> [148:04:16.562718193] [830675]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3856-6478a395\n>> [148:04:16.567590564] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:174 No static properties available for 'Sensor B'\n>> [148:04:16.567599841] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:176 Please consider updating the camera sensor properties database\n>> [148:04:16.567605382] [830679]  WARN CameraSensor camera_sensor.cpp:411 'Sensor B': Failed to retrieve the camera location\n>> [148:04:16.568583439] [830679]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/libcamera/src/ipa/vimc/data'\n>> [148:04:16.569025699] [830675] ERROR Serializer control_serializer.cpp:509 Bad data, entry offset mismatch (entry 1)\n>> lhs:\n>> - 1: [false..true]\n>> - 7: [0..999999]\n>> - 8: [1.000000..32.000000]\n>> - 9: [-1.000000..1.000000]\n>> - 15: [0.000000..32.000000]\n>> rhs:\n>> Deserialized std::vector<libcamera::ControlInfoMap> doesn't match original\n>>\n>> So I think we have to identify what impact this has on control\n>> serialisation. I expect we haven't tried to serialize ControlTypeNone\n>> before.\n>\n> This is probably related to bug 137 [1].\n>\n> Maybe it's time to fix it :p\n>\n\nSee my v3 for a fix and see [2] for a bit more details.\n\n[2] https://bugs.libcamera.org/show_bug.cgi?id=137#c5\n\n>\n> Paul\n>\n>\n> [1] https://bugs.libcamera.org/show_bug.cgi?id=137\n>\n>>\n>> But I think this is a good path to take currently.\n>>\n>> --\n>> Kieran\n>>\n>>\n>>>\n>>> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n>>> ---\n>>>  include/libcamera/controls.h | 6 +++---\n>>>  1 file changed, 3 insertions(+), 3 deletions(-)\n>>>\n>>> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n>>> index ebc168fc..38d0a3e8 100644\n>>> --- a/include/libcamera/controls.h\n>>> +++ b/include/libcamera/controls.h\n>>> @@ -268,9 +268,9 @@ private:\n>>>  class ControlInfo\n>>>  {\n>>>  public:\n>>> -       explicit ControlInfo(const ControlValue &min = 0,\n>>> -                            const ControlValue &max = 0,\n>>> -                            const ControlValue &def = 0);\n>>> +       explicit ControlInfo(const ControlValue &min = {},\n>>> +                            const ControlValue &max = {},\n>>> +                            const ControlValue &def = {});\n>>>         explicit ControlInfo(Span<const ControlValue> values,\n>>>                              const ControlValue &def = {});\n>>>         explicit ControlInfo(std::set<bool> values, bool def);\n>>> --\n>>> 2.34.1\n>>>","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 7A99EC0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  2 Sep 2022 23:04:39 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CEB8E61FFE;\n\tSat,  3 Sep 2022 01:04:38 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.15.15])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C104C61FF8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat,  3 Sep 2022 01:04:36 +0200 (CEST)","from [192.168.0.158] ([88.152.184.103]) by mail.gmx.net (mrgmx004\n\t[212.227.17.190]) with ESMTPSA (Nemesis) id\n\t1MJVDW-1oo6yy1VFo-00JocM for\n\t<libcamera-devel@lists.libcamera.org>; Sat, 03 Sep 2022 01:04:36 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1662159878;\n\tbh=oy7TehJly254/tTKZsj9+dAobZ4dD+d39x+AzQUphPo=;\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=pCeyRwP1nuM41MdaWJFxAt7WDP9yH7pw8KTDztUGAuC+hZ7C3g3TanxFPyyS6zXUE\n\tZ6KTigEFr07+SNut+zhJNcJC5+bewrcgEV0q8h7S3fPhSSv10EkLJ2+3Fs5RB1rq1h\n\txYWtAIS8pBXyMYP4f6ELondnteHWJreNxv+tlh2lLgCxiDldB8kvGW8pdilczAjcsE\n\twbN/Eqz4mQmoANvhw025N8Kzw5O6G4UoFtuFEFW8FLkxZyT4od9v3xYXU1LXr+TL0r\n\tGRZYgPQe6jRxNzqmLP18ACt8IC0M4zkjapRHot8RmfXDlLUOJ+YNS5K7hwyGCOOjt7\n\tXsKWHOGHrb7Xg==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1662159876;\n\tbh=oy7TehJly254/tTKZsj9+dAobZ4dD+d39x+AzQUphPo=;\n\th=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To;\n\tb=f/Ej1csxe+DsiKadJOLIr6AazF2kYps3v1+t7vl4aX6Hre6FunO6wqYWe/IJMrq6w\n\tGhWG0uPmxWbYmITKX3PCD68E8wqR+xrWWG6vyktKN4NAarmlCOHkubaiEBAF4I5Xrv\n\tLUOP/vx37AmS6fBpd6ZBlqg1ufwiCrLcpng9CuZA="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"f/Ej1csx\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","Message-ID":"<6f79196f-3f49-89c2-ad5c-06ef2be8d7ae@gmx.de>","Date":"Sat, 3 Sep 2022 01:04:36 +0200","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.11.0","Content-Language":"en-GB","To":"libcamera-devel@lists.libcamera.org","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>\n\t<166194670894.15972.13151184407715478564@Monstersaurus>\n\t<20220831210648.GA27075@pyrite.rasen.tech>","In-Reply-To":"<20220831210648.GA27075@pyrite.rasen.tech>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:9fjniXSeES+RVTnFpmLmb1bbFzjXObWmj61CeXhQB9BbHSt9vH4\n\t8VQZynUUSpEojbxvz53eBgM4bPkUSslCfenv+quGFCNDb0u+1lniZ8WiZUg3fnJRWSG1vpv\n\t/SvdTYjTMxlMwD4H8N93QHdDtf6ZfskTxs+b7QTm73QqUbSGeYrILktLYWV7TmnWhIQN63D\n\tggQuB8rzN+XQTkm7Git0Q==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:9fG9cj9eCmY=:9RygJXD9yJ7mX1XkgLinN5\n\tKcXsntGozzwIfhVDKDwREyTBDLgG+OEsSNUN7WhWPNGJIXvsM5nV+W0NgnHfJIZRfuc135it8\n\tvYMLmkSzDMOWQZ1bjPNecqkdHzadDO4FtKcScrxoEU4K4hBNq8hmG970HiZ68SdnYZvolGBS4\n\tTdrke+09mUdfF48PczZLzIVc9iInchf0WWcqkYeRtSEaqwhyjWflf3c4ritnjssn75wDy0jAb\n\t0WYwxX+nOJUMvwkM8jq8xbBSUZuojwCKGT5RujB/yO8OdQ8zIujDkFAXp7M9cJ0MlteYaSZ+4\n\ttpypb7DoZ306noIsyYKl1u92B7Z9Kyl+khIr7qGyJrmHEz1TnSJx8MrPiexi/54MrjbuP8QZd\n\tjuL25pqSPPBeZBR4dhGHA80fLeTmF2ANfw44Iz9Iy2gS4ucvoV6kNpccB/pUqKm3R/jWDv3oL\n\tRn5bS6d8sOY3gZRI9k5mh1J2tICmminMYB7dgo3kiN0s2ZnRpqoLPhs0HBaNHbg29DA2HX1Dx\n\t1vp8xdata/KUCt8rFvxArQVSvmyvAuU5awOnROTCuPzYnVRmQD8M1pBgzU6eZQt5lEIBBhvl6\n\tfHcsDbunvoJ2eWqP4RT1pQ6CtTcAeF66lPzWeqOV2HATOByv5kasCuvltb/OwbivHs1WtqBpF\n\ttYy7URsOsZYX5Xq0w3kq7FbiBgCN71wwVfWErJW11s3sEL9Pj6TMbcfGCoCDhfmUKUhLROlvM\n\t386kBDsjqk1j6RzK7dzV+wYPV8kOL5Ez2cNF1ooIfZeapTT9oJsahogZr3gSE3Y/TJA3tMKUT\n\twFqRFlfM53p8KdXeXbPpZTzHIFlNTvQjO4bYB5Elwycmsv0h4uBGfrkmSgP4kOMq+CLtMCBVv\n\thJ+45ZHYHmOAElr0IilHyYPc8amBjDTliI1BrOAWrm+uosfqwhHKcNPKwdNerclm+sUTyo9ic\n\tmEOI5sPSOK5hUaS6nUZp/a1CzfYza+C22txJHAjknG0J6VpiUOvraJL/T2t78U5hr8/vI0JX/\n\t/DVO0L2P6xQCsQiVQuAjcKx5ILRtBl2CIY1s5dZcAlcOOKw9zE5dQSHJxjLW+DWN4RL9tF3GH\n\tlVOiDW4dmLllp8B3RyQBVj0VznSFB3OPMPfPZWIJv8550m26hf4uCzsr+Fe3NKZg+2jJ2sB+g\n\tT6dBdd5avXpsJHAXQTS92W50Hq","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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":24919,"web_url":"https://patchwork.libcamera.org/comment/24919/","msgid":"<b71691c1-4589-9d58-e759-244ab6df9d90@gmx.de>","date":"2022-09-04T16:10:08","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"content":"Hi Kieran,\n\nAm 31.08.22 um 23:07 schrieb Kieran Bingham:\n> Quoting Christian Rauch via libcamera-devel (2022-08-31 21:45:31)\n>> Hi Kieran,\n>>\n>> This test (and others) are skipped with \"exit status 77\". When I try to\n>> run \"test/serialization/ipa_data_serializer_test\" manually, it fails\n>> with \"Can not find 'platform/vimc.0 Sensor B' camera\". This seems to be\n>> a virtual device. Is it somewhere documented how this is created? Could\n>> this be created automatically for convenience?\n>\n> To load the modules for testing:\n>\n> sudo modprobe vimc\n> sudo modprobe vim2m\n> sudo modrpobe vivid\n>\n> We should really find somewhere suitable to document that.\n\nI managed to create that virtual device. This only exposes BGR888 and\nRGB888 formats. Is it possible to simulate other formats, such as YUYV\nor NV21?\n\n> --\n> Kieran\n>\n>\n>>\n>> Best,\n>> Christian\n>>\n>>\n>> Am 31.08.22 um 13:51 schrieb Kieran Bingham:\n>>> Quoting Christian Rauch via libcamera-devel (2022-08-30 21:21:23)\n>>>> The default ControlInfo constructor allows to partially initialised the\n>>>> min/max/def values. Uninitialised values are assigned to 0 by default. This\n>>>> implicit initialisation makes it impossible to distinguish between and\n>>>> uninitialised and an explicitly 0-initialised ControlValue.\n>>>>\n>>>> Default construct the ControlValue in the ControlInfo default contructor to\n>>>> explicitly represent uninitialised values by the ControlTypeNone type.\n>>>\n>>> This sounds ... a lot better !\n>>>\n>>> Testing with this series applied (including the patch 2/2, which should\n>>> probably be squashed to one patch to maintain bisection) has the\n>>> following failures for me:\n>>>\n>>> 27/70 libcamera:serialization / ipa_data_serializer_test                 FAIL            0.02s   (exit status 255 or signal 127 SIGinvalid)\n>>>>>> MALLOC_PERTURB_=174 /home/kbingham/iob/libcamera/libcamera/build/gcc/test/serialization/ipa_data_serializer_test\n>>> ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――\n>>> stderr:\n>>> [148:04:16.561414604] [830675]  INFO IPAManager ipa_manager.cpp:141 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/libcamera/build/gcc/src/ipa' to the IPA search path\n>>> [148:04:16.562718193] [830675]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3856-6478a395\n>>> [148:04:16.567590564] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:174 No static properties available for 'Sensor B'\n>>> [148:04:16.567599841] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:176 Please consider updating the camera sensor properties database\n>>> [148:04:16.567605382] [830679]  WARN CameraSensor camera_sensor.cpp:411 'Sensor B': Failed to retrieve the camera location\n>>> [148:04:16.568583439] [830679]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/libcamera/src/ipa/vimc/data'\n>>> [148:04:16.569025699] [830675] ERROR Serializer control_serializer.cpp:509 Bad data, entry offset mismatch (entry 1)\n>>> lhs:\n>>> - 1: [false..true]\n>>> - 7: [0..999999]\n>>> - 8: [1.000000..32.000000]\n>>> - 9: [-1.000000..1.000000]\n>>> - 15: [0.000000..32.000000]\n>>> rhs:\n>>> Deserialized std::vector<libcamera::ControlInfoMap> doesn't match original\n>>>\n>>> So I think we have to identify what impact this has on control\n>>> serialisation. I expect we haven't tried to serialize ControlTypeNone\n>>> before.\n>>>\n>>> But I think this is a good path to take currently.\n>>>\n>>> --\n>>> Kieran\n>>>\n>>>\n>>>>\n>>>> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n>>>> ---\n>>>>  include/libcamera/controls.h | 6 +++---\n>>>>  1 file changed, 3 insertions(+), 3 deletions(-)\n>>>>\n>>>> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n>>>> index ebc168fc..38d0a3e8 100644\n>>>> --- a/include/libcamera/controls.h\n>>>> +++ b/include/libcamera/controls.h\n>>>> @@ -268,9 +268,9 @@ private:\n>>>>  class ControlInfo\n>>>>  {\n>>>>  public:\n>>>> -       explicit ControlInfo(const ControlValue &min = 0,\n>>>> -                            const ControlValue &max = 0,\n>>>> -                            const ControlValue &def = 0);\n>>>> +       explicit ControlInfo(const ControlValue &min = {},\n>>>> +                            const ControlValue &max = {},\n>>>> +                            const ControlValue &def = {});\n>>>>         explicit ControlInfo(Span<const ControlValue> values,\n>>>>                              const ControlValue &def = {});\n>>>>         explicit ControlInfo(std::set<bool> values, bool def);\n>>>> --\n>>>> 2.34.1\n>>>>","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 3AE64C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun,  4 Sep 2022 16:10:13 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8139E6203D;\n\tSun,  4 Sep 2022 18:10:12 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.15.18])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D9381603E0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun,  4 Sep 2022 18:10:10 +0200 (CEST)","from [192.168.0.158] ([88.152.184.103]) by mail.gmx.net (mrgmx004\n\t[212.227.17.190]) with ESMTPSA (Nemesis) id\n\t1MGQnP-1oagYP1kMv-00GseI for\n\t<libcamera-devel@lists.libcamera.org>; Sun, 04 Sep 2022 18:10:08 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1662307812;\n\tbh=dQSc/r1iGD1xMDAahV/QX20BArUkwFtW6yeBySOht4Y=;\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=gxwE90OQQ80uHwa0RJFkwlPjy8trYp0EVSzSezgrNN8UQxNj2Q/67hoMXcNBxHnUt\n\tx6U8duFZdBSR3y7l7X7JDrRqFhn69rCRe1A5CCqlyzssrS8M3MZXUGcaiJPUOngtkA\n\tJKayl1K6sugJaS2CdE/78My8YC2feXtfzXH7btBBvP6XAIVmpK69qRYB3vQ0M3bJDp\n\tWcSkoeGSIY2W02fuHhACdANooe8Zo9nlr6JYhn5h71WVTMQRoH664Kwlm+PTHZEbOe\n\t2N/q/DAF+kXzQpN97ODVerpCSt4ws+7jIzgkA0CY3AQdg1tT2ybFwZsSihwIHU91qU\n\tf7J7+0Tso97bA==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1662307808;\n\tbh=dQSc/r1iGD1xMDAahV/QX20BArUkwFtW6yeBySOht4Y=;\n\th=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To;\n\tb=IEecybjsgoNt0HkIDQmdB474h52Ibe4CamdbYYSh3Sz2SeWrGstii21u2IQ6+q6Si\n\taoR7krprORe/8vUhc1ImIe2TS2acK1RH64eykOX3MfcBAZzn71IRw/idtcy/P080CU\n\tS8IdNyBq3lZDQlEngo4b3R+3gvfkMXfSST6zVDqo="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"IEecybjs\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","Message-ID":"<b71691c1-4589-9d58-e759-244ab6df9d90@gmx.de>","Date":"Sun, 4 Sep 2022 18:10:08 +0200","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.11.0","Content-Language":"en-GB","To":"libcamera-devel@lists.libcamera.org","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>\n\t<166194670894.15972.13151184407715478564@Monstersaurus>\n\t<b01cc1c0-8cb3-49c1-7c04-01c8778b4e4b@gmx.de>\n\t<166198002807.1138516.11933891331899071444@Monstersaurus>","In-Reply-To":"<166198002807.1138516.11933891331899071444@Monstersaurus>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:WHnXzWLe9t5Y6URJWqkQPWgGfVImkmKml8Pzz1UMMih2U14M2x4\n\tJw/wYVHGCl++WJkzI5dwunEXYs2WQPEHFlGIm3I5smyUH3DTR6f9BpBvMqhuWSZ6329c/KG\n\toX2n0ZNAexJphDuBlcb/NZ1TUdMsLEE96u+70RDGfaW2FkJdY7Fqa09GCssT6cDDWSicyw+\n\tr/2hOOQVadrcqVzmgP9Gw==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:k9D0e7fUSHg=:ZCB0usBH3/IPJ2e5xr3Ftd\n\tHYFEB/hZ0lWTT/iir2aQ/lj8uAOUIp+a0gL3VECE62GAtAhB2FtMb0V1DhcdoLbpGHQSpK6ni\n\tX9yn0NPc0YS3vq1tlp/j3DgMhFwda3x5ybdp3Lxwj1y9NHQRrdbqFCJb+mh7f3pRsUCF1wJDM\n\tTQCUL/d7s0wgSwCKrRhARxG7oR5ygqdLEhrtVMwcmql0TKAiR4bfOQFQOH0QuwVr3sPHta2Lo\n\tpQtfoBmWfL0VJcbYgMbGhL2vHQyVuxYKneA50jnrzilVIWZjp984CYmBlA2JvBklVDWNpeyDD\n\tX90SQuodz0t4Ow3PfxCHZaDzC/SwR+uH4ATB3vOFrTh+2Mx9HD9AQB00CcebjnB14h3xEFfn/\n\tqNJ5hNIpVx1ox+RfLL2103E8AQwRtFM5b1VFhkZ2vTTs0Thl1d+P6Q37r+lCTsAx1GDLzSsV0\n\tFTCY0UTrs4TbeeVsu7bZMohEzl5tAiKGkL9LAQZ3sB5QtfSHvIeCayr3fElfHiFOQOgjqgG52\n\t0foup+sibSwTpPFSBwvgmor6j5dPcME0jH6hERvmEYhGpxsIFgU1J1Z2AUbJocAPKZuTMs3yw\n\tktWFOOhueoLoOq3wjkZ/kYbZ3n3NAd5vFgwvAJCdSsSXrob5xz3NFc95a4zK2RiIVA75pTM48\n\tX55x07MW460m6gZa747XDh5Irn8cK9c/AtAdZ4362D5DupFpYRvGGvkE1CQONreb6da6zTSFz\n\tiCOrExj95ODWJirlCWu1lXcJlBXlYzMaqtkr2FnEaCNqIEhETPGdBH6V2dn/6uBR3AYjVGKED\n\tWIb+34GNDJOd6RR2Ws9hhM3KTh+emOWFVh9u399c/VduB4meVGp6mG0TpVAq9nfL7mcP2Uk6n\n\tMqCB3nlkTmiBjIm92+Tz0usnp9lU/knJ7RCRRO9yCIS3Iqw54NCXJZZw2e7TCyQPgTOOjQ9oU\n\tqxUfmAVHrXF4ThnEqUhYq/4ahPaByNJvuF7eWAFOkYJXE1lE5Gp4ERWWPi3fozmiDVNw0zdwW\n\ttRjHoUeIQtLb3vbduogaMa0v1jVgX40ZwZNAWSJqICfkUk2+lCJtcqYCvstmne+EzjNx9Qthp\n\tsNEiBL0J/BrMDQMAuxkQLe+ZWJbDFdzJLHigG/usKyVDclXbRIGaHu2ysBRSE40PdiVjT9s6i\n\t7xrn/FiZtyUTRSKgXIm9klNVEa","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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":25137,"web_url":"https://patchwork.libcamera.org/comment/25137/","msgid":"<166428021235.2677993.12649936014747591148@Monstersaurus>","date":"2022-09-27T12:03:32","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Christian,\n\nSorry - I missed this mail before.\n\nQuoting Christian Rauch via libcamera-devel (2022-09-04 17:10:08)\n> Hi Kieran,\n> \n> Am 31.08.22 um 23:07 schrieb Kieran Bingham:\n> > Quoting Christian Rauch via libcamera-devel (2022-08-31 21:45:31)\n> >> Hi Kieran,\n> >>\n> >> This test (and others) are skipped with \"exit status 77\". When I try to\n> >> run \"test/serialization/ipa_data_serializer_test\" manually, it fails\n> >> with \"Can not find 'platform/vimc.0 Sensor B' camera\". This seems to be\n> >> a virtual device. Is it somewhere documented how this is created? Could\n> >> this be created automatically for convenience?\n> >\n> > To load the modules for testing:\n> >\n> > sudo modprobe vimc\n> > sudo modprobe vim2m\n> > sudo modrpobe vivid\n> >\n> > We should really find somewhere suitable to document that.\n> \n> I managed to create that virtual device. This only exposes BGR888 and\n> RGB888 formats. Is it possible to simulate other formats, such as YUYV\n> or NV21?\n\nNot with VIMC. I'd like to see more formats supported by VIMC - but that\nrequires kernel work.\n\nHowever, another option is the Vivid pipeline handler. This is a\npipeline handler for the vivid kernel test device. We keep this 'out of\ntree' from libcamera, because it's not supposed to be a supported\ndevice.\n\nIt is however really useful because the vivid device can generate all,\nif not certainly most of the formats supported by V4L2.\n\nTo use it, merge the vivid pipeline handler into libcamera from:\n\n  https://git.libcamera.org/libcamera/vivid.git/log/\n\nThis will then provide you with a new 'vivid' camera which can generate\nmany more formats.\n\nIt's constantly rebased with my local build scripts to maintain it on\ntop of tree, and also serves as some 'patch' documentation as to how to\nadd and introduce a new pipeline handler.\n\n--\nKieran\n\n\n> \n> > --\n> > Kieran\n> >\n> >\n> >>\n> >> Best,\n> >> Christian\n> >>\n> >>\n> >> Am 31.08.22 um 13:51 schrieb Kieran Bingham:\n> >>> Quoting Christian Rauch via libcamera-devel (2022-08-30 21:21:23)\n> >>>> The default ControlInfo constructor allows to partially initialised the\n> >>>> min/max/def values. Uninitialised values are assigned to 0 by default. This\n> >>>> implicit initialisation makes it impossible to distinguish between and\n> >>>> uninitialised and an explicitly 0-initialised ControlValue.\n> >>>>\n> >>>> Default construct the ControlValue in the ControlInfo default contructor to\n> >>>> explicitly represent uninitialised values by the ControlTypeNone type.\n> >>>\n> >>> This sounds ... a lot better !\n> >>>\n> >>> Testing with this series applied (including the patch 2/2, which should\n> >>> probably be squashed to one patch to maintain bisection) has the\n> >>> following failures for me:\n> >>>\n> >>> 27/70 libcamera:serialization / ipa_data_serializer_test                 FAIL            0.02s   (exit status 255 or signal 127 SIGinvalid)\n> >>>>>> MALLOC_PERTURB_=174 /home/kbingham/iob/libcamera/libcamera/build/gcc/test/serialization/ipa_data_serializer_test\n> >>> ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――\n> >>> stderr:\n> >>> [148:04:16.561414604] [830675]  INFO IPAManager ipa_manager.cpp:141 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/libcamera/build/gcc/src/ipa' to the IPA search path\n> >>> [148:04:16.562718193] [830675]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3856-6478a395\n> >>> [148:04:16.567590564] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:174 No static properties available for 'Sensor B'\n> >>> [148:04:16.567599841] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:176 Please consider updating the camera sensor properties database\n> >>> [148:04:16.567605382] [830679]  WARN CameraSensor camera_sensor.cpp:411 'Sensor B': Failed to retrieve the camera location\n> >>> [148:04:16.568583439] [830679]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/libcamera/src/ipa/vimc/data'\n> >>> [148:04:16.569025699] [830675] ERROR Serializer control_serializer.cpp:509 Bad data, entry offset mismatch (entry 1)\n> >>> lhs:\n> >>> - 1: [false..true]\n> >>> - 7: [0..999999]\n> >>> - 8: [1.000000..32.000000]\n> >>> - 9: [-1.000000..1.000000]\n> >>> - 15: [0.000000..32.000000]\n> >>> rhs:\n> >>> Deserialized std::vector<libcamera::ControlInfoMap> doesn't match original\n> >>>\n> >>> So I think we have to identify what impact this has on control\n> >>> serialisation. I expect we haven't tried to serialize ControlTypeNone\n> >>> before.\n> >>>\n> >>> But I think this is a good path to take currently.\n> >>>\n> >>> --\n> >>> Kieran\n> >>>\n> >>>\n> >>>>\n> >>>> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n> >>>> ---\n> >>>>  include/libcamera/controls.h | 6 +++---\n> >>>>  1 file changed, 3 insertions(+), 3 deletions(-)\n> >>>>\n> >>>> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n> >>>> index ebc168fc..38d0a3e8 100644\n> >>>> --- a/include/libcamera/controls.h\n> >>>> +++ b/include/libcamera/controls.h\n> >>>> @@ -268,9 +268,9 @@ private:\n> >>>>  class ControlInfo\n> >>>>  {\n> >>>>  public:\n> >>>> -       explicit ControlInfo(const ControlValue &min = 0,\n> >>>> -                            const ControlValue &max = 0,\n> >>>> -                            const ControlValue &def = 0);\n> >>>> +       explicit ControlInfo(const ControlValue &min = {},\n> >>>> +                            const ControlValue &max = {},\n> >>>> +                            const ControlValue &def = {});\n> >>>>         explicit ControlInfo(Span<const ControlValue> values,\n> >>>>                              const ControlValue &def = {});\n> >>>>         explicit ControlInfo(std::set<bool> values, bool def);\n> >>>> --\n> >>>> 2.34.1\n> >>>>","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 DFCA6BD16B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 27 Sep 2022 12:03:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 37B8262276;\n\tTue, 27 Sep 2022 14:03:38 +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 13E5861F7D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 27 Sep 2022 14:03:36 +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 7F831E5;\n\tTue, 27 Sep 2022 14:03:35 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1664280218;\n\tbh=KnBrAtEI+wM09AnieUwyu+90MuuQiiODjeJnegH2OyE=;\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=j/Rm5nFWuJ/EqGklfNKcuEFyUsPCx5mjEobIiv8Y2fU2VUqdwgmICAid5QmomEvpR\n\tYz0cwAGsTf07LQQQCMV9cZOWuOd6dkVSo6tt1ZspSrGsHXyBcpitdvnJ8LOaYaf/rN\n\twG0F/6c2uwIlVFo6nxRm0h4oOxYimzzmK2lGb4Xl6w1F4+ZmgtznJYonG2+SbZ4qm/\n\tAOYskRvj1Jzt7G/rmrYdWCqw1BHPRj8WYOO9TGuRuC8jqfXO+LtiGbwOdpbGRPlrbS\n\tLT9IvG9ECm0QVPxK5eEQF+UuZ+VL38ReZk9u/RiIsl/L0O+pVLCEFsGrBsZHli3lsg\n\t3PBvyxPMZu03Q==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1664280215;\n\tbh=KnBrAtEI+wM09AnieUwyu+90MuuQiiODjeJnegH2OyE=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=K9fj0xzOjCy8giTAfx4WKajrfiTg1sqE1minRuyLgNxLODvRaCQp+n7Ru5W1D0f6T\n\tqiXcN2+bVA+byS2WCosO5wsAbb4WMS5LjoCVffQcokNkGugJ1ze2KWLjyyBPsWfE+4\n\tOFfe6BP7hb0FLvJeJ//Y5vIs6f3yypBDs9F3oJgQ="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"K9fj0xzO\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<b71691c1-4589-9d58-e759-244ab6df9d90@gmx.de>","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>\n\t<166194670894.15972.13151184407715478564@Monstersaurus>\n\t<b01cc1c0-8cb3-49c1-7c04-01c8778b4e4b@gmx.de>\n\t<166198002807.1138516.11933891331899071444@Monstersaurus>\n\t<b71691c1-4589-9d58-e759-244ab6df9d90@gmx.de>","To":"Christian Rauch <Rauch.Christian@gmx.de>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Tue, 27 Sep 2022 13:03:32 +0100","Message-ID":"<166428021235.2677993.12649936014747591148@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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":25179,"web_url":"https://patchwork.libcamera.org/comment/25179/","msgid":"<CAHW6GYJrT2RFNzvfBGWaEWVgZVr=u60UHC-scrLkTg8W7GSM2A@mail.gmail.com>","date":"2022-09-30T11:01:11","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi Christian\n\nI have a question about this because it's causing my Python code to\nbreak. Not in any major way, we just need to decide what we want to do\nabout it.\n\nThe problem is that you can no longer fetch the default value for a\ncontrol, it causes a runtime error. The code in question is here:\nhttps://git.linuxtv.org/libcamera.git/tree/src/py/libcamera/py_helpers.cpp#n57\n\nThere are a number of straightforward solutions, such as returning\n\"py::none()\", for example. Does that sound like a reasonable thing to\ndo?\n\nThanks!\nDavid\n\nOn Tue, 30 Aug 2022 at 21:21, Christian Rauch via libcamera-devel\n<libcamera-devel@lists.libcamera.org> wrote:\n>\n> The default ControlInfo constructor allows to partially initialised the\n> min/max/def values. Uninitialised values are assigned to 0 by default. This\n> implicit initialisation makes it impossible to distinguish between and\n> uninitialised and an explicitly 0-initialised ControlValue.\n>\n> Default construct the ControlValue in the ControlInfo default contructor to\n> explicitly represent uninitialised values by the ControlTypeNone type.\n>\n> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n> ---\n>  include/libcamera/controls.h | 6 +++---\n>  1 file changed, 3 insertions(+), 3 deletions(-)\n>\n> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n> index ebc168fc..38d0a3e8 100644\n> --- a/include/libcamera/controls.h\n> +++ b/include/libcamera/controls.h\n> @@ -268,9 +268,9 @@ private:\n>  class ControlInfo\n>  {\n>  public:\n> -       explicit ControlInfo(const ControlValue &min = 0,\n> -                            const ControlValue &max = 0,\n> -                            const ControlValue &def = 0);\n> +       explicit ControlInfo(const ControlValue &min = {},\n> +                            const ControlValue &max = {},\n> +                            const ControlValue &def = {});\n>         explicit ControlInfo(Span<const ControlValue> values,\n>                              const ControlValue &def = {});\n>         explicit ControlInfo(std::set<bool> values, bool def);\n> --\n> 2.34.1\n>","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 BA1A2C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 30 Sep 2022 11:01:26 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E104F623A3;\n\tFri, 30 Sep 2022 13:01:25 +0200 (CEST)","from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com\n\t[IPv6:2607:f8b0:4864:20::1032])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 56A4D61F77\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 30 Sep 2022 13:01:24 +0200 (CEST)","by mail-pj1-x1032.google.com with SMTP id\n\tbu5-20020a17090aee4500b00202e9ca2182so7124452pjb.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 30 Sep 2022 04:01:24 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1664535686;\n\tbh=D94PeerKv1SxePaAtk8e6jyBONb1UNFYQyYkutElwG8=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=3/D4GBu/NrUh1IkEtbzPfMZI1+HhqYDBoPY4PMuHiBxkwP/0UM8glU31tgZejwIH3\n\t+Hq+q1K/Ucb+3XDX3lBdlP/fBmZtcpRKiwDw+u9VYnvvMWp3HoMZFJtKtQALHeGaS2\n\tnE9Y0jNLz4KkjL2eKXZsxhszYuDp5o0+zAcHKylZkfo5fXIFDEibEd3mmY7UkSmVet\n\tJ275AGl3TsWa+ek+vYv15XFh4lSZnY91QMascA3Y7qoBHDaeRAnnI9aSjveZUYai4Q\n\thoV0CSSNQwBe8Em0q+8NplO9tVW/9YVmN1Yg9tzE0jHkMgXJ4HYF031uXi8IHAf1V2\n\t+qNLnJdfJlRQA==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date;\n\tbh=tuB9O0iQzmFJtOnX5+xSXzJ1Z58/jRGxldFEVH6lgfM=;\n\tb=oZ7GPNWkIjIdiNh6bmNZR1abgy6Hufk6JHpSenYLfJ1/kol+eRXS0MpcHoKrz/VyfN\n\tk26Slh7qG5lzBy1wEQwZguryFJX3I42ZxnEUxJGkgjPbyUYX2qXqXiVoWRDeKi8H/WL4\n\tkSR0OH+aY3YjDB2YItxJ8Ul86l7/+9qHbMsytJ7kA+O8K2GZzQ0/aG9ZKmQ0DMiguV0M\n\tZRwq9SYHwFM1NXXMiSmVkz4h0ZvlEPVDtc1rkXb4ovBcBF2htoQv2buDkOyAljIeMs1N\n\tElXLcoqloBttQdOkAmzb4ICzcQ/L/iVpu+hH770JhSSlEZg06Zxkc9/mg0SJbKK+X9Pb\n\tTVOw=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"oZ7GPNWk\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date;\n\tbh=tuB9O0iQzmFJtOnX5+xSXzJ1Z58/jRGxldFEVH6lgfM=;\n\tb=3PgN+QJHctnokIRJsVpUVrLPdT6urptR11RLUObXbIGQ0gE0srwHfD0wkb/M6/Mq8b\n\tEN/mhlGNVG325dl1VePzv9eRQWF9lJBdSm04ulSDsSP73ksU4jpKRIxdd9fjxPx0SYZT\n\tEt70MK7aIQ/kqiWecoP7c8VZ2nNc2JlSPvR8+MYz9hqcPtS9Owxxma7fpb+PPwg7WGur\n\tDvpIx5muctskdJKjIntTNdPm9EevEEQRDEkv/XDDyDxYRClPmQLOuNmjZB9JSh2bCdTv\n\t6no5/RGw3ti/rbCsiwM9vCNjZYs9/RFWZ1T//j+cbNlY8HC/N9q8sDiK3G8y9ihN20Xh\n\tlcJQ==","X-Gm-Message-State":"ACrzQf0m7J61z6nrVN1OixxedIK39pfxcWxOOw02Fr1upQKVm8W1+8F9\n\tfFuEQJAUiFMdKz9C0nia3xkgpdDj6vxTFyo6AgfIzeJ0mX9QiA==","X-Google-Smtp-Source":"AMsMyM5M+OLZW/dyjV5z7TpiJA6331Xh/q0wCYL7gAibOJt30XdAE3ON1y3Bg5K+s50zdvs+5WdBl/kXITW7oA4ZG9Q=","X-Received":"by 2002:a17:90b:4f45:b0:203:1cf4:6a54 with SMTP id\n\tpj5-20020a17090b4f4500b002031cf46a54mr21390429pjb.235.1664535682529;\n\tFri, 30 Sep 2022 04:01:22 -0700 (PDT)","MIME-Version":"1.0","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>","In-Reply-To":"<20220830202124.457253-1-Rauch.Christian@gmx.de>","Date":"Fri, 30 Sep 2022 12:01:11 +0100","Message-ID":"<CAHW6GYJrT2RFNzvfBGWaEWVgZVr=u60UHC-scrLkTg8W7GSM2A@mail.gmail.com>","To":"Christian Rauch <Rauch.Christian@gmx.de>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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":"David Plowman via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"David Plowman <david.plowman@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":25180,"web_url":"https://patchwork.libcamera.org/comment/25180/","msgid":"<ca6c5bce-35c3-13fe-2074-2baaafed3ee6@ideasonboard.com>","date":"2022-09-30T11:14:12","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","submitter":{"id":109,"url":"https://patchwork.libcamera.org/api/people/109/","name":"Tomi Valkeinen","email":"tomi.valkeinen@ideasonboard.com"},"content":"Hi,\n\nOn 30/09/2022 14:01, David Plowman wrote:\n> Hi Christian\n> \n> I have a question about this because it's causing my Python code to\n> break. Not in any major way, we just need to decide what we want to do\n> about it.\n> \n> The problem is that you can no longer fetch the default value for a\n> control, it causes a runtime error. The code in question is here:\n> https://git.linuxtv.org/libcamera.git/tree/src/py/libcamera/py_helpers.cpp#n57\n> \n> There are a number of straightforward solutions, such as returning\n> \"py::none()\", for example. Does that sound like a reasonable thing to\n> do?\n\nAre we supposed to have uninitialized values? In that case py::none \nsounds fine. Or is it a bug if a control has an uninitialized default? \nThen throwing an exception, as we do now, sounds fine.\n\n  Tomi\n\n\n> Thanks!\n> David\n> \n> On Tue, 30 Aug 2022 at 21:21, Christian Rauch via libcamera-devel\n> <libcamera-devel@lists.libcamera.org> wrote:\n>>\n>> The default ControlInfo constructor allows to partially initialised the\n>> min/max/def values. Uninitialised values are assigned to 0 by default. This\n>> implicit initialisation makes it impossible to distinguish between and\n>> uninitialised and an explicitly 0-initialised ControlValue.\n>>\n>> Default construct the ControlValue in the ControlInfo default contructor to\n>> explicitly represent uninitialised values by the ControlTypeNone type.\n>>\n>> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n>> ---\n>>   include/libcamera/controls.h | 6 +++---\n>>   1 file changed, 3 insertions(+), 3 deletions(-)\n>>\n>> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n>> index ebc168fc..38d0a3e8 100644\n>> --- a/include/libcamera/controls.h\n>> +++ b/include/libcamera/controls.h\n>> @@ -268,9 +268,9 @@ private:\n>>   class ControlInfo\n>>   {\n>>   public:\n>> -       explicit ControlInfo(const ControlValue &min = 0,\n>> -                            const ControlValue &max = 0,\n>> -                            const ControlValue &def = 0);\n>> +       explicit ControlInfo(const ControlValue &min = {},\n>> +                            const ControlValue &max = {},\n>> +                            const ControlValue &def = {});\n>>          explicit ControlInfo(Span<const ControlValue> values,\n>>                               const ControlValue &def = {});\n>>          explicit ControlInfo(std::set<bool> values, bool def);\n>> --\n>> 2.34.1\n>>","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 5EC25BD16B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 30 Sep 2022 11:14:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9AD84623A3;\n\tFri, 30 Sep 2022 13:14:17 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1A00261F77\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 30 Sep 2022 13:14:16 +0200 (CEST)","from [192.168.1.15] (91-158-154-79.elisa-laajakaista.fi\n\t[91.158.154.79])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7A3B147C;\n\tFri, 30 Sep 2022 13:14:15 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1664536457;\n\tbh=dAgsuQHaBIiZxpznumj+/uKlZ+9ymOri/yU1LRnS1X0=;\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:Cc:\n\tFrom;\n\tb=mMJdoemeWXtfbmajkBPvul9REp0uCQNSnHB1KessafzR4h4E5PYvkjpBoyjyF0X5W\n\t40I3MtefS5uXt5hE9/AGmY5Zb5rsIr3f3eiDIvTFMcUf6RwKY7nIMpsHqHBSrRYVk6\n\t5xWQbjMzjQAV3tcndW+2NwJp3u685SVY7etmBBjdPjh+ArqJETr4slu8/6TEZNk14W\n\tv2D29Jm9lii5PkhBpylriqR2Zvh0pOAb77LFhCce50w14sf6GysTEGqI68SoI03wYx\n\tm1iUqQEfQ4Vf0o5xeaBS85k4WdJBYQtzlUbAn8Bg3/UFPQT/0oHDBanwo8qmgP9njx\n\tTUgc2QfJrDHBw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1664536455;\n\tbh=dAgsuQHaBIiZxpznumj+/uKlZ+9ymOri/yU1LRnS1X0=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=qzJOZ3WTPS6Tdid37MYs8YPLm2zEfY9rfK6UxVNML1RaA6X2qzOi9hqqfXU8L392T\n\ty8gNToY5ifb8cJWJeuBe3NtXAXx/+59BUNkZ2FGf5yPQVH9WIP0d771lsn/Nvf924x\n\tRXMT1u54+BytEhrCT6Vq1nmQuTa8g+dYvxq8vPHw="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"qzJOZ3WT\"; dkim-atps=neutral","Message-ID":"<ca6c5bce-35c3-13fe-2074-2baaafed3ee6@ideasonboard.com>","Date":"Fri, 30 Sep 2022 14:14:12 +0300","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.11.0","Content-Language":"en-US","To":"David Plowman <david.plowman@raspberrypi.com>,\n\tChristian Rauch <Rauch.Christian@gmx.de>","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>\n\t<CAHW6GYJrT2RFNzvfBGWaEWVgZVr=u60UHC-scrLkTg8W7GSM2A@mail.gmail.com>","In-Reply-To":"<CAHW6GYJrT2RFNzvfBGWaEWVgZVr=u60UHC-scrLkTg8W7GSM2A@mail.gmail.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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":"Tomi Valkeinen via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":25182,"web_url":"https://patchwork.libcamera.org/comment/25182/","msgid":"<166453918102.2677993.11033542996211671623@Monstersaurus>","date":"2022-09-30T11:59:41","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Tomi Valkeinen via libcamera-devel (2022-09-30 12:14:12)\n> Hi,\n> \n> On 30/09/2022 14:01, David Plowman wrote:\n> > Hi Christian\n> > \n> > I have a question about this because it's causing my Python code to\n> > break. Not in any major way, we just need to decide what we want to do\n> > about it.\n> > \n> > The problem is that you can no longer fetch the default value for a\n> > control, it causes a runtime error. The code in question is here:\n> > https://git.linuxtv.org/libcamera.git/tree/src/py/libcamera/py_helpers.cpp#n57\n> > \n> > There are a number of straightforward solutions, such as returning\n> > \"py::none()\", for example. Does that sound like a reasonable thing to\n> > do?\n> \n> Are we supposed to have uninitialized values? In that case py::none \n> sounds fine. Or is it a bug if a control has an uninitialized default? \n> Then throwing an exception, as we do now, sounds fine.\n\nYes, I think the impact was we essentially introduced the abiltiy to\n'not' specify a default value. There are controls, where it simply\ndoesn't make sense to have a default.\n\nSo I think returning py::none might be the most correct thing to do ?\n\n--\nKieran\n\n\n> \n>   Tomi\n> \n> \n> > Thanks!\n> > David\n> > \n> > On Tue, 30 Aug 2022 at 21:21, Christian Rauch via libcamera-devel\n> > <libcamera-devel@lists.libcamera.org> wrote:\n> >>\n> >> The default ControlInfo constructor allows to partially initialised the\n> >> min/max/def values. Uninitialised values are assigned to 0 by default. This\n> >> implicit initialisation makes it impossible to distinguish between and\n> >> uninitialised and an explicitly 0-initialised ControlValue.\n> >>\n> >> Default construct the ControlValue in the ControlInfo default contructor to\n> >> explicitly represent uninitialised values by the ControlTypeNone type.\n> >>\n> >> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n> >> ---\n> >>   include/libcamera/controls.h | 6 +++---\n> >>   1 file changed, 3 insertions(+), 3 deletions(-)\n> >>\n> >> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n> >> index ebc168fc..38d0a3e8 100644\n> >> --- a/include/libcamera/controls.h\n> >> +++ b/include/libcamera/controls.h\n> >> @@ -268,9 +268,9 @@ private:\n> >>   class ControlInfo\n> >>   {\n> >>   public:\n> >> -       explicit ControlInfo(const ControlValue &min = 0,\n> >> -                            const ControlValue &max = 0,\n> >> -                            const ControlValue &def = 0);\n> >> +       explicit ControlInfo(const ControlValue &min = {},\n> >> +                            const ControlValue &max = {},\n> >> +                            const ControlValue &def = {});\n> >>          explicit ControlInfo(Span<const ControlValue> values,\n> >>                               const ControlValue &def = {});\n> >>          explicit ControlInfo(std::set<bool> values, bool def);\n> >> --\n> >> 2.34.1\n> >>\n>","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 74785C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 30 Sep 2022 11:59:46 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B8F82623A6;\n\tFri, 30 Sep 2022 13:59:45 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DA73361F77\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 30 Sep 2022 13:59:43 +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 4C84147C;\n\tFri, 30 Sep 2022 13:59:43 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1664539185;\n\tbh=fOEau1WmfL/o9b2ZUMwWF9wWti2CPh2fz4D2DwbV9FU=;\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:Cc:\n\tFrom;\n\tb=pPkP3iiBANg0432F3lt4OVO3uqEG6bC8p5ZUXXZhuiGFR2bk5stBmAfLi92Vrk2EB\n\tLZWzCcyCBjI6HMLhJPWSqLAXyC2rUdhzSyN3T43Qra8RkJ4CUi9t2IdxlDZ85MjOZ6\n\t4WrbnejYjT7zSdqW9HfSO53XXw31TUkh8U3LgLEN8mMsfUjH2BRMWlslZSkZsBdsS4\n\t+VefyofItouo/LrMGcBVTSl+5btR15xGygwybOit14x/Pid0JaHesxNvy8KEebEnkQ\n\tApMzjbJu0m/s9gcl446qZsTiL/mfzo0GJwIhYdl0i0hxqptqJTjmLeVSG/Zvz8ZQzM\n\tqd/r3D358x9Ow==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1664539183;\n\tbh=fOEau1WmfL/o9b2ZUMwWF9wWti2CPh2fz4D2DwbV9FU=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=tFDLJWDJwt4TmENgkIHEec7IYOjnePy+jM3vetv+qbye2Ji9SVFwWZCjGUFmkDwTX\n\tIGsVYAAPDXwffJ608ZDBtv4hHteUBzS/Bw3ii/dS2/Egu/50smldL2LvBBlCEKGQr9\n\tN+ou0wcB5KUyoB03V1yA0PL0UkbmYM4bUq9wYGeM="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"tFDLJWDJ\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<ca6c5bce-35c3-13fe-2074-2baaafed3ee6@ideasonboard.com>","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>\n\t<CAHW6GYJrT2RFNzvfBGWaEWVgZVr=u60UHC-scrLkTg8W7GSM2A@mail.gmail.com>\n\t<ca6c5bce-35c3-13fe-2074-2baaafed3ee6@ideasonboard.com>","To":"Christian Rauch <Rauch.Christian@gmx.de>,\n\tDavid Plowman <david.plowman@raspberrypi.com>,\n\tTomi Valkeinen <tomi.valkeinen@ideasonboard.com>,\n\tTomi Valkeinen via libcamera-devel <libcamera-devel@lists.libcamera.org>","Date":"Fri, 30 Sep 2022 12:59:41 +0100","Message-ID":"<166453918102.2677993.11033542996211671623@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":25183,"web_url":"https://patchwork.libcamera.org/comment/25183/","msgid":"<CAHW6GYJec+oxj9FUVa7D-KC7nORi=yryXnue1sJ0Cp-Ob4ukKQ@mail.gmail.com>","date":"2022-09-30T12:04:27","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"On Fri, 30 Sept 2022 at 12:59, Kieran Bingham\n<kieran.bingham@ideasonboard.com> wrote:\n>\n> Quoting Tomi Valkeinen via libcamera-devel (2022-09-30 12:14:12)\n> > Hi,\n> >\n> > On 30/09/2022 14:01, David Plowman wrote:\n> > > Hi Christian\n> > >\n> > > I have a question about this because it's causing my Python code to\n> > > break. Not in any major way, we just need to decide what we want to do\n> > > about it.\n> > >\n> > > The problem is that you can no longer fetch the default value for a\n> > > control, it causes a runtime error. The code in question is here:\n> > > https://git.linuxtv.org/libcamera.git/tree/src/py/libcamera/py_helpers.cpp#n57\n> > >\n> > > There are a number of straightforward solutions, such as returning\n> > > \"py::none()\", for example. Does that sound like a reasonable thing to\n> > > do?\n> >\n> > Are we supposed to have uninitialized values? In that case py::none\n> > sounds fine. Or is it a bug if a control has an uninitialized default?\n> > Then throwing an exception, as we do now, sounds fine.\n>\n> Yes, I think the impact was we essentially introduced the abiltiy to\n> 'not' specify a default value. There are controls, where it simply\n> doesn't make sense to have a default.\n>\n> So I think returning py::none might be the most correct thing to do ?\n\nWorks for me. Patch incoming...\n\nThanks!\nDavid\n\n>\n> --\n> Kieran\n>\n>\n> >\n> >   Tomi\n> >\n> >\n> > > Thanks!\n> > > David\n> > >\n> > > On Tue, 30 Aug 2022 at 21:21, Christian Rauch via libcamera-devel\n> > > <libcamera-devel@lists.libcamera.org> wrote:\n> > >>\n> > >> The default ControlInfo constructor allows to partially initialised the\n> > >> min/max/def values. Uninitialised values are assigned to 0 by default. This\n> > >> implicit initialisation makes it impossible to distinguish between and\n> > >> uninitialised and an explicitly 0-initialised ControlValue.\n> > >>\n> > >> Default construct the ControlValue in the ControlInfo default contructor to\n> > >> explicitly represent uninitialised values by the ControlTypeNone type.\n> > >>\n> > >> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n> > >> ---\n> > >>   include/libcamera/controls.h | 6 +++---\n> > >>   1 file changed, 3 insertions(+), 3 deletions(-)\n> > >>\n> > >> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n> > >> index ebc168fc..38d0a3e8 100644\n> > >> --- a/include/libcamera/controls.h\n> > >> +++ b/include/libcamera/controls.h\n> > >> @@ -268,9 +268,9 @@ private:\n> > >>   class ControlInfo\n> > >>   {\n> > >>   public:\n> > >> -       explicit ControlInfo(const ControlValue &min = 0,\n> > >> -                            const ControlValue &max = 0,\n> > >> -                            const ControlValue &def = 0);\n> > >> +       explicit ControlInfo(const ControlValue &min = {},\n> > >> +                            const ControlValue &max = {},\n> > >> +                            const ControlValue &def = {});\n> > >>          explicit ControlInfo(Span<const ControlValue> values,\n> > >>                               const ControlValue &def = {});\n> > >>          explicit ControlInfo(std::set<bool> values, bool def);\n> > >> --\n> > >> 2.34.1\n> > >>\n> >","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 CEE6DBD16B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 30 Sep 2022 12:04:42 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 19A21623A7;\n\tFri, 30 Sep 2022 14:04:42 +0200 (CEST)","from mail-pg1-x530.google.com (mail-pg1-x530.google.com\n\t[IPv6:2607:f8b0:4864:20::530])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EC3DE61F77\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 30 Sep 2022 14:04:39 +0200 (CEST)","by mail-pg1-x530.google.com with SMTP id f193so4032545pgc.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 30 Sep 2022 05:04:39 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1664539482;\n\tbh=ZRnPTMist7ibonf+UnMKSlrXl24netHvxiCowJCosxk=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=K7mrAqa1pu6HR+Rcug0p7XC5D953utDzAJFP3v1Ug/F5tj4vNqpSh7sBoe/IROCsK\n\tzUOvvn/mnSRkhCnMTgAJEPToMRwpJ3mu1X7dMYno4dDRxnjJhmLR3sbnU13ZQzmfMg\n\ty/RWHnvltV/tT2H1JjQrFqabOV/cv+aNloYxB88MqrTvZoW3fr5dK6g7hvKqzNYZ2g\n\tJ7q5ajNKhpsB60dU0CRXotmoov7k66rOrv4I5ZL1uqRa/oBy9fmsEiDNQ3LS7hiSH6\n\tl6IPOKapfc2483C8O7Via5yBd3yyApbc9BvHsihnpCjbdHZW59BO3NdHFQEGjAI8ZA\n\tB1T0iuggpJX8A==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date;\n\tbh=ioJ/s9hSoyoMRfqB1AjwE1GwLPHJUWIMRFHKHQy8S2g=;\n\tb=ROLNxcOZW5cUUDSWiTyQDtd/0E3aEnyeqTROcJKxqNEg1W/6xLjYszq0qvn7qeTeA3\n\tmpXXQHVT5KPxyV+elOD/DY0Ue/+Gb3Rn5zwX0+ENn5a2yrKxahkYhV//51YAI0fHHn5I\n\tQmHaBAiBhVffQ+4VTOIBJFlDU0zt/YZSCvbopIWLfJ76eZcNc4if1oNAxAvJEjW2WQe+\n\tUCwNjMMe+uNnJj6bBihYlJyyM9DXEeUiI4Oq/eiKHB0rw6jAfCmcW1EERURAhTdrdSyw\n\tRBCRDLoDIiuuJfdz8fTEPvEOLb5D9kOF+6KWdOQeqQwa40MQ5ucbxN0XXPP6yPzVcZj6\n\tdM3g=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"ROLNxcOZ\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date;\n\tbh=ioJ/s9hSoyoMRfqB1AjwE1GwLPHJUWIMRFHKHQy8S2g=;\n\tb=Y3w3l+0XwsN/AplAoW8394fn6uVzOu1UI3SaRqCdUOAud8s0EaA5FcoOzzLG2mQfZP\n\trd5nUwYLiI8glp8kTEKsVZIZ6ejNUHcx2FF5HSsYNXqiR4xIohyFFZAuPCes6pBx63gW\n\tDQXJG1fQoNJQmsb4EhQR+egUww0FqGt9D4iJ8IPxchg9XsoNACTnG0/w1HEomwIZkiDy\n\tV+RlpqDnbAmcB1EKPPkwyRqTBR2ybvu4cUnCElN2GP2RXG9lQKPL44FbSvHsdiNv1Rby\n\tUgxUxeyNhE3z7f6PJq2dyN818UqbFPt4hSxopPiN1BJFISI/QG1K9SB5Z4TjJyvjU2wO\n\tlZoQ==","X-Gm-Message-State":"ACrzQf2N1sBmHvFf8EA0MA+KATWiEMZ3r43qOrXcgglwxUvAPItla8yy\n\tDcKKA68Tshgk/UwdlFb+4+RlqB3LoR+crXLYtFkDgg==","X-Google-Smtp-Source":"AMsMyM7I5/5dXJsalHC9L8tj3SsVezvqA33KIijX+1NxxSgVtTTMw5ciJKdpnXGkHlL4Yb1x+pr1PLpUzPtvUNX0whA=","X-Received":"by 2002:a05:6a00:1d9b:b0:541:1894:d5db with SMTP id\n\tz27-20020a056a001d9b00b005411894d5dbmr8650033pfw.78.1664539478360;\n\tFri, 30 Sep 2022 05:04:38 -0700 (PDT)","MIME-Version":"1.0","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>\n\t<CAHW6GYJrT2RFNzvfBGWaEWVgZVr=u60UHC-scrLkTg8W7GSM2A@mail.gmail.com>\n\t<ca6c5bce-35c3-13fe-2074-2baaafed3ee6@ideasonboard.com>\n\t<166453918102.2677993.11033542996211671623@Monstersaurus>","In-Reply-To":"<166453918102.2677993.11033542996211671623@Monstersaurus>","Date":"Fri, 30 Sep 2022 13:04:27 +0100","Message-ID":"<CAHW6GYJec+oxj9FUVa7D-KC7nORi=yryXnue1sJ0Cp-Ob4ukKQ@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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":"David Plowman via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"David Plowman <david.plowman@raspberrypi.com>","Cc":"Tomi Valkeinen via libcamera-devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":25278,"web_url":"https://patchwork.libcamera.org/comment/25278/","msgid":"<YzyObo51t4fsZLz6@pendragon.ideasonboard.com>","date":"2022-10-04T19:50:06","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\n(CC'ing Hans Verkuil, in case he would happen to know of someone\ninterested in working on the vimc driver)\n\nOn Tue, Sep 27, 2022 at 01:03:32PM +0100, Kieran Bingham via libcamera-devel wrote:\n> Quoting Christian Rauch via libcamera-devel (2022-09-04 17:10:08)\n> > Am 31.08.22 um 23:07 schrieb Kieran Bingham:\n> > > Quoting Christian Rauch via libcamera-devel (2022-08-31 21:45:31)\n> > >> Hi Kieran,\n> > >>\n> > >> This test (and others) are skipped with \"exit status 77\". When I try to\n> > >> run \"test/serialization/ipa_data_serializer_test\" manually, it fails\n> > >> with \"Can not find 'platform/vimc.0 Sensor B' camera\". This seems to be\n> > >> a virtual device. Is it somewhere documented how this is created? Could\n> > >> this be created automatically for convenience?\n> > >\n> > > To load the modules for testing:\n> > >\n> > > sudo modprobe vimc\n> > > sudo modprobe vim2m\n> > > sudo modrpobe vivid\n> > >\n> > > We should really find somewhere suitable to document that.\n> > \n> > I managed to create that virtual device. This only exposes BGR888 and\n> > RGB888 formats. Is it possible to simulate other formats, such as YUYV\n> > or NV21?\n> \n> Not with VIMC. I'd like to see more formats supported by VIMC - but that\n> requires kernel work.\n\nI second that, it would be *really* useful.\n\n> However, another option is the Vivid pipeline handler. This is a\n> pipeline handler for the vivid kernel test device. We keep this 'out of\n> tree' from libcamera, because it's not supposed to be a supported\n> device.\n> \n> It is however really useful because the vivid device can generate all,\n> if not certainly most of the formats supported by V4L2.\n> \n> To use it, merge the vivid pipeline handler into libcamera from:\n> \n>   https://git.libcamera.org/libcamera/vivid.git/log/\n> \n> This will then provide you with a new 'vivid' camera which can generate\n> many more formats.\n> \n> It's constantly rebased with my local build scripts to maintain it on\n> top of tree, and also serves as some 'patch' documentation as to how to\n> add and introduce a new pipeline handler.\n> \n> > >> Am 31.08.22 um 13:51 schrieb Kieran Bingham:\n> > >>> Quoting Christian Rauch via libcamera-devel (2022-08-30 21:21:23)\n> > >>>> The default ControlInfo constructor allows to partially initialised the\n> > >>>> min/max/def values. Uninitialised values are assigned to 0 by default. This\n> > >>>> implicit initialisation makes it impossible to distinguish between and\n> > >>>> uninitialised and an explicitly 0-initialised ControlValue.\n> > >>>>\n> > >>>> Default construct the ControlValue in the ControlInfo default contructor to\n> > >>>> explicitly represent uninitialised values by the ControlTypeNone type.\n> > >>>\n> > >>> This sounds ... a lot better !\n> > >>>\n> > >>> Testing with this series applied (including the patch 2/2, which should\n> > >>> probably be squashed to one patch to maintain bisection) has the\n> > >>> following failures for me:\n> > >>>\n> > >>> 27/70 libcamera:serialization / ipa_data_serializer_test                 FAIL            0.02s   (exit status 255 or signal 127 SIGinvalid)\n> > >>>>>> MALLOC_PERTURB_=174 /home/kbingham/iob/libcamera/libcamera/build/gcc/test/serialization/ipa_data_serializer_test\n> > >>> ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――\n> > >>> stderr:\n> > >>> [148:04:16.561414604] [830675]  INFO IPAManager ipa_manager.cpp:141 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/libcamera/build/gcc/src/ipa' to the IPA search path\n> > >>> [148:04:16.562718193] [830675]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3856-6478a395\n> > >>> [148:04:16.567590564] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:174 No static properties available for 'Sensor B'\n> > >>> [148:04:16.567599841] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:176 Please consider updating the camera sensor properties database\n> > >>> [148:04:16.567605382] [830679]  WARN CameraSensor camera_sensor.cpp:411 'Sensor B': Failed to retrieve the camera location\n> > >>> [148:04:16.568583439] [830679]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/libcamera/src/ipa/vimc/data'\n> > >>> [148:04:16.569025699] [830675] ERROR Serializer control_serializer.cpp:509 Bad data, entry offset mismatch (entry 1)\n> > >>> lhs:\n> > >>> - 1: [false..true]\n> > >>> - 7: [0..999999]\n> > >>> - 8: [1.000000..32.000000]\n> > >>> - 9: [-1.000000..1.000000]\n> > >>> - 15: [0.000000..32.000000]\n> > >>> rhs:\n> > >>> Deserialized std::vector<libcamera::ControlInfoMap> doesn't match original\n> > >>>\n> > >>> So I think we have to identify what impact this has on control\n> > >>> serialisation. I expect we haven't tried to serialize ControlTypeNone\n> > >>> before.\n> > >>>\n> > >>> But I think this is a good path to take currently.\n> > >>>\n> > >>>> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n> > >>>> ---\n> > >>>>  include/libcamera/controls.h | 6 +++---\n> > >>>>  1 file changed, 3 insertions(+), 3 deletions(-)\n> > >>>>\n> > >>>> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n> > >>>> index ebc168fc..38d0a3e8 100644\n> > >>>> --- a/include/libcamera/controls.h\n> > >>>> +++ b/include/libcamera/controls.h\n> > >>>> @@ -268,9 +268,9 @@ private:\n> > >>>>  class ControlInfo\n> > >>>>  {\n> > >>>>  public:\n> > >>>> -       explicit ControlInfo(const ControlValue &min = 0,\n> > >>>> -                            const ControlValue &max = 0,\n> > >>>> -                            const ControlValue &def = 0);\n> > >>>> +       explicit ControlInfo(const ControlValue &min = {},\n> > >>>> +                            const ControlValue &max = {},\n> > >>>> +                            const ControlValue &def = {});\n> > >>>>         explicit ControlInfo(Span<const ControlValue> values,\n> > >>>>                              const ControlValue &def = {});\n> > >>>>         explicit ControlInfo(std::set<bool> values, bool def);","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 DD667C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  4 Oct 2022 19:50:12 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3B67B60ABB;\n\tTue,  4 Oct 2022 21:50:12 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1C25D601C7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  4 Oct 2022 21:50:10 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 4F6672D9;\n\tTue,  4 Oct 2022 21:50:09 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1664913012;\n\tbh=SnXW9tE8Tqqub+IFJMTt9HwbFK92zhBrjbTUfrQU12M=;\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:Cc:\n\tFrom;\n\tb=w1/MeoYWGBmKZNxkrB+ODqOHxRnZoBigPunyXR5ZuosDQX/jEsdlKvG+apKU7LJFf\n\tZZDQZe2syBliqBrL99WigcsAuXem+6jTvOckIZrHvdh1+qZzitA3aAX6fJEK9REMz4\n\tJlY5BZPz+WOY328cGV5l6ywjN1m1OPgcr4j6oyf/IpqNQsw5rIvsKC0boK+vR2CLQE\n\t/+F2MLBuz9C89m2o47TnTioSwgAJZQT/8ILe1MQLX8z5ssFpdkSNUdizDXXZvC0+4i\n\t5qSpWuXNz7tnY0hDAtaZMd32Yaw4N+gYRcc1+BX+bfyZ5Pf0v6/oxqA774zCXLi6vX\n\ttnW7+FrDOVB+Q==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1664913009;\n\tbh=SnXW9tE8Tqqub+IFJMTt9HwbFK92zhBrjbTUfrQU12M=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=HuiKt2F3N0yrypLm77AB1vlY55Cz6Xf3uO9tatlrEbYv5DOXcggvFKWNsQT+k8I5p\n\tnz+rue/uAe2UwByQF/525KXiC7OgoXfHwcYh3b7/0WJjiHZ3nnDVSi/uxqb9Viqvf3\n\ty3JiT9WC0CV4afI/DuCw78tUu2S18yRYwH+j4mFM="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"HuiKt2F3\"; dkim-atps=neutral","Date":"Tue, 4 Oct 2022 22:50:06 +0300","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<YzyObo51t4fsZLz6@pendragon.ideasonboard.com>","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>\n\t<166194670894.15972.13151184407715478564@Monstersaurus>\n\t<b01cc1c0-8cb3-49c1-7c04-01c8778b4e4b@gmx.de>\n\t<166198002807.1138516.11933891331899071444@Monstersaurus>\n\t<b71691c1-4589-9d58-e759-244ab6df9d90@gmx.de>\n\t<166428021235.2677993.12649936014747591148@Monstersaurus>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<166428021235.2677993.12649936014747591148@Monstersaurus>","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"Hans Verkuil <hverkuil-cisco@xs4all.nl>,\n\tlibcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":25357,"web_url":"https://patchwork.libcamera.org/comment/25357/","msgid":"<f32fd2b1-4ad6-5da2-72f9-75744011b221@gmx.de>","date":"2022-10-08T12:08:27","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"content":"Hi Kieran,\n\nAm 27.09.22 um 14:03 schrieb Kieran Bingham:\n> Hi Christian,\n>\n> Sorry - I missed this mail before.\n>\n> Quoting Christian Rauch via libcamera-devel (2022-09-04 17:10:08)\n>> Hi Kieran,\n>>\n>> Am 31.08.22 um 23:07 schrieb Kieran Bingham:\n>>> Quoting Christian Rauch via libcamera-devel (2022-08-31 21:45:31)\n>>>> Hi Kieran,\n>>>>\n>>>> This test (and others) are skipped with \"exit status 77\". When I try to\n>>>> run \"test/serialization/ipa_data_serializer_test\" manually, it fails\n>>>> with \"Can not find 'platform/vimc.0 Sensor B' camera\". This seems to be\n>>>> a virtual device. Is it somewhere documented how this is created? Could\n>>>> this be created automatically for convenience?\n>>>\n>>> To load the modules for testing:\n>>>\n>>> sudo modprobe vimc\n>>> sudo modprobe vim2m\n>>> sudo modrpobe vivid\n>>>\n>>> We should really find somewhere suitable to document that.\n>>\n>> I managed to create that virtual device. This only exposes BGR888 and\n>> RGB888 formats. Is it possible to simulate other formats, such as YUYV\n>> or NV21?\n>\n> Not with VIMC. I'd like to see more formats supported by VIMC - but that\n> requires kernel work.\n>\n> However, another option is the Vivid pipeline handler. This is a\n> pipeline handler for the vivid kernel test device. We keep this 'out of\n> tree' from libcamera, because it's not supposed to be a supported\n> device.\n>\n> It is however really useful because the vivid device can generate all,\n> if not certainly most of the formats supported by V4L2.\n>\n> To use it, merge the vivid pipeline handler into libcamera from:\n>\n>    https://git.libcamera.org/libcamera/vivid.git/log/\n>\n> This will then provide you with a new 'vivid' camera which can generate\n> many more formats.\n\nI am probably doing something wrong. I checked out the 'vivid' branch\nand just compiled with the default settings. I see that 'vivid' was\nadded to the 'pipelines' choices, but I don't see a new camera in 'cam'\nor 'qcam'. Is there more documentation on how to use this?\n\n>\n> It's constantly rebased with my local build scripts to maintain it on\n> top of tree, and also serves as some 'patch' documentation as to how to\n> add and introduce a new pipeline handler.\n>\n> --\n> Kieran\n>\n>\n>>\n>>> --\n>>> Kieran\n>>>\n>>>\n>>>>\n>>>> Best,\n>>>> Christian\n>>>>\n>>>>\n>>>> Am 31.08.22 um 13:51 schrieb Kieran Bingham:\n>>>>> Quoting Christian Rauch via libcamera-devel (2022-08-30 21:21:23)\n>>>>>> The default ControlInfo constructor allows to partially initialised the\n>>>>>> min/max/def values. Uninitialised values are assigned to 0 by default. This\n>>>>>> implicit initialisation makes it impossible to distinguish between and\n>>>>>> uninitialised and an explicitly 0-initialised ControlValue.\n>>>>>>\n>>>>>> Default construct the ControlValue in the ControlInfo default contructor to\n>>>>>> explicitly represent uninitialised values by the ControlTypeNone type.\n>>>>>\n>>>>> This sounds ... a lot better !\n>>>>>\n>>>>> Testing with this series applied (including the patch 2/2, which should\n>>>>> probably be squashed to one patch to maintain bisection) has the\n>>>>> following failures for me:\n>>>>>\n>>>>> 27/70 libcamera:serialization / ipa_data_serializer_test                 FAIL            0.02s   (exit status 255 or signal 127 SIGinvalid)\n>>>>>>>> MALLOC_PERTURB_=174 /home/kbingham/iob/libcamera/libcamera/build/gcc/test/serialization/ipa_data_serializer_test\n>>>>> ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――\n>>>>> stderr:\n>>>>> [148:04:16.561414604] [830675]  INFO IPAManager ipa_manager.cpp:141 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/libcamera/build/gcc/src/ipa' to the IPA search path\n>>>>> [148:04:16.562718193] [830675]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3856-6478a395\n>>>>> [148:04:16.567590564] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:174 No static properties available for 'Sensor B'\n>>>>> [148:04:16.567599841] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:176 Please consider updating the camera sensor properties database\n>>>>> [148:04:16.567605382] [830679]  WARN CameraSensor camera_sensor.cpp:411 'Sensor B': Failed to retrieve the camera location\n>>>>> [148:04:16.568583439] [830679]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/libcamera/src/ipa/vimc/data'\n>>>>> [148:04:16.569025699] [830675] ERROR Serializer control_serializer.cpp:509 Bad data, entry offset mismatch (entry 1)\n>>>>> lhs:\n>>>>> - 1: [false..true]\n>>>>> - 7: [0..999999]\n>>>>> - 8: [1.000000..32.000000]\n>>>>> - 9: [-1.000000..1.000000]\n>>>>> - 15: [0.000000..32.000000]\n>>>>> rhs:\n>>>>> Deserialized std::vector<libcamera::ControlInfoMap> doesn't match original\n>>>>>\n>>>>> So I think we have to identify what impact this has on control\n>>>>> serialisation. I expect we haven't tried to serialize ControlTypeNone\n>>>>> before.\n>>>>>\n>>>>> But I think this is a good path to take currently.\n>>>>>\n>>>>> --\n>>>>> Kieran\n>>>>>\n>>>>>\n>>>>>>\n>>>>>> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n>>>>>> ---\n>>>>>>   include/libcamera/controls.h | 6 +++---\n>>>>>>   1 file changed, 3 insertions(+), 3 deletions(-)\n>>>>>>\n>>>>>> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n>>>>>> index ebc168fc..38d0a3e8 100644\n>>>>>> --- a/include/libcamera/controls.h\n>>>>>> +++ b/include/libcamera/controls.h\n>>>>>> @@ -268,9 +268,9 @@ private:\n>>>>>>   class ControlInfo\n>>>>>>   {\n>>>>>>   public:\n>>>>>> -       explicit ControlInfo(const ControlValue &min = 0,\n>>>>>> -                            const ControlValue &max = 0,\n>>>>>> -                            const ControlValue &def = 0);\n>>>>>> +       explicit ControlInfo(const ControlValue &min = {},\n>>>>>> +                            const ControlValue &max = {},\n>>>>>> +                            const ControlValue &def = {});\n>>>>>>          explicit ControlInfo(Span<const ControlValue> values,\n>>>>>>                               const ControlValue &def = {});\n>>>>>>          explicit ControlInfo(std::set<bool> values, bool def);\n>>>>>> --\n>>>>>> 2.34.1\n>>>>>>","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 D1906C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat,  8 Oct 2022 12:08:30 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4226762D49;\n\tSat,  8 Oct 2022 14:08:30 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.15.19])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 94C2E60A83\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat,  8 Oct 2022 14:08:28 +0200 (CEST)","from [192.168.0.158] ([88.152.184.103]) by mail.gmx.net (mrgmx005\n\t[212.227.17.190]) with ESMTPSA (Nemesis) id\n\t1McpNo-1pH1g11Bgo-00ZxUp for\n\t<libcamera-devel@lists.libcamera.org>; Sat, 08 Oct 2022 14:08:27 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1665230910;\n\tbh=Q3zec+s0SwzdCwNJ1hMahOhC0qyEHeIXdhFJW5m4eqs=;\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=JDjRtmC2AR3IQ9PLSPPhPHM4eUqJ1FFP+jmfGhQUUCwDmqXfnCrDl0JxFSMsEDLZ9\n\tKF2JBmAL1mXnuB+f7hdIorWgBAOb6nS+Ku0tQozPGuOmSUwIFrRScCBC8ySHCe/9TY\n\tIjYmu2Vf5MJHDp8sxo+Qzp5pAETR5lXfRxPp8NsvMKBY5HJBZvHgvoRZfj4lHL6bx5\n\tiuJb0bPrJaoOeoclIkopBDw4+jMLw33lJ9BjMq7WDQuqRhn8UlyQXlLg1szhwkbZJs\n\tWQc0tWeP+Z19QezTEpnnYc/BJ3bDV0ryhzk3AS6vn18VjnBWQILT5EIJcpBmfzgA8t\n\tWDh1AuQxEv9OQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1665230907;\n\tbh=Q3zec+s0SwzdCwNJ1hMahOhC0qyEHeIXdhFJW5m4eqs=;\n\th=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To;\n\tb=QbXr7JJ61eTUr8K8kAc/3PSBEnMinBhosq714Lfuhn+0pf1pH85Z9FlE7177Wn7lK\n\t6HeXTui4/+Z3TNUi53DgEB4vT9nxqyIyBat3xM9ZCFOhEJJaSvousIxr54B0orTDHd\n\t4UvCB6fMZKPQ9GBhama7mDcezbKOT1yrJTuCsD90="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"QbXr7JJ6\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","Message-ID":"<f32fd2b1-4ad6-5da2-72f9-75744011b221@gmx.de>","Date":"Sat, 8 Oct 2022 14:08:27 +0200","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101\n\tThunderbird/102.2.2","To":"libcamera-devel@lists.libcamera.org","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>\n\t<166194670894.15972.13151184407715478564@Monstersaurus>\n\t<b01cc1c0-8cb3-49c1-7c04-01c8778b4e4b@gmx.de>\n\t<166198002807.1138516.11933891331899071444@Monstersaurus>\n\t<b71691c1-4589-9d58-e759-244ab6df9d90@gmx.de>\n\t<166428021235.2677993.12649936014747591148@Monstersaurus>","Content-Language":"en-GB","In-Reply-To":"<166428021235.2677993.12649936014747591148@Monstersaurus>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:RUKuyrsQ+GKdxS+4zBahVT8NLMyiQuNn46t9APQOKBcYTJYHzS0\n\tkdaxm9UdMwGACIFdBc+NSBlNU2GoT9z0QkDBPjObUz8nQjojWAZ9JV3mvwmB5TZV1cy1F3S\n\tDrBqnoZX3+OyC2nzkmjwfY/JPph72DQ5ItIkt1DeIHe4gCdMEFvxJUcie14bIjf17A2Zs8V\n\tMcMrfR2U/xcj44G5kpktw==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:8h8lGp8N7sA=:roz3Xu3sXdFxASePF6eZgA\n\tc1mzsN2ZM89ezOtk0LVJJCidadMyTOIVCGEI3okKhjAtXgeW6411npTN8bop347Yxr18ItLbD\n\t9uRMLJrg6NYPMaCDFo/IqGXxCDk82BRAuUSb9Nut380c/9GNVRxcVXavOCywzU2fQ3jDd/2w+\n\tkKeJhT7pKbSqDeBDVp8SkNTnuLe7MPvbSNVrc8pQqXdwJBGUtB+IcVmrO4vYArPkvDewZtuXl\n\tVcBiMrzv+0JjLmNBPBtG8ABwgEXpLgKgcgNAVgcDSKfEQqUps/tVJin5bmpO6A1vW9MO57gg4\n\tQs/FITchV94ezEeaQnEk25pHEVDlI4gSTLHwjf1K6NbeaY4srDzsmCKCnF2a8skYscEI/hPFL\n\tX0a/goYiGgE6VBNLNNdWUprnoTsiBmmSO9hMKCqLGJWVPKxiNv1+EQ/+rOmLm4CFZRx+w+yqE\n\taIBrS14/t0Wx/7cjHCuCasjW/jUU2TQqYffhO4vl5nLyvrkSh6IcP60NAI7pvRQkJzfJ0TWEd\n\tvozQ0GH6mUM19zGZe5ERt4TAHoBBWiIK6Rda5LFuIYdapMwoucFjnJam1t6OJBa65d0VJqvDZ\n\ti8n+YwXUWe6h+Ufiwe3m+W7tah7hlpSpS2kkeQNK/hD4AqyN1U8GAR7NH/Hmbnfrxs82LlPB4\n\tQ5YOGU8bXBz2RExffO3dYJBfOzdAxygK7ss12RcCwvfNXTMNFtU/TO2M62mUuxh89b7g43gkv\n\tA7rsM9DM7rq2hV/2lJRyUFvgiZNzSZiz8PpsTqku2LHQk5LaAlBLSmaeWoumZ2eIlCdwQVycE\n\t2y52fhnKq3vh89pkVWqZhx0NIVfwcQhUE31TSy7+7OaaY3DguF/hph3Yggm2QmLeV0LKnVw5V\n\tPA7ydeB8B+YSUP/MBLczalC3HsMNjllpRnX2zqzbi63AGtjVQqj81C3pc0b1bu7IG1TnGzOzw\n\tpQc0Hv4i3E64YcG07mYdsZ+jZsju72ReG6UGy1QXWs9dwokGr1ooJjKFSjfpy1tASlLZke9Yi\n\t8gEY66F4Rq/0exMCOYixdkHSQxpMdQIt6zAOJkU1H97UxjMQHBltJCk1RCVdzS4k6N+qGSmP2\n\t9pkAQzkVi9dZvQm6M/iKjXZibE2uTIu7xsxSnfl4rvkUgRmsRpxMCiCkek2nxYMeT5EejbYol\n\tpSlrb5jI5bvccH7UhSABmffEihVOq8Xy7UAVkEj1/BUsYhLsUsnedbCDLDi/RZbkGkGGCuLzM\n\tz5sPrgCzjhfIXpZiphUFbAW1BuSvOW3uV6vju+bwONeHI6ECDgdSCj4tXzVWxUONCKMMnnd1F\n\thPAR/ugpiElb/jarAYGLWWrjFd97ci9VU6XPqn3Opy47OXH1np2hP+iQJkgSKupoJI7Z2pvd9\n\t1o5JO26lmEQAkGIpqvAhaayQ5N1I/G+KCg2voiV3EYujUM4dQMdeT+EMt8w28iFGQOKQ6xDOH\n\tPFn//IWA8aPthZ30KWpAZ/hvh4VkfGJ+eVQ6r2BjBBQStUDuMm1CGZIlRFUA7mSDRmnQZ2bLp\n\tM3PXZct5IOAEphQlaQmon2rlXlkicmcW3jpWWq4O0VqcH","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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":25359,"web_url":"https://patchwork.libcamera.org/comment/25359/","msgid":"<Y0F8Rwp4UgS8fWFg@pendragon.ideasonboard.com>","date":"2022-10-08T13:33:59","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Christian,\n\nOn Sat, Oct 08, 2022 at 02:08:27PM +0200, Christian Rauch via libcamera-devel wrote:\n> Am 27.09.22 um 14:03 schrieb Kieran Bingham:\n> > Quoting Christian Rauch via libcamera-devel (2022-09-04 17:10:08)\n> >> Am 31.08.22 um 23:07 schrieb Kieran Bingham:\n> >>> Quoting Christian Rauch via libcamera-devel (2022-08-31 21:45:31)\n> >>>> Hi Kieran,\n> >>>>\n> >>>> This test (and others) are skipped with \"exit status 77\". When I try to\n> >>>> run \"test/serialization/ipa_data_serializer_test\" manually, it fails\n> >>>> with \"Can not find 'platform/vimc.0 Sensor B' camera\". This seems to be\n> >>>> a virtual device. Is it somewhere documented how this is created? Could\n> >>>> this be created automatically for convenience?\n> >>>\n> >>> To load the modules for testing:\n> >>>\n> >>> sudo modprobe vimc\n> >>> sudo modprobe vim2m\n> >>> sudo modrpobe vivid\n> >>>\n> >>> We should really find somewhere suitable to document that.\n> >>\n> >> I managed to create that virtual device. This only exposes BGR888 and\n> >> RGB888 formats. Is it possible to simulate other formats, such as YUYV\n> >> or NV21?\n> >\n> > Not with VIMC. I'd like to see more formats supported by VIMC - but that\n> > requires kernel work.\n> >\n> > However, another option is the Vivid pipeline handler. This is a\n> > pipeline handler for the vivid kernel test device. We keep this 'out of\n> > tree' from libcamera, because it's not supposed to be a supported\n> > device.\n> >\n> > It is however really useful because the vivid device can generate all,\n> > if not certainly most of the formats supported by V4L2.\n> >\n> > To use it, merge the vivid pipeline handler into libcamera from:\n> >\n> >    https://git.libcamera.org/libcamera/vivid.git/log/\n> >\n> > This will then provide you with a new 'vivid' camera which can generate\n> > many more formats.\n> \n> I am probably doing something wrong. I checked out the 'vivid' branch\n> and just compiled with the default settings. I see that 'vivid' was\n> added to the 'pipelines' choices, but I don't see a new camera in 'cam'\n> or 'qcam'. Is there more documentation on how to use this?\n\nStupid question, have you loaded the vivid driver (modprobe vivid) ?\n\n> > It's constantly rebased with my local build scripts to maintain it on\n> > top of tree, and also serves as some 'patch' documentation as to how to\n> > add and introduce a new pipeline handler.\n> >\n> >>>> Am 31.08.22 um 13:51 schrieb Kieran Bingham:\n> >>>>> Quoting Christian Rauch via libcamera-devel (2022-08-30 21:21:23)\n> >>>>>> The default ControlInfo constructor allows to partially initialised the\n> >>>>>> min/max/def values. Uninitialised values are assigned to 0 by default. This\n> >>>>>> implicit initialisation makes it impossible to distinguish between and\n> >>>>>> uninitialised and an explicitly 0-initialised ControlValue.\n> >>>>>>\n> >>>>>> Default construct the ControlValue in the ControlInfo default contructor to\n> >>>>>> explicitly represent uninitialised values by the ControlTypeNone type.\n> >>>>>\n> >>>>> This sounds ... a lot better !\n> >>>>>\n> >>>>> Testing with this series applied (including the patch 2/2, which should\n> >>>>> probably be squashed to one patch to maintain bisection) has the\n> >>>>> following failures for me:\n> >>>>>\n> >>>>> 27/70 libcamera:serialization / ipa_data_serializer_test                 FAIL            0.02s   (exit status 255 or signal 127 SIGinvalid)\n> >>>>>>>> MALLOC_PERTURB_=174 /home/kbingham/iob/libcamera/libcamera/build/gcc/test/serialization/ipa_data_serializer_test\n> >>>>> ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――\n> >>>>> stderr:\n> >>>>> [148:04:16.561414604] [830675]  INFO IPAManager ipa_manager.cpp:141 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/libcamera/build/gcc/src/ipa' to the IPA search path\n> >>>>> [148:04:16.562718193] [830675]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3856-6478a395\n> >>>>> [148:04:16.567590564] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:174 No static properties available for 'Sensor B'\n> >>>>> [148:04:16.567599841] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:176 Please consider updating the camera sensor properties database\n> >>>>> [148:04:16.567605382] [830679]  WARN CameraSensor camera_sensor.cpp:411 'Sensor B': Failed to retrieve the camera location\n> >>>>> [148:04:16.568583439] [830679]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/libcamera/src/ipa/vimc/data'\n> >>>>> [148:04:16.569025699] [830675] ERROR Serializer control_serializer.cpp:509 Bad data, entry offset mismatch (entry 1)\n> >>>>> lhs:\n> >>>>> - 1: [false..true]\n> >>>>> - 7: [0..999999]\n> >>>>> - 8: [1.000000..32.000000]\n> >>>>> - 9: [-1.000000..1.000000]\n> >>>>> - 15: [0.000000..32.000000]\n> >>>>> rhs:\n> >>>>> Deserialized std::vector<libcamera::ControlInfoMap> doesn't match original\n> >>>>>\n> >>>>> So I think we have to identify what impact this has on control\n> >>>>> serialisation. I expect we haven't tried to serialize ControlTypeNone\n> >>>>> before.\n> >>>>>\n> >>>>> But I think this is a good path to take currently.\n> >>>>>\n> >>>>> --\n> >>>>> Kieran\n> >>>>>\n> >>>>>\n> >>>>>>\n> >>>>>> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n> >>>>>> ---\n> >>>>>>   include/libcamera/controls.h | 6 +++---\n> >>>>>>   1 file changed, 3 insertions(+), 3 deletions(-)\n> >>>>>>\n> >>>>>> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n> >>>>>> index ebc168fc..38d0a3e8 100644\n> >>>>>> --- a/include/libcamera/controls.h\n> >>>>>> +++ b/include/libcamera/controls.h\n> >>>>>> @@ -268,9 +268,9 @@ private:\n> >>>>>>   class ControlInfo\n> >>>>>>   {\n> >>>>>>   public:\n> >>>>>> -       explicit ControlInfo(const ControlValue &min = 0,\n> >>>>>> -                            const ControlValue &max = 0,\n> >>>>>> -                            const ControlValue &def = 0);\n> >>>>>> +       explicit ControlInfo(const ControlValue &min = {},\n> >>>>>> +                            const ControlValue &max = {},\n> >>>>>> +                            const ControlValue &def = {});\n> >>>>>>          explicit ControlInfo(Span<const ControlValue> values,\n> >>>>>>                               const ControlValue &def = {});\n> >>>>>>          explicit ControlInfo(std::set<bool> values, bool def);","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 264A5C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat,  8 Oct 2022 13:34:07 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6075762D4B;\n\tSat,  8 Oct 2022 15:34:06 +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 B5DEC60A83\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat,  8 Oct 2022 15:34:05 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 171094E6;\n\tSat,  8 Oct 2022 15:34:04 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1665236046;\n\tbh=OGL8++0C+qdXwbrdcBuLnxu1v4/5xvqKkfQP0pxZ2xg=;\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:Cc:\n\tFrom;\n\tb=aleteA9WSCQ8eBmn6MuLPjI0oQsH8dS6vanlfD+wXDzFTbz4DQ65dmg5mmTp/d4Ig\n\t0gQ3yfpRWeK/teZOIF/nspx9EOqBdeEkSZ4cQwvlON4q5InjUFcfV8k+ehxQq6qrDV\n\tgTslSGZuS+75gSpLDPdduHWSwKjOTRlGNDY1+TLEnSJjV2ucGfLb3g9e2X3KRb8r55\n\tK8O+rAotkMN0EGZeuMpIu8WvgfupPSy0oE7VT0UHq9PcpTfODhGQ5kkesLQ2jCqBVC\n\t4cqE3fX8LsMlnRZy0yZ85S0lxBtCDxCoNiMyulEM9AK8NiQjv/A+r8S34n+EmDuaRq\n\taEYL7IO2afOCw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1665236045;\n\tbh=OGL8++0C+qdXwbrdcBuLnxu1v4/5xvqKkfQP0pxZ2xg=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=aSCwoZX79/E+BAlJi5RWpyxrfb1oHejjMbglO7BAP4ZZxO20K1TXIslV5ho9CIy7Q\n\t3o+7yuI8NrQaTu0C1W2lHYyJx2N39N2zEuMqBb5yr8Y+va3g1IjPxxo6BjLhb/dK+X\n\t8P+yS+mV3ixmubzEL+9Tne0mvvcdRYpbVaYEJVrg="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"aSCwoZX7\"; dkim-atps=neutral","Date":"Sat, 8 Oct 2022 16:33:59 +0300","To":"Christian Rauch <Rauch.Christian@gmx.de>","Message-ID":"<Y0F8Rwp4UgS8fWFg@pendragon.ideasonboard.com>","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>\n\t<166194670894.15972.13151184407715478564@Monstersaurus>\n\t<b01cc1c0-8cb3-49c1-7c04-01c8778b4e4b@gmx.de>\n\t<166198002807.1138516.11933891331899071444@Monstersaurus>\n\t<b71691c1-4589-9d58-e759-244ab6df9d90@gmx.de>\n\t<166428021235.2677993.12649936014747591148@Monstersaurus>\n\t<f32fd2b1-4ad6-5da2-72f9-75744011b221@gmx.de>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<f32fd2b1-4ad6-5da2-72f9-75744011b221@gmx.de>","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":25361,"web_url":"https://patchwork.libcamera.org/comment/25361/","msgid":"<8dca8b8d-cdf5-c89e-579e-8a243e7f7de6@gmx.de>","date":"2022-10-09T10:19:14","subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"content":"Hi Laurent,\n\nAm 08.10.22 um 15:33 schrieb Laurent Pinchart:\n> Hi Christian,\n>\n> On Sat, Oct 08, 2022 at 02:08:27PM +0200, Christian Rauch via libcamera-devel wrote:\n>> Am 27.09.22 um 14:03 schrieb Kieran Bingham:\n>>> Quoting Christian Rauch via libcamera-devel (2022-09-04 17:10:08)\n>>>> Am 31.08.22 um 23:07 schrieb Kieran Bingham:\n>>>>> Quoting Christian Rauch via libcamera-devel (2022-08-31 21:45:31)\n>>>>>> Hi Kieran,\n>>>>>>\n>>>>>> This test (and others) are skipped with \"exit status 77\". When I try to\n>>>>>> run \"test/serialization/ipa_data_serializer_test\" manually, it fails\n>>>>>> with \"Can not find 'platform/vimc.0 Sensor B' camera\". This seems to be\n>>>>>> a virtual device. Is it somewhere documented how this is created? Could\n>>>>>> this be created automatically for convenience?\n>>>>>\n>>>>> To load the modules for testing:\n>>>>>\n>>>>> sudo modprobe vimc\n>>>>> sudo modprobe vim2m\n>>>>> sudo modrpobe vivid\n>>>>>\n>>>>> We should really find somewhere suitable to document that.\n>>>>\n>>>> I managed to create that virtual device. This only exposes BGR888 and\n>>>> RGB888 formats. Is it possible to simulate other formats, such as YUYV\n>>>> or NV21?\n>>>\n>>> Not with VIMC. I'd like to see more formats supported by VIMC - but that\n>>> requires kernel work.\n>>>\n>>> However, another option is the Vivid pipeline handler. This is a\n>>> pipeline handler for the vivid kernel test device. We keep this 'out of\n>>> tree' from libcamera, because it's not supposed to be a supported\n>>> device.\n>>>\n>>> It is however really useful because the vivid device can generate all,\n>>> if not certainly most of the formats supported by V4L2.\n>>>\n>>> To use it, merge the vivid pipeline handler into libcamera from:\n>>>\n>>>     https://git.libcamera.org/libcamera/vivid.git/log/\n>>>\n>>> This will then provide you with a new 'vivid' camera which can generate\n>>> many more formats.\n>>\n>> I am probably doing something wrong. I checked out the 'vivid' branch\n>> and just compiled with the default settings. I see that 'vivid' was\n>> added to the 'pipelines' choices, but I don't see a new camera in 'cam'\n>> or 'qcam'. Is there more documentation on how to use this?\n>\n> Stupid question, have you loaded the vivid driver (modprobe vivid) ?\n\nNo :-) I thought this was only required for the 'vimc' tests. It\ncorrectly lists a \"Virtual Video Device\" after loading the kernel\nmodule. I guess a development/debugging documentation would be really\nuseful :-)\n\n>\n>>> It's constantly rebased with my local build scripts to maintain it on\n>>> top of tree, and also serves as some 'patch' documentation as to how to\n>>> add and introduce a new pipeline handler.\n>>>\n>>>>>> Am 31.08.22 um 13:51 schrieb Kieran Bingham:\n>>>>>>> Quoting Christian Rauch via libcamera-devel (2022-08-30 21:21:23)\n>>>>>>>> The default ControlInfo constructor allows to partially initialised the\n>>>>>>>> min/max/def values. Uninitialised values are assigned to 0 by default. This\n>>>>>>>> implicit initialisation makes it impossible to distinguish between and\n>>>>>>>> uninitialised and an explicitly 0-initialised ControlValue.\n>>>>>>>>\n>>>>>>>> Default construct the ControlValue in the ControlInfo default contructor to\n>>>>>>>> explicitly represent uninitialised values by the ControlTypeNone type.\n>>>>>>>\n>>>>>>> This sounds ... a lot better !\n>>>>>>>\n>>>>>>> Testing with this series applied (including the patch 2/2, which should\n>>>>>>> probably be squashed to one patch to maintain bisection) has the\n>>>>>>> following failures for me:\n>>>>>>>\n>>>>>>> 27/70 libcamera:serialization / ipa_data_serializer_test                 FAIL            0.02s   (exit status 255 or signal 127 SIGinvalid)\n>>>>>>>>>> MALLOC_PERTURB_=174 /home/kbingham/iob/libcamera/libcamera/build/gcc/test/serialization/ipa_data_serializer_test\n>>>>>>> ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――\n>>>>>>> stderr:\n>>>>>>> [148:04:16.561414604] [830675]  INFO IPAManager ipa_manager.cpp:141 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/libcamera/build/gcc/src/ipa' to the IPA search path\n>>>>>>> [148:04:16.562718193] [830675]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3856-6478a395\n>>>>>>> [148:04:16.567590564] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:174 No static properties available for 'Sensor B'\n>>>>>>> [148:04:16.567599841] [830679]  WARN CameraSensorProperties camera_sensor_properties.cpp:176 Please consider updating the camera sensor properties database\n>>>>>>> [148:04:16.567605382] [830679]  WARN CameraSensor camera_sensor.cpp:411 'Sensor B': Failed to retrieve the camera location\n>>>>>>> [148:04:16.568583439] [830679]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/libcamera/src/ipa/vimc/data'\n>>>>>>> [148:04:16.569025699] [830675] ERROR Serializer control_serializer.cpp:509 Bad data, entry offset mismatch (entry 1)\n>>>>>>> lhs:\n>>>>>>> - 1: [false..true]\n>>>>>>> - 7: [0..999999]\n>>>>>>> - 8: [1.000000..32.000000]\n>>>>>>> - 9: [-1.000000..1.000000]\n>>>>>>> - 15: [0.000000..32.000000]\n>>>>>>> rhs:\n>>>>>>> Deserialized std::vector<libcamera::ControlInfoMap> doesn't match original\n>>>>>>>\n>>>>>>> So I think we have to identify what impact this has on control\n>>>>>>> serialisation. I expect we haven't tried to serialize ControlTypeNone\n>>>>>>> before.\n>>>>>>>\n>>>>>>> But I think this is a good path to take currently.\n>>>>>>>\n>>>>>>> --\n>>>>>>> Kieran\n>>>>>>>\n>>>>>>>\n>>>>>>>>\n>>>>>>>> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n>>>>>>>> ---\n>>>>>>>>    include/libcamera/controls.h | 6 +++---\n>>>>>>>>    1 file changed, 3 insertions(+), 3 deletions(-)\n>>>>>>>>\n>>>>>>>> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n>>>>>>>> index ebc168fc..38d0a3e8 100644\n>>>>>>>> --- a/include/libcamera/controls.h\n>>>>>>>> +++ b/include/libcamera/controls.h\n>>>>>>>> @@ -268,9 +268,9 @@ private:\n>>>>>>>>    class ControlInfo\n>>>>>>>>    {\n>>>>>>>>    public:\n>>>>>>>> -       explicit ControlInfo(const ControlValue &min = 0,\n>>>>>>>> -                            const ControlValue &max = 0,\n>>>>>>>> -                            const ControlValue &def = 0);\n>>>>>>>> +       explicit ControlInfo(const ControlValue &min = {},\n>>>>>>>> +                            const ControlValue &max = {},\n>>>>>>>> +                            const ControlValue &def = {});\n>>>>>>>>           explicit ControlInfo(Span<const ControlValue> values,\n>>>>>>>>                                const ControlValue &def = {});\n>>>>>>>>           explicit ControlInfo(std::set<bool> values, bool def);\n>","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 7AC13C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun,  9 Oct 2022 10:19:17 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8881F62D50;\n\tSun,  9 Oct 2022 12:19:16 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.17.22])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 84FEB60AC2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun,  9 Oct 2022 12:19:15 +0200 (CEST)","from [192.168.0.158] ([88.152.184.103]) by mail.gmx.net (mrgmx105\n\t[212.227.17.168]) with ESMTPSA (Nemesis) id\n\t1M8ykg-1omRkb0NeA-0065Df for\n\t<libcamera-devel@lists.libcamera.org>; Sun, 09 Oct 2022 12:19:15 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1665310756;\n\tbh=Nzm/7jnpKf3YYDX9ZO7IDvOanrgnh1izjoEb5jCPjmk=;\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=CW2fSkOiEwpsHjWAVLAQ4mzcsz/iIck+PKOTLvJgMB8RU1Du8uZqWxxMzZ0igRoZ1\n\tDXV9vFDw/9lgMMqFjhwiZpe3njYRgoZgJbDJg5TbGaOHLWy4I9FdoADNb25sZLsW/G\n\tlyxaf3fZHH3PFyrvUj7usw1JHVMSPHs2iA7MkFsLO7KCbDYk/eDOOSrnM43FUHA1UP\n\tdupJZRbs5el7OaB0nbqr0eBkl88ORiuT/k0ZLPd8GJHvXlKylBf/kfQLUQjwOFP83q\n\tt9wb/YWpgIwpG9uh7tdBFAM8ZSA6csPSoT0In4+SSxDmzPfFpMWA/N7vDUF/AcyGf6\n\tJA4HISgppIxOA==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1665310755;\n\tbh=Nzm/7jnpKf3YYDX9ZO7IDvOanrgnh1izjoEb5jCPjmk=;\n\th=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To;\n\tb=I3STCc8y6F9m5wuL8ltxlJqavkEe77Et0mcUvosXRw5TJKIUoznx2xGlut69VX77i\n\tKDo0s/BeSwW+mjlgQCfMPfKTqF7VNpDeQEkdXF1uttJ+Zh5A8E5n7GtCmTJdVB5HF/\n\te4cwrym8AONXdtWdNp0/kmg61eMHU6zmaozWWkH8="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"I3STCc8y\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","Message-ID":"<8dca8b8d-cdf5-c89e-579e-8a243e7f7de6@gmx.de>","Date":"Sun, 9 Oct 2022 12:19:14 +0200","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101\n\tThunderbird/102.2.2","Content-Language":"en-GB","To":"libcamera-devel@lists.libcamera.org","References":"<20220830202124.457253-1-Rauch.Christian@gmx.de>\n\t<166194670894.15972.13151184407715478564@Monstersaurus>\n\t<b01cc1c0-8cb3-49c1-7c04-01c8778b4e4b@gmx.de>\n\t<166198002807.1138516.11933891331899071444@Monstersaurus>\n\t<b71691c1-4589-9d58-e759-244ab6df9d90@gmx.de>\n\t<166428021235.2677993.12649936014747591148@Monstersaurus>\n\t<f32fd2b1-4ad6-5da2-72f9-75744011b221@gmx.de>\n\t<Y0F8Rwp4UgS8fWFg@pendragon.ideasonboard.com>","In-Reply-To":"<Y0F8Rwp4UgS8fWFg@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:qWa3VOsQsXvTzCyuYUl+ZhZphHwjuXMN13J7WWrrTINFup9DUa7\n\tqSEhLpyafC0mn/ESiSsSDT+HjJUucA4fpJcDpATI6hb6QRYWOEW+5/tg9RUVltXoxIu5vCA\n\tvbSGvGIxRjEsw6gKd+r1fHdATciiigMgLJtkLuw9RwYL1HcQJwfu5DmHRPEiPHmDWK812Tg\n\tRNL2Jzlz/GX5Xu0owNh/A==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:48p2erdsSFo=:1mw5eDdahLnHAFhp2RxQ5W\n\t986CivdirMH6p6WbEZ2KLWQqe2yrrar6BnlH7jWDmgNJXeGpIgefs1WevH/IQEuXeugmuttOH\n\tnISKbyCHmu3e0rD/81ImemxcSKLI2hZCfUDiozSLVe6r2E4Z8yPJM7FZZxMLUhVxhR7LOFN/g\n\tzNGAW9e4tFnCYNiO/FZfQPma1mT0cgqRkJT8GhxYcU+9dTIoM4tA4ICW1Rz8S11JOKjiZvBw9\n\teQKuM7kmvQdhO069u4s6Z8W5AauBocStEd2J4/CiRHBQP5GWp3As/bg09ZO0pQZhyoMl4ulmK\n\t4KGlPwhx135tK/7+mviUNUgzyozDg7EmFbFFIwHViqusPD+0vpM0G9lJm2/UBAfk+puMPDpY1\n\tYsys4e2sbJAOOoqY86LFpC/pFvbCtDV49rfnwxd8X5ky3rSA3IOHZwlEDci+nSvlGbKg3FcQx\n\tNPT+dDqbG61kiY91nKMSAxU/dP0SR0/EjNtq6cSPCvKwGpACaCOWvoq1Qq4ddzj3/cGophZp9\n\ty4kUFIEJ2Ncxb07in7NlLFKQWrxoo6MB1UTmNwy0ckM0UStvuM9vu5x1trLnqimaQ1cWltI3L\n\tL2XZjPvCgqsc1o3ti/2i2cz2wUoigtibS8l6AGmrsECtTPEWDZw6ejtx24EDWdgba+wAAdLDD\n\tr/Xkt5gUp/rNZZeJfLddFDATCbZi/R4xdxJh1yKgMBNvxXB4hUufsYo/DEQzRNgJl1D+54fCA\n\tKmqFbVb3sa5CKyzyT77tB4fUczQAujbN71BR5tRPgr8yFc8+JPL8D3OpviIvBsyFXD2cYYPu7\n\tvTeogEMhPfxuW6o0c9hUFuB5/STqiekTIBtg5TlZm9tZB+ozl2/3FVfh2UrMkwGy5xNYAGCVV\n\tGuM3SM1c+S4a9rR0VrMN9atl3zyYbRgpQMhSaObdB0oa1h09sLwUI8+hylBzwparkIHs1VpYI\n\th16xtce8zwYAJLJj0/Rx2BK6QEE2YD0JmhL29ME4wpFfJaK+kpcGFX9vtatGkKv2bJVPCvZYW\n\tI2yKdeIwEZC9E0W9h/e3XzWdpngAWt+M+lXetialB6OQo/JIgRY/x5nvZWvdFwgg4o1NdQ9uh\n\t73u34mI8OrYg+0aK3d4wqNdJ/uYw26EBm3zXCOEVPOsjMkq7lW7VT7sDiwLNplWl0GJQkU8OR\n\tv3hA53iJdIXZ6W6vzGP/pTkp2ccfHewhHTsddQg2f/aCi7D/MPt+zJJW/2Ubf4yOAcW+tSSD4\n\t/HKBrAqZgEGWtw/JkDOmnvwpKMGYb+xLUBoxs0Pd29A01+wEO9vAOA5s+piUlp8LbAmt5bcI/\n\t1mIsczQoTTDXmduVyHYz81tQW3nBdirPt+3Cz5tQBCBr/PjcVXduxjA3YGnqq+TxdJn51T7HT\n\t2aEFy/RZFOOchndWUqTSdcICzJH/PuVAjNTtwttzh7qf+wIq57oyvlU3sjR33VpUYG4eWtew4\n\ts4hxBDmvbhBYMtPG6Fl2Ok8a4heADHPguaBkURspmujXiJ1ti06pYfVeOcLcRFkgnW0ARkgBP\n\t2Ab+X7TbcXG6WOLbpIG9AMMF5UHEHk9ie7nWIVELVmq5H","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] libcamera: control: initialise\n\tcontrol info to ControlTypeNone by default","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>"}}]