[{"id":23992,"web_url":"https://patchwork.libcamera.org/comment/23992/","msgid":"<20220720091750.uweqck3kzoue4jaq@uno.localdomain>","date":"2022-07-20T09:17:50","subject":"Re: [libcamera-devel] [PATCH 1/2] licamera: controls: Drop\n\tunnecessary template qualifiers in documentation","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent\n\nFor all the 4/2 patches\n\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\n\nOn Wed, Jul 20, 2022 at 12:02:57AM +0300, Laurent Pinchart via libcamera-devel wrote:\n> The doxygen document blocks of various ControlList function qualify\n> functions with full template and return type specification. This isn't\n> needed, and the extra verbosity makes the documentation blocks more\n> difficult to read. Drop the template qualifiers and return types. The\n> generated documentation is not affected.\n\nI wonder if we shouldn't make ControlList a d-pointer class and have\nthe numerical-id interface available to the library only..\n\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  src/libcamera/controls.cpp | 7 +++----\n>  1 file changed, 3 insertions(+), 4 deletions(-)\n>\n> diff --git a/src/libcamera/controls.cpp b/src/libcamera/controls.cpp\n> index 03ac6345247c..3fd535f204b2 100644\n> --- a/src/libcamera/controls.cpp\n> +++ b/src/libcamera/controls.cpp\n> @@ -954,7 +954,7 @@ bool ControlList::contains(unsigned int id) const\n>  }\n>\n>  /**\n> - * \\fn template<typename T> T ControlList::get(const Control<T> &ctrl) const\n> + * \\fn ControlList::get(const Control<T> &ctrl) const\n>   * \\brief Get the value of control \\a ctrl\n>   * \\param[in] ctrl The control\n>   *\n> @@ -969,7 +969,7 @@ bool ControlList::contains(unsigned int id) const\n>   */\n>\n>  /**\n> - * \\fn template<typename T, typename V> void ControlList::set(const Control<T> &ctrl, const V &value)\n> + * \\fn ControlList::set(const Control<T> &ctrl, const V &value)\n>   * \\brief Set the control \\a ctrl value to \\a value\n>   * \\param[in] ctrl The control\n>   * \\param[in] value The control value\n> @@ -983,8 +983,7 @@ bool ControlList::contains(unsigned int id) const\n>   */\n>\n>  /**\n> - * \\fn template<typename T, typename V> \\\n> - * void ControlList::set(const Control<T> &ctrl, const std::initializer_list<V> &value)\n> + * \\fn ControlList::set(const Control<T> &ctrl, const std::initializer_list<V> &value)\n>   * \\copydoc ControlList::set(const Control<T> &ctrl, const V &value)\n>   */\n>\n>\n> base-commit: 62e32042aee4042b6a931bc27a6ad11384b521f5\n> --\n> Regards,\n>\n> Laurent Pinchart\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 DF136BD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 20 Jul 2022 09:17:54 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 547EB63313;\n\tWed, 20 Jul 2022 11:17:54 +0200 (CEST)","from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net\n\t[IPv6:2001:4b98:dc4:8::223])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8F86860488\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Jul 2022 11:17:52 +0200 (CEST)","(Authenticated sender: jacopo@jmondi.org)\n\tby mail.gandi.net (Postfix) with ESMTPSA id 24F186000D;\n\tWed, 20 Jul 2022 09:17:51 +0000 (UTC)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1658308674;\n\tbh=UXRmuZxf2bnwEu7In2ta9sNJccyQLQB24ZtIKhTSa4I=;\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=itAmoyXACQ+PBWNNvyculnEeQSLssvBO3JfWRy40t2yO+hSDxT9pmWD/XDkynEuYz\n\tl6lJJ1jrdBGe2m3Wtlf/sOTejXq6kC2cII+ntWJfUvX22pECEHLqXa9Ao6Pd086cnZ\n\tV7rNqHg5jGOAL8i61omPWcPNdQjyRgr+LJisZE/lqytTrg1BOlY32VcXEoOn3lvbGu\n\tNmmv015kViIf5ewki24+4WzbrDYPU3w4Eu9rKCA5Qk38meFoQIv3CCsZEv+h+q4UvR\n\tNmn+VZV6YI2czFZpw184apmmI+qK6kHdfQ99R3PAL5NVGUOEu15+v7K5PQMWn0lQcJ\n\t880Mu849hCgQA==","Date":"Wed, 20 Jul 2022 11:17:50 +0200","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20220720091750.uweqck3kzoue4jaq@uno.localdomain>","References":"<20220719210258.5602-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220719210258.5602-1-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 1/2] licamera: controls: Drop\n\tunnecessary template qualifiers in documentation","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":"Jacopo Mondi via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":23995,"web_url":"https://patchwork.libcamera.org/comment/23995/","msgid":"<YtfK3LH9UTQpcvdC@pendragon.ideasonboard.com>","date":"2022-07-20T09:29:00","subject":"Re: [libcamera-devel] [PATCH 1/2] licamera: controls: Drop\n\tunnecessary template qualifiers in documentation","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn Wed, Jul 20, 2022 at 11:17:50AM +0200, Jacopo Mondi wrote:\n> Hi Laurent\n> \n> For all the 4/2 patches\n> \n> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> \n> On Wed, Jul 20, 2022 at 12:02:57AM +0300, Laurent Pinchart via libcamera-devel wrote:\n> > The doxygen document blocks of various ControlList function qualify\n> > functions with full template and return type specification. This isn't\n> > needed, and the extra verbosity makes the documentation blocks more\n> > difficult to read. Drop the template qualifiers and return types. The\n> > generated documentation is not affected.\n> \n> I wonder if we shouldn't make ControlList a d-pointer class and have\n> the numerical-id interface available to the library only..\n\nI'm actually thinking about reworking ControlList to be a wrapper around\na buffer that stores all the control values. This would make\nserialization much faster, and would also avoid lots of dynamic\nallocations. I don't know yet which form this would take though, I\nhaven't really thought about the design.\n\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >  src/libcamera/controls.cpp | 7 +++----\n> >  1 file changed, 3 insertions(+), 4 deletions(-)\n> >\n> > diff --git a/src/libcamera/controls.cpp b/src/libcamera/controls.cpp\n> > index 03ac6345247c..3fd535f204b2 100644\n> > --- a/src/libcamera/controls.cpp\n> > +++ b/src/libcamera/controls.cpp\n> > @@ -954,7 +954,7 @@ bool ControlList::contains(unsigned int id) const\n> >  }\n> >\n> >  /**\n> > - * \\fn template<typename T> T ControlList::get(const Control<T> &ctrl) const\n> > + * \\fn ControlList::get(const Control<T> &ctrl) const\n> >   * \\brief Get the value of control \\a ctrl\n> >   * \\param[in] ctrl The control\n> >   *\n> > @@ -969,7 +969,7 @@ bool ControlList::contains(unsigned int id) const\n> >   */\n> >\n> >  /**\n> > - * \\fn template<typename T, typename V> void ControlList::set(const Control<T> &ctrl, const V &value)\n> > + * \\fn ControlList::set(const Control<T> &ctrl, const V &value)\n> >   * \\brief Set the control \\a ctrl value to \\a value\n> >   * \\param[in] ctrl The control\n> >   * \\param[in] value The control value\n> > @@ -983,8 +983,7 @@ bool ControlList::contains(unsigned int id) const\n> >   */\n> >\n> >  /**\n> > - * \\fn template<typename T, typename V> \\\n> > - * void ControlList::set(const Control<T> &ctrl, const std::initializer_list<V> &value)\n> > + * \\fn ControlList::set(const Control<T> &ctrl, const std::initializer_list<V> &value)\n> >   * \\copydoc ControlList::set(const Control<T> &ctrl, const V &value)\n> >   */\n> >\n> >\n> > base-commit: 62e32042aee4042b6a931bc27a6ad11384b521f5","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 4E416BD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 20 Jul 2022 09:29:37 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BFBF363313;\n\tWed, 20 Jul 2022 11:29:36 +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 7D2B060488\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Jul 2022 11:29:35 +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 E31676DB;\n\tWed, 20 Jul 2022 11:29:34 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1658309376;\n\tbh=3F8kijkQKUaJzP2qm/T9Tb2Ud88qMyW4KlZFikklvo4=;\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=DB9uiP13SfMfEiaDcgKS6/pmCIeMfHtro3Q1teK1OvMhhUQvbL1dcckE2e5+1/LSc\n\tdCAxee/GJtSSTnpQB2ok6FKQYlwvEvMlDALbc82T0VVFn3ePorSWHk8MxRJPDZNIul\n\ttk/jOsDh560LM6bIRIqTBMEdhNTBd4m5UXBR98sS/tJgi3tqe/ulfsef5OquhgJdAR\n\tTlJpM52dsxRAl+kRgg3/3Oeufty/GojngWrKog+/mGJ8enSDneFlIFm3MD/RGqPeV5\n\ty8DFf9c+D7AK4MQ1DUFMbVQVfVO3Pqyh6xjxaTBLTlAKwKAT8TrN0aVNtoRBxh94Me\n\tG4Gb8nQTp+q8g==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1658309375;\n\tbh=3F8kijkQKUaJzP2qm/T9Tb2Ud88qMyW4KlZFikklvo4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=fcnTwe5Et1RRtQ8mIFpuxh1wU/AUd9NelJ0E+j8V211g5Gxjxyql0iFPtcsm+RI/X\n\tf2AMl5hva21RCHE5Gp1sPfhzYV+pZtCR03P5RCconNKwl97FceOcEvJMovtf+aBsKj\n\t7UHw2VCFUl3rG/PLsEUe7kzjfq4lzMqA3Id3wrag="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"fcnTwe5E\"; dkim-atps=neutral","Date":"Wed, 20 Jul 2022 12:29:00 +0300","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<YtfK3LH9UTQpcvdC@pendragon.ideasonboard.com>","References":"<20220719210258.5602-1-laurent.pinchart@ideasonboard.com>\n\t<20220720091750.uweqck3kzoue4jaq@uno.localdomain>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220720091750.uweqck3kzoue4jaq@uno.localdomain>","Subject":"Re: [libcamera-devel] [PATCH 1/2] licamera: controls: Drop\n\tunnecessary template qualifiers in documentation","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":23999,"web_url":"https://patchwork.libcamera.org/comment/23999/","msgid":"<48ffc208-7eb6-060e-c7d4-c17e17fc4735@ideasonboard.com>","date":"2022-07-20T09:56:52","subject":"Re: [libcamera-devel] [PATCH 1/2] licamera: controls: Drop\n\tunnecessary template qualifiers in documentation","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hi Laurent,\n\nThank you for the fixes\n\nOn 7/20/22 02:32, Laurent Pinchart via libcamera-devel wrote:\n> The doxygen document blocks of various ControlList function qualify\n> functions with full template and return type specification. This isn't\n> needed, and the extra verbosity makes the documentation blocks more\n> difficult to read. Drop the template qualifiers and return types. The\n> generated documentation is not affected.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nFor all the patches attached in the thread,\n\nReviewed-by: Umang Jain <umang.jain@ideasonboard.com>\n\n> ---\n>   src/libcamera/controls.cpp | 7 +++----\n>   1 file changed, 3 insertions(+), 4 deletions(-)\n>\n> diff --git a/src/libcamera/controls.cpp b/src/libcamera/controls.cpp\n> index 03ac6345247c..3fd535f204b2 100644\n> --- a/src/libcamera/controls.cpp\n> +++ b/src/libcamera/controls.cpp\n> @@ -954,7 +954,7 @@ bool ControlList::contains(unsigned int id) const\n>   }\n>   \n>   /**\n> - * \\fn template<typename T> T ControlList::get(const Control<T> &ctrl) const\n> + * \\fn ControlList::get(const Control<T> &ctrl) const\n>    * \\brief Get the value of control \\a ctrl\n>    * \\param[in] ctrl The control\n>    *\n> @@ -969,7 +969,7 @@ bool ControlList::contains(unsigned int id) const\n>    */\n>   \n>   /**\n> - * \\fn template<typename T, typename V> void ControlList::set(const Control<T> &ctrl, const V &value)\n> + * \\fn ControlList::set(const Control<T> &ctrl, const V &value)\n>    * \\brief Set the control \\a ctrl value to \\a value\n>    * \\param[in] ctrl The control\n>    * \\param[in] value The control value\n> @@ -983,8 +983,7 @@ bool ControlList::contains(unsigned int id) const\n>    */\n>   \n>   /**\n> - * \\fn template<typename T, typename V> \\\n> - * void ControlList::set(const Control<T> &ctrl, const std::initializer_list<V> &value)\n> + * \\fn ControlList::set(const Control<T> &ctrl, const std::initializer_list<V> &value)\n>    * \\copydoc ControlList::set(const Control<T> &ctrl, const V &value)\n>    */\n>   \n>\n> base-commit: 62e32042aee4042b6a931bc27a6ad11384b521f5","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 7CB5FBE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 20 Jul 2022 09:57:11 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AE1F063313;\n\tWed, 20 Jul 2022 11:57:10 +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 8331E60488\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Jul 2022 11:57:08 +0200 (CEST)","from [192.168.1.110] (unknown [110.226.27.196])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 039BF6DB;\n\tWed, 20 Jul 2022 11:57:06 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1658311030;\n\tbh=jGC/PfjT9H0aEwJeH+C3ngkPO58LNjvZ8/T9Ipm6FqY=;\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=FsiMyPlh6KQs8ZR6lL+VreP0cP93UjckVYQ9TpTc9MMUCnnSfAqpHhNvsCahPgSeB\n\tmpGQsq9JJS7bd/f0ePTDj/S/176R/1mb30DPpn34MIBdEmdwmlW9xdRTCPCnZ+97ti\n\tXjJi77pay0rObpKTKVGxCdM/pB8PDNzoNJt/l41e2sGRzoKGL8LA6idHasnMpKUaG/\n\ttgMf9MJbcr52zdeNyZscgQdnjMz3KKdczXxZNs9ZCwTHW7Y5W3mnhB/KFDB8azIQtc\n\td1zC3YHXAvTkN6Gks0wOK7WCdCEeCMWdY+80M2HFscQap/llURmQ9MNk8N1Sgf1Cfx\n\t9zSvX/ZBVjM5A==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1658311028;\n\tbh=jGC/PfjT9H0aEwJeH+C3ngkPO58LNjvZ8/T9Ipm6FqY=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=IHGNHFJhPQxKTgwbfsZxBRmwsBC0eNKKYWmZQxDmPLqUsaJtbmFuu+Q1pU7geI3wE\n\t3VJReu7JGf9m+A+9usAnVTgz9hMTjOCORuKBq8arEFoNuvjlxZoXoMOIQmHRgQhVuE\n\tJVSpKrGmCyzvIUCs86ltp6I9TMEzipBojj8N/uYk="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"IHGNHFJh\"; dkim-atps=neutral","Message-ID":"<48ffc208-7eb6-060e-c7d4-c17e17fc4735@ideasonboard.com>","Date":"Wed, 20 Jul 2022 15:26:52 +0530","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.4.1","Content-Language":"en-US","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20220719210258.5602-1-laurent.pinchart@ideasonboard.com>","In-Reply-To":"<20220719210258.5602-1-laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH 1/2] licamera: controls: Drop\n\tunnecessary template qualifiers in documentation","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":"Umang Jain via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Umang Jain <umang.jain@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]