[{"id":27902,"web_url":"https://patchwork.libcamera.org/comment/27902/","msgid":"<CAEmqJPom5UHWxDafsdGF=07rkR6FLgd3dCHxgZSEkpy6C+aK_A@mail.gmail.com>","date":"2023-09-28T09:52:48","subject":"Re: [libcamera-devel] [PATCH] py: Add the SensorConfiguration class","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi David,\n\nThank you for your patch.\n\nOn Thu, 28 Sept 2023 at 10:45, David Plowman via libcamera-devel\n<libcamera-devel@lists.libcamera.org> wrote:\n>\n> We provide access to the bitDepth and outputSize fields of the new\n> SensorConfiguration class. The class also needs a constructor so that\n> Python applications can make one and put it into the\n> CameraConfiguration.\n>\n> Signed-off-by: David Plowman <david.plowman@raspberrypi.com>\n\nReviewed-by: Naushir Patuck <naush@raspberrypi.com>\n\n> ---\n>  src/py/libcamera/py_main.cpp | 7 +++++++\n>  1 file changed, 7 insertions(+)\n>\n> diff --git a/src/py/libcamera/py_main.cpp b/src/py/libcamera/py_main.cpp\n> index 01fb15a9..8df04520 100644\n> --- a/src/py/libcamera/py_main.cpp\n> +++ b/src/py/libcamera/py_main.cpp\n> @@ -112,6 +112,7 @@ PYBIND11_MODULE(_libcamera, m)\n>\n>         auto pyCameraManager = py::class_<PyCameraManager, std::shared_ptr<PyCameraManager>>(m, \"CameraManager\");\n>         auto pyCamera = py::class_<Camera, PyCameraSmartPtr<Camera>>(m, \"Camera\");\n> +       auto pySensorConfiguration = py::class_<SensorConfiguration>(m, \"SensorConfiguration\");\n>         auto pyCameraConfiguration = py::class_<CameraConfiguration>(m, \"CameraConfiguration\");\n>         auto pyCameraConfigurationStatus = py::enum_<CameraConfiguration::Status>(pyCameraConfiguration, \"Status\");\n>         auto pyStreamConfiguration = py::class_<StreamConfiguration>(m, \"StreamConfiguration\");\n> @@ -281,6 +282,11 @@ PYBIND11_MODULE(_libcamera, m)\n>                         return ret;\n>                 });\n>\n> +       pySensorConfiguration\n> +               .def(py::init<>())\n> +               .def_readwrite(\"bit_depth\", &SensorConfiguration::bitDepth)\n> +               .def_readwrite(\"output_size\", &SensorConfiguration::outputSize);\n> +\n>         pyCameraConfiguration\n>                 .def(\"__iter__\", [](CameraConfiguration &self) {\n>                         return py::make_iterator<py::return_value_policy::reference_internal>(self);\n> @@ -293,6 +299,7 @@ PYBIND11_MODULE(_libcamera, m)\n>                      py::return_value_policy::reference_internal)\n>                 .def_property_readonly(\"size\", &CameraConfiguration::size)\n>                 .def_property_readonly(\"empty\", &CameraConfiguration::empty)\n> +               .def_readwrite(\"sensor_config\", &CameraConfiguration::sensorConfig)\n>                 .def_readwrite(\"transform\", &CameraConfiguration::transform);\n>\n>         pyCameraConfigurationStatus\n> --\n> 2.39.2\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 3ACC7C326B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 28 Sep 2023 09:53:27 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E5BE162964;\n\tThu, 28 Sep 2023 11:53:26 +0200 (CEST)","from mail-yw1-x112e.google.com (mail-yw1-x112e.google.com\n\t[IPv6:2607:f8b0:4864:20::112e])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 83DF761DE3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 28 Sep 2023 11:53:25 +0200 (CEST)","by mail-yw1-x112e.google.com with SMTP id\n\t00721157ae682-59c0b9ad491so157753697b3.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 28 Sep 2023 02:53:25 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1695894806;\n\tbh=zMlUjLxGLcyijoG0oy5PfppfPwCwYzliXaqqEWtHiB8=;\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=fOTqrZRRrOpOYuhBjFCOpY+n7OYC6is9LSdxspYUdiIjCZHpNlSqEBvwCO2w9J0Gi\n\tej51okslsToYmCoyUbtBjN4j9Z70u6fgq/OW7zBBYhaHzjA2LcnAmq+JZy7ZuMc7f9\n\tv06iIDvleo+k7LfXzDAdnAe5lmWwu4BdTrVX6RiZqOs4RtcNb8vuvIe0/gwBHtfSss\n\thaZXxfA5AOIFl83+8P4LJb5lAYxOctgB1T1MHUkZft6mFhNoxCBqAcq2e8fatPyrzF\n\tNFdK0fLR0MBtchN/gFWgA4/t4u94PhQsEn70qn97dO3/pd7avNwd65dFu3u++p8RL+\n\tmjaBpGBftdUiw==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1695894804; x=1696499604;\n\tdarn=lists.libcamera.org; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=l0hNOeSjG5xI3W3OiK+IcYGORWT+tYkZ4ow9s7J5WFc=;\n\tb=H0N2aHQ8ezpgeqDUmfhbclcXfIaA7/67+gh73UE0MCayUpGwCoB1uwjHF/FkS4ou9Y\n\tlqHsu3ORHstO/ARd+Kyw3XsnHIb4b5oOksd62750GQ7YjrICE5a5+O+w6fBxAYy+fqcy\n\t3XyQ9+9O7U/ODK96kH4hU4oCyRKsGcYjlYV3Q+hDY5+t4/tzE/gMgGOsGAhyJJZVSgr2\n\t/0qv3C2FLsMycLEFe82/Zbs4shgCxR9Los4jFtVbxyRM6PYc4VtZakaxT3bxGSFuOxOA\n\tCBn1cSOcYnl+Q4lUJ2GP/68z5iJF5JFLLLgCoswkSkcjG1uYSmmyll5x9lUbgF22uSJw\n\tUPJQ=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"H0N2aHQ8\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1695894804; x=1696499604;\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:message-id\n\t:reply-to;\n\tbh=l0hNOeSjG5xI3W3OiK+IcYGORWT+tYkZ4ow9s7J5WFc=;\n\tb=jO1MYalccahaM7DNjLhBf0uwEtxi6icU6z6vqDKou20Z8hRagOlELdcLJMW3u2xlF8\n\tUFdLGOFpSmy0wDD3dzuOM1TlDeukeOmYTE/avi8aKffW2N9s4VW5oa6CZloTZzJoS0d0\n\tZ6sHZMKEqIIVBbhYBpRGwHPb7dRUcBGyg7IruU1onzK2/ns9i/M3/woNlJ1og5dNHsCc\n\tjT4t6n0KAlQoR4QgGTK6iL3A2mrg7NDCty5QHuC3iaiaue6hfoQMM5mlXRVKvv3f6Njs\n\tvdECgWEdN+2iYt2hMTVCz1ryzPHseahDK8lA+36OuqVhXps9LpxFkxuiPgrFiB/laf8w\n\t8yEg==","X-Gm-Message-State":"AOJu0Yw2L+BEda0OhenY2gaU7c1jjywdJvs3IrU9lA4F531GIjYR01gX\n\tpVfygrWhWrukx/AgJSxtkNOJgS6H1O+wsqlXAaTZa5aa3QkISG9zFPY=","X-Google-Smtp-Source":"AGHT+IE36Gg5fU0QKaFouVqtMwWIcTv0mm9JNrRpkkXMuK7rMG8S5+fA9yLDWpfvcb+d72cOFdyITj+dg73FQ9TjGSI=","X-Received":"by 2002:a81:4ed2:0:b0:5a1:d352:9fe1 with SMTP id\n\tc201-20020a814ed2000000b005a1d3529fe1mr687622ywb.42.1695894804427;\n\tThu, 28 Sep 2023 02:53:24 -0700 (PDT)","MIME-Version":"1.0","References":"<20230928094526.21999-1-david.plowman@raspberrypi.com>","In-Reply-To":"<20230928094526.21999-1-david.plowman@raspberrypi.com>","Date":"Thu, 28 Sep 2023 10:52:48 +0100","Message-ID":"<CAEmqJPom5UHWxDafsdGF=07rkR6FLgd3dCHxgZSEkpy6C+aK_A@mail.gmail.com>","To":"David Plowman <david.plowman@raspberrypi.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH] py: Add the SensorConfiguration class","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":"Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Naushir Patuck <naush@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":27924,"web_url":"https://patchwork.libcamera.org/comment/27924/","msgid":"<41ed8f8d-79e1-af7d-bba8-c384723055c9@ideasonboard.com>","date":"2023-10-05T10:03:46","subject":"Re: [libcamera-devel] [PATCH] py: Add the SensorConfiguration class","submitter":{"id":109,"url":"https://patchwork.libcamera.org/api/people/109/","name":"Tomi Valkeinen","email":"tomi.valkeinen@ideasonboard.com"},"content":"On 28/09/2023 12:45, David Plowman via libcamera-devel wrote:\n> We provide access to the bitDepth and outputSize fields of the new\n> SensorConfiguration class. The class also needs a constructor so that\n> Python applications can make one and put it into the\n> CameraConfiguration.\n> \n> Signed-off-by: David Plowman <david.plowman@raspberrypi.com>\n> ---\n>   src/py/libcamera/py_main.cpp | 7 +++++++\n>   1 file changed, 7 insertions(+)\n> \n> diff --git a/src/py/libcamera/py_main.cpp b/src/py/libcamera/py_main.cpp\n> index 01fb15a9..8df04520 100644\n> --- a/src/py/libcamera/py_main.cpp\n> +++ b/src/py/libcamera/py_main.cpp\n> @@ -112,6 +112,7 @@ PYBIND11_MODULE(_libcamera, m)\n>   \n>   \tauto pyCameraManager = py::class_<PyCameraManager, std::shared_ptr<PyCameraManager>>(m, \"CameraManager\");\n>   \tauto pyCamera = py::class_<Camera, PyCameraSmartPtr<Camera>>(m, \"Camera\");\n> +\tauto pySensorConfiguration = py::class_<SensorConfiguration>(m, \"SensorConfiguration\");\n>   \tauto pyCameraConfiguration = py::class_<CameraConfiguration>(m, \"CameraConfiguration\");\n>   \tauto pyCameraConfigurationStatus = py::enum_<CameraConfiguration::Status>(pyCameraConfiguration, \"Status\");\n>   \tauto pyStreamConfiguration = py::class_<StreamConfiguration>(m, \"StreamConfiguration\");\n> @@ -281,6 +282,11 @@ PYBIND11_MODULE(_libcamera, m)\n>   \t\t\treturn ret;\n>   \t\t});\n>   \n> +\tpySensorConfiguration\n> +\t\t.def(py::init<>())\n> +\t\t.def_readwrite(\"bit_depth\", &SensorConfiguration::bitDepth)\n> +\t\t.def_readwrite(\"output_size\", &SensorConfiguration::outputSize);\n> +\n\nAny reason not to expose all the fields in the class? In any case, looks \nfine to me:\n\nReviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>\n\n\n>   \tpyCameraConfiguration\n>   \t\t.def(\"__iter__\", [](CameraConfiguration &self) {\n>   \t\t\treturn py::make_iterator<py::return_value_policy::reference_internal>(self);\n> @@ -293,6 +299,7 @@ PYBIND11_MODULE(_libcamera, m)\n>   \t\t     py::return_value_policy::reference_internal)\n>   \t\t.def_property_readonly(\"size\", &CameraConfiguration::size)\n>   \t\t.def_property_readonly(\"empty\", &CameraConfiguration::empty)\n> +\t\t.def_readwrite(\"sensor_config\", &CameraConfiguration::sensorConfig)\n>   \t\t.def_readwrite(\"transform\", &CameraConfiguration::transform);\n>   \n>   \tpyCameraConfigurationStatus","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 5DB28BD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  5 Oct 2023 10:03:53 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9C37662963;\n\tThu,  5 Oct 2023 12:03:52 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id AC1BA61DE0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  5 Oct 2023 12:03:50 +0200 (CEST)","from [192.168.88.20] (91-157-153-81.elisa-laajakaista.fi\n\t[91.157.153.81])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 83203669;\n\tThu,  5 Oct 2023 12:02:03 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1696500232;\n\tbh=bdJ41u3gmHQUtS8HzHTtT1sZTIgFr9DkzBpZywCqOm8=;\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=jPeyu/il/rtw4m+5aQpInEmA9wPctiAOn3QA73GqovmXBh/ixtAEl1d/2lz1sB4P+\n\tM/u7MQBhNz2Jac44S/7nGTcBR/0iF68Sy3A6XE7HcBXWJlPJAVDqVV49v6Mx9TaYNE\n\tWdVyWMVTXXaX2/DsKxS//14WDb/w3RHZy/f7z3Qac2hnChXBAaSqQNYl8wjEbwdNV6\n\twUA2dsSUzb5N4ZiJeOTCf1img4qwFDBdYwOHu4jACW4lVGwgPld+DQAU+25T1Lz2EV\n\tdaBoDcb+79V6wO9kmk6rW7JlO/cvBNUvasQQ7p/8RBJucw5j7rkS2d9t2EtTiVmLyy\n\twgc4YhBfMfWVg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1696500123;\n\tbh=bdJ41u3gmHQUtS8HzHTtT1sZTIgFr9DkzBpZywCqOm8=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=aZ4Thr4gQJpKda5oq6mxE3MRdbHtI9NMuaZZkuIqZFYxkUuvy/KqJ0eYbnKu/7Khl\n\tupu7mmMY7Ag1D0eObItiVLXAjWRnXYRJCmUq2I1lE5h4Jh5xPo88o9FgxcNyUSBHhS\n\tYcUX8V3hiIONhkdP6LmIO0Jng6E1+UBtpABQJ8co="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"aZ4Thr4g\"; dkim-atps=neutral","Message-ID":"<41ed8f8d-79e1-af7d-bba8-c384723055c9@ideasonboard.com>","Date":"Thu, 5 Oct 2023 13:03:46 +0300","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101\n\tThunderbird/102.15.1","Content-Language":"en-US","To":"David Plowman <david.plowman@raspberrypi.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20230928094526.21999-1-david.plowman@raspberrypi.com>","In-Reply-To":"<20230928094526.21999-1-david.plowman@raspberrypi.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH] py: Add the SensorConfiguration class","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":27927,"web_url":"https://patchwork.libcamera.org/comment/27927/","msgid":"<CAHW6GYKN4m=Qt-w_N8qOwOPR=5hTcgqtB=ADao-oQ48g6eqd5g@mail.gmail.com>","date":"2023-10-11T09:37:49","subject":"Re: [libcamera-devel] [PATCH] py: Add the SensorConfiguration class","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi Tomi\n\nOn Thu, 5 Oct 2023 at 11:03, Tomi Valkeinen\n<tomi.valkeinen@ideasonboard.com> wrote:\n>\n> On 28/09/2023 12:45, David Plowman via libcamera-devel wrote:\n> > We provide access to the bitDepth and outputSize fields of the new\n> > SensorConfiguration class. The class also needs a constructor so that\n> > Python applications can make one and put it into the\n> > CameraConfiguration.\n> >\n> > Signed-off-by: David Plowman <david.plowman@raspberrypi.com>\n> > ---\n> >   src/py/libcamera/py_main.cpp | 7 +++++++\n> >   1 file changed, 7 insertions(+)\n> >\n> > diff --git a/src/py/libcamera/py_main.cpp b/src/py/libcamera/py_main.cpp\n> > index 01fb15a9..8df04520 100644\n> > --- a/src/py/libcamera/py_main.cpp\n> > +++ b/src/py/libcamera/py_main.cpp\n> > @@ -112,6 +112,7 @@ PYBIND11_MODULE(_libcamera, m)\n> >\n> >       auto pyCameraManager = py::class_<PyCameraManager, std::shared_ptr<PyCameraManager>>(m, \"CameraManager\");\n> >       auto pyCamera = py::class_<Camera, PyCameraSmartPtr<Camera>>(m, \"Camera\");\n> > +     auto pySensorConfiguration = py::class_<SensorConfiguration>(m, \"SensorConfiguration\");\n> >       auto pyCameraConfiguration = py::class_<CameraConfiguration>(m, \"CameraConfiguration\");\n> >       auto pyCameraConfigurationStatus = py::enum_<CameraConfiguration::Status>(pyCameraConfiguration, \"Status\");\n> >       auto pyStreamConfiguration = py::class_<StreamConfiguration>(m, \"StreamConfiguration\");\n> > @@ -281,6 +282,11 @@ PYBIND11_MODULE(_libcamera, m)\n> >                       return ret;\n> >               });\n> >\n> > +     pySensorConfiguration\n> > +             .def(py::init<>())\n> > +             .def_readwrite(\"bit_depth\", &SensorConfiguration::bitDepth)\n> > +             .def_readwrite(\"output_size\", &SensorConfiguration::outputSize);\n> > +\n>\n> Any reason not to expose all the fields in the class? In any case, looks\n> fine to me:\n\nYes, that's a fair point. I guess the only reason was that I don't use\nthose other fields, in large part because there's currently no way to\ndiscover what values you'd put into them, so you'd struggle to do\nanything meaningful with them!\n\nBut I could add simple accessors to these other bits of data where\nthat's straightforward. Do we think that would be useful?\n\nThanks!\nDavid\n\n>\n> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>\n>\n>\n> >       pyCameraConfiguration\n> >               .def(\"__iter__\", [](CameraConfiguration &self) {\n> >                       return py::make_iterator<py::return_value_policy::reference_internal>(self);\n> > @@ -293,6 +299,7 @@ PYBIND11_MODULE(_libcamera, m)\n> >                    py::return_value_policy::reference_internal)\n> >               .def_property_readonly(\"size\", &CameraConfiguration::size)\n> >               .def_property_readonly(\"empty\", &CameraConfiguration::empty)\n> > +             .def_readwrite(\"sensor_config\", &CameraConfiguration::sensorConfig)\n> >               .def_readwrite(\"transform\", &CameraConfiguration::transform);\n> >\n> >       pyCameraConfigurationStatus\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 03002C3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 11 Oct 2023 09:38:04 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 44A6162970;\n\tWed, 11 Oct 2023 11:38:04 +0200 (CEST)","from mail-vs1-xe36.google.com (mail-vs1-xe36.google.com\n\t[IPv6:2607:f8b0:4864:20::e36])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8465E61DD6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 11 Oct 2023 11:38:01 +0200 (CEST)","by mail-vs1-xe36.google.com with SMTP id\n\tada2fe7eead31-4577c37392eso1224572137.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 11 Oct 2023 02:38:01 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1697017084;\n\tbh=bfH8CbQzDHylVDK+ZmOz9JnomdDvwZlPIHGts5DIdTQ=;\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=hiOZ9JyqomMGC+iwMUzjpr1cEmBWHUF0XGZMKnyLey+QzP3rnfuJTbO8Ub5vZqwn1\n\t8Rr7sQUors8wCtQZhOY40ICROhbQV9Eb3BdF/0IIDKJA6THwKDN63hdk6URQGGBOhz\n\t57E7g6BM3h8NuYn2U/mvbOz1gpFEFrGj9lagHLcof+YxeUFKbNqmuJp5d6Ff6ZQtk9\n\tyGkPnZKqGCKDIxMigv5L49Mj0Oa0/EhSRjDRaUP/qkczKmY9uSbH+/EmhVAfDi/K3m\n\tW/VPHtB9/Gq/QyJEsHZmQB0VOxYrkCan3RAV8l7EdUc90bo3ugp8legPRKnTOvKsbw\n\t1isGgqeqQuFyA==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1697017080; x=1697621880;\n\tdarn=lists.libcamera.org; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=NjRCQ26JupFof9tG0l+5VeQoztM3qvqhqY4t5i1H/Zk=;\n\tb=biOsQd1uogULtm2/xNqnEbQi5MdAmUDK0QWTxGGv4fNbujBI2/4pxwDrCd4d7noICo\n\t+8RrwiySKcmBY/zIzLu6PtqOoGyPc7J6NX5vfTq0xHwkWSbJUieqSUWN130ACOCHJ5mv\n\tJc5Se2AqU6pkR24W9+U+jqtE7JZ5l+2+sEAPOqho7339QBoMV9bYzwYoW8GeOdsxbXOv\n\tIziF+Rbh6Z0ZZrhyRVytTEdcHSfoI9og2BtPesqWgytxtc22qi72V0K8M40MDEINlchu\n\tfnEmCiITL1COa70IrlmDfHJu2eKbqtswr8Ag5Hs2gA1iMRxmpa5lSPm6sUazO4/ucDqB\n\t1/5A=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"biOsQd1u\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1697017080; x=1697621880;\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:message-id\n\t:reply-to;\n\tbh=NjRCQ26JupFof9tG0l+5VeQoztM3qvqhqY4t5i1H/Zk=;\n\tb=ivzBzLrpZrItHiAamy7qln9r6SSjqHD2VuefqdFby+cTeKyhc/joomm+Nrlng8CF4F\n\tCbMgWFCOWlgft42fBMFesm7V6geQM/b1wVYKKcZOtfKiqHq1qpd39RiUmBoilSL3AJbw\n\tXyv8jmlgGEDPAYwlJ7pB4hWFNDkt7qsn6jiYh47eW3JJhex65AkdR8xxnYCpQ+ZaL3qE\n\tAUGSdjIUQw34chmoU57BJLivDJHU8UE0s7ohVSemPp9Vx7kxcWdWjQ5o9D2w8W000GSs\n\tGcDOFJhDb14Dp78wz3tkId7A6YcOr6XMiohhucICvs6R9zSPuNSaDSh9AG3Vrns28Y3t\n\t4w0A==","X-Gm-Message-State":"AOJu0YxEgcO0Xv9ZUIjpzRMElCyLo4kHqNRM8SlWOrZR22cKUpq7dSOm\n\trlsv/wytTD0Y/qcoxuLhZGmrnl7PAWLFgF2FgXJcXw==","X-Google-Smtp-Source":"AGHT+IG70a12QN2E3XykapAkJXin6WQku/9N5CPyx+l6O6OhZUivyhC7J21Zw8an0ZiFCXSKYNbI0oB3iPzVDxXAuLQ=","X-Received":"by 2002:a05:6102:50d:b0:452:679f:a2c7 with SMTP id\n\tl13-20020a056102050d00b00452679fa2c7mr19671330vsa.24.1697017080068;\n\tWed, 11 Oct 2023 02:38:00 -0700 (PDT)","MIME-Version":"1.0","References":"<20230928094526.21999-1-david.plowman@raspberrypi.com>\n\t<41ed8f8d-79e1-af7d-bba8-c384723055c9@ideasonboard.com>","In-Reply-To":"<41ed8f8d-79e1-af7d-bba8-c384723055c9@ideasonboard.com>","Date":"Wed, 11 Oct 2023 10:37:49 +0100","Message-ID":"<CAHW6GYKN4m=Qt-w_N8qOwOPR=5hTcgqtB=ADao-oQ48g6eqd5g@mail.gmail.com>","To":"Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH] py: Add the SensorConfiguration class","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":27929,"web_url":"https://patchwork.libcamera.org/comment/27929/","msgid":"<169702013535.2915094.11083602794759473536@ping.linuxembedded.co.uk>","date":"2023-10-11T10:28:55","subject":"Re: [libcamera-devel] [PATCH] py: Add the SensorConfiguration class","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting David Plowman via libcamera-devel (2023-10-11 10:37:49)\n> Hi Tomi\n> \n> On Thu, 5 Oct 2023 at 11:03, Tomi Valkeinen\n> <tomi.valkeinen@ideasonboard.com> wrote:\n> >\n> > On 28/09/2023 12:45, David Plowman via libcamera-devel wrote:\n> > > We provide access to the bitDepth and outputSize fields of the new\n> > > SensorConfiguration class. The class also needs a constructor so that\n> > > Python applications can make one and put it into the\n> > > CameraConfiguration.\n> > >\n> > > Signed-off-by: David Plowman <david.plowman@raspberrypi.com>\n> > > ---\n> > >   src/py/libcamera/py_main.cpp | 7 +++++++\n> > >   1 file changed, 7 insertions(+)\n> > >\n> > > diff --git a/src/py/libcamera/py_main.cpp b/src/py/libcamera/py_main.cpp\n> > > index 01fb15a9..8df04520 100644\n> > > --- a/src/py/libcamera/py_main.cpp\n> > > +++ b/src/py/libcamera/py_main.cpp\n> > > @@ -112,6 +112,7 @@ PYBIND11_MODULE(_libcamera, m)\n> > >\n> > >       auto pyCameraManager = py::class_<PyCameraManager, std::shared_ptr<PyCameraManager>>(m, \"CameraManager\");\n> > >       auto pyCamera = py::class_<Camera, PyCameraSmartPtr<Camera>>(m, \"Camera\");\n> > > +     auto pySensorConfiguration = py::class_<SensorConfiguration>(m, \"SensorConfiguration\");\n> > >       auto pyCameraConfiguration = py::class_<CameraConfiguration>(m, \"CameraConfiguration\");\n> > >       auto pyCameraConfigurationStatus = py::enum_<CameraConfiguration::Status>(pyCameraConfiguration, \"Status\");\n> > >       auto pyStreamConfiguration = py::class_<StreamConfiguration>(m, \"StreamConfiguration\");\n> > > @@ -281,6 +282,11 @@ PYBIND11_MODULE(_libcamera, m)\n> > >                       return ret;\n> > >               });\n> > >\n> > > +     pySensorConfiguration\n> > > +             .def(py::init<>())\n> > > +             .def_readwrite(\"bit_depth\", &SensorConfiguration::bitDepth)\n> > > +             .def_readwrite(\"output_size\", &SensorConfiguration::outputSize);\n> > > +\n> >\n> > Any reason not to expose all the fields in the class? In any case, looks\n> > fine to me:\n> \n> Yes, that's a fair point. I guess the only reason was that I don't use\n> those other fields, in large part because there's currently no way to\n> discover what values you'd put into them, so you'd struggle to do\n> anything meaningful with them!\n> \n> But I could add simple accessors to these other bits of data where\n> that's straightforward. Do we think that would be useful?\n\nI would say yes please. Otherwise this just counts as technical debt\nthat will get left behind.\n\n--\nKieran\n\n\n> \n> Thanks!\n> David\n> \n> >\n> > Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>\n> >\n> >\n> > >       pyCameraConfiguration\n> > >               .def(\"__iter__\", [](CameraConfiguration &self) {\n> > >                       return py::make_iterator<py::return_value_policy::reference_internal>(self);\n> > > @@ -293,6 +299,7 @@ PYBIND11_MODULE(_libcamera, m)\n> > >                    py::return_value_policy::reference_internal)\n> > >               .def_property_readonly(\"size\", &CameraConfiguration::size)\n> > >               .def_property_readonly(\"empty\", &CameraConfiguration::empty)\n> > > +             .def_readwrite(\"sensor_config\", &CameraConfiguration::sensorConfig)\n> > >               .def_readwrite(\"transform\", &CameraConfiguration::transform);\n> > >\n> > >       pyCameraConfigurationStatus\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 7EF48BD808\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 11 Oct 2023 10:29:01 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C9CBF62971;\n\tWed, 11 Oct 2023 12:29:00 +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 AAEC162964\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 11 Oct 2023 12:28:58 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(aztw-30-b2-v4wan-166917-cust845.vm26.cable.virginm.net\n\t[82.37.23.78])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 29E6047C;\n\tWed, 11 Oct 2023 12:28:56 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1697020140;\n\tbh=yFT6fB/J67J3qGvGhipZnRBk6710PcxJpYCuSccVEC4=;\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=GrzeweF0RoHJLMLPN7XDpME7xjhLduellrJEIhc9GQOMuTEvGnUryFZNtwErLCLAb\n\teZxcPVjSBeaoGFweoQ2MpFkFZLFfPnT1zzer5HyA71UQR2N3qFBMR6AZIxUCH9K/N8\n\tDPr/jheSuL4c4alcNtqSi+9vi1izD95T9Y5lvAc799Jka2AqdhDlUwOgBLJ3yGueBw\n\tksrR3bizaHKwQnSygTDCZxXz+W4VqSipzBn/BMhaHbr6+fClDUsJyfEAyN85iByqFa\n\t8WX4AS68XM7eiHwIQIsbf22ECKKCEJngIg6zVFzU46CQ5noASBOE39PhHwR/xTUBsP\n\tmF1yPIstDNenQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1697020136;\n\tbh=yFT6fB/J67J3qGvGhipZnRBk6710PcxJpYCuSccVEC4=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=FwlWDWaGkzT/r1wuTHw2oxS7X1EXhFYhCO+7WkrlQ5yOBYWTtAOxh8jJcJBFNvKnD\n\t7d7N9pqMhpQB/+MIFntoxgAAyAv1CXkRFZx5dAEN9HowNFJ3GlHxks38He0dFLGtBb\n\tOqxN3kcLBDAJm5PbLLmMaXghei4Mu+bIKyLdeU34="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"FwlWDWaG\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<CAHW6GYKN4m=Qt-w_N8qOwOPR=5hTcgqtB=ADao-oQ48g6eqd5g@mail.gmail.com>","References":"<20230928094526.21999-1-david.plowman@raspberrypi.com>\n\t<41ed8f8d-79e1-af7d-bba8-c384723055c9@ideasonboard.com>\n\t<CAHW6GYKN4m=Qt-w_N8qOwOPR=5hTcgqtB=ADao-oQ48g6eqd5g@mail.gmail.com>","To":"David Plowman <david.plowman@raspberrypi.com>,\n\tDavid Plowman via libcamera-devel <libcamera-devel@lists.libcamera.org>, \n\tTomi Valkeinen <tomi.valkeinen@ideasonboard.com>","Date":"Wed, 11 Oct 2023 11:28:55 +0100","Message-ID":"<169702013535.2915094.11083602794759473536@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH] py: Add the SensorConfiguration class","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":27937,"web_url":"https://patchwork.libcamera.org/comment/27937/","msgid":"<CAHW6GYKpNDF7uDMrrmK_qYK5_jOE0hY_kfOEJVEzxv06UU0E2w@mail.gmail.com>","date":"2023-10-11T15:39:36","subject":"Re: [libcamera-devel] [PATCH] py: Add the SensorConfiguration class","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Will do!\n\nI've submitted a v2 that adds the extra bits. Not sure what to do with\nthose anonymous structures, so I've made Python turn them into tuples.\n\nDavid\n\nOn Wed, 11 Oct 2023 at 11:29, Kieran Bingham\n<kieran.bingham@ideasonboard.com> wrote:\n>\n> Quoting David Plowman via libcamera-devel (2023-10-11 10:37:49)\n> > Hi Tomi\n> >\n> > On Thu, 5 Oct 2023 at 11:03, Tomi Valkeinen\n> > <tomi.valkeinen@ideasonboard.com> wrote:\n> > >\n> > > On 28/09/2023 12:45, David Plowman via libcamera-devel wrote:\n> > > > We provide access to the bitDepth and outputSize fields of the new\n> > > > SensorConfiguration class. The class also needs a constructor so that\n> > > > Python applications can make one and put it into the\n> > > > CameraConfiguration.\n> > > >\n> > > > Signed-off-by: David Plowman <david.plowman@raspberrypi.com>\n> > > > ---\n> > > >   src/py/libcamera/py_main.cpp | 7 +++++++\n> > > >   1 file changed, 7 insertions(+)\n> > > >\n> > > > diff --git a/src/py/libcamera/py_main.cpp b/src/py/libcamera/py_main.cpp\n> > > > index 01fb15a9..8df04520 100644\n> > > > --- a/src/py/libcamera/py_main.cpp\n> > > > +++ b/src/py/libcamera/py_main.cpp\n> > > > @@ -112,6 +112,7 @@ PYBIND11_MODULE(_libcamera, m)\n> > > >\n> > > >       auto pyCameraManager = py::class_<PyCameraManager, std::shared_ptr<PyCameraManager>>(m, \"CameraManager\");\n> > > >       auto pyCamera = py::class_<Camera, PyCameraSmartPtr<Camera>>(m, \"Camera\");\n> > > > +     auto pySensorConfiguration = py::class_<SensorConfiguration>(m, \"SensorConfiguration\");\n> > > >       auto pyCameraConfiguration = py::class_<CameraConfiguration>(m, \"CameraConfiguration\");\n> > > >       auto pyCameraConfigurationStatus = py::enum_<CameraConfiguration::Status>(pyCameraConfiguration, \"Status\");\n> > > >       auto pyStreamConfiguration = py::class_<StreamConfiguration>(m, \"StreamConfiguration\");\n> > > > @@ -281,6 +282,11 @@ PYBIND11_MODULE(_libcamera, m)\n> > > >                       return ret;\n> > > >               });\n> > > >\n> > > > +     pySensorConfiguration\n> > > > +             .def(py::init<>())\n> > > > +             .def_readwrite(\"bit_depth\", &SensorConfiguration::bitDepth)\n> > > > +             .def_readwrite(\"output_size\", &SensorConfiguration::outputSize);\n> > > > +\n> > >\n> > > Any reason not to expose all the fields in the class? In any case, looks\n> > > fine to me:\n> >\n> > Yes, that's a fair point. I guess the only reason was that I don't use\n> > those other fields, in large part because there's currently no way to\n> > discover what values you'd put into them, so you'd struggle to do\n> > anything meaningful with them!\n> >\n> > But I could add simple accessors to these other bits of data where\n> > that's straightforward. Do we think that would be useful?\n>\n> I would say yes please. Otherwise this just counts as technical debt\n> that will get left behind.\n>\n> --\n> Kieran\n>\n>\n> >\n> > Thanks!\n> > David\n> >\n> > >\n> > > Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>\n> > >\n> > >\n> > > >       pyCameraConfiguration\n> > > >               .def(\"__iter__\", [](CameraConfiguration &self) {\n> > > >                       return py::make_iterator<py::return_value_policy::reference_internal>(self);\n> > > > @@ -293,6 +299,7 @@ PYBIND11_MODULE(_libcamera, m)\n> > > >                    py::return_value_policy::reference_internal)\n> > > >               .def_property_readonly(\"size\", &CameraConfiguration::size)\n> > > >               .def_property_readonly(\"empty\", &CameraConfiguration::empty)\n> > > > +             .def_readwrite(\"sensor_config\", &CameraConfiguration::sensorConfig)\n> > > >               .def_readwrite(\"transform\", &CameraConfiguration::transform);\n> > > >\n> > > >       pyCameraConfigurationStatus\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 52617C3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 11 Oct 2023 15:39:51 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B121A6297B;\n\tWed, 11 Oct 2023 17:39:50 +0200 (CEST)","from mail-qt1-x830.google.com (mail-qt1-x830.google.com\n\t[IPv6:2607:f8b0:4864:20::830])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 421AC62964\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 11 Oct 2023 17:39:49 +0200 (CEST)","by mail-qt1-x830.google.com with SMTP id\n\td75a77b69052e-419787a43ebso43795521cf.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 11 Oct 2023 08:39:49 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1697038790;\n\tbh=MFHhATdlvZ4vKIh36gxXM9RJFBzI3iNAN8CNqQJQNP8=;\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=r1/AgsSnWWbS7wCAZbBQcgnoa/9YjDosT4tfe+LDIm1D3b43ga26SUEQy7K/wc7S2\n\tEFjRFaA+331CojxgkGEIQejbHGqlxlkZBflPd6V8NIxc35KZuyNBE2ThyZ4/8RAX/g\n\tX4Z7Lsl2nlYBpr7LlTo0evEQq1dLUoTExT+ERt0uF0y9Z1wN8HzlntLs/aBgmQLs01\n\tR4R3chs2Ac5gDkKJyYbdqXk1/VoKLipMnb6weI2P6bi2yJlTrxUnSXsR5uZIOgx/et\n\tovC+yYGjvr7u7b8Ivh/B0o8qML38i7IOaPZIyEjEuLaxnhBMwWoNDkMa82RXlhBWSs\n\tMwzMoVmcpecJQ==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1697038788; x=1697643588;\n\tdarn=lists.libcamera.org; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=k187xH0tl8h3/qXaM4C9gkVzpsvxGHYyXLEyxdKsTxs=;\n\tb=tHEw6B3cJAsk+18kDGZzXu1BVL4TOMW7fgsuuWFUL/IIjbMrbHR2NhraTJ7s7pyaVs\n\tNYWIlz5YkzGMG6k6uPeBQBFftHVfOUGBCmIOlF8qFERMOU0reSVmC1x/L9OoeSzuoWFr\n\t0cZPXf7iHBhQGNjOOb8mmIaatyDXOvCo8/WDN10OiY7tTVHxo5lmJrdK0o5o5GSOwb1g\n\tbVW6F9LpEcr02orf9seO/REHUdhHmoGOz0sXXhQGCtoYimduvkwkXTF1aIbM2+249evq\n\tcWeXil6HlU3WJaI1qTb/Azw/+WYY+IvEFsDbnHge01bYR3r9NWTsbca8qG99aA61vDG2\n\tfnAw=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"tHEw6B3c\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1697038788; x=1697643588;\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:message-id\n\t:reply-to;\n\tbh=k187xH0tl8h3/qXaM4C9gkVzpsvxGHYyXLEyxdKsTxs=;\n\tb=Gq9gIJZtlbLuMZKlFmw6nUzsvvcfUbzOSWmNZG7r3naCitIfeW6k9ajTIyId90B6BR\n\tGAw7+nZ5SFl40rrlnUp99ti6QmIy/TN1q+DFZF2voI3EabJdxclW1TOG0s0YWm44m0PX\n\tB4rmvYw/6JO+quaSPVnMVr6KEIIrHzM7vrOrMMRe+RLUknRiw7SS4ONhZ4caJOmnSJKK\n\tdU/OExwYdqDQkLNWsA4m6hz8Ofh4aPywfPInyOqa4gSzpC29pwZMNe7VVCvKYWryIOYE\n\tVfqD9WV04fDmjGM5HDCNLlNILBLTG16bk5p64etAdt0qn5JCWfEppM54ufyuNpWc4AKP\n\tSEig==","X-Gm-Message-State":"AOJu0YxlKHrZm4wvggaJBGNIRCOBhm9t08aNOWe5h0Hz2SZU0IU5eg6z\n\tVJf5/SrO4274qAzDvSn6iEMsU8xOsr+6A8GLWJo07qCgP+9BMKgq","X-Google-Smtp-Source":"AGHT+IErRltt7LmiKzte2W+PJ8EBp/27jbW+HO2MarcCZnUgUTAHr77WMEt2J0TGCvPkDpyWlH4IFzNUwu1eUVz7S3k=","X-Received":"by 2002:ac8:5ad6:0:b0:418:114c:9544 with SMTP id\n\td22-20020ac85ad6000000b00418114c9544mr26921526qtd.66.1697038787886;\n\tWed, 11 Oct 2023 08:39:47 -0700 (PDT)","MIME-Version":"1.0","References":"<20230928094526.21999-1-david.plowman@raspberrypi.com>\n\t<41ed8f8d-79e1-af7d-bba8-c384723055c9@ideasonboard.com>\n\t<CAHW6GYKN4m=Qt-w_N8qOwOPR=5hTcgqtB=ADao-oQ48g6eqd5g@mail.gmail.com>\n\t<169702013535.2915094.11083602794759473536@ping.linuxembedded.co.uk>","In-Reply-To":"<169702013535.2915094.11083602794759473536@ping.linuxembedded.co.uk>","Date":"Wed, 11 Oct 2023 16:39:36 +0100","Message-ID":"<CAHW6GYKpNDF7uDMrrmK_qYK5_jOE0hY_kfOEJVEzxv06UU0E2w@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH] py: Add the SensorConfiguration class","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":"David Plowman 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>"}}]