[{"id":20476,"web_url":"https://patchwork.libcamera.org/comment/20476/","msgid":"<163519809544.1095920.10236483811876418866@Monstersaurus>","date":"2021-10-25T21:41:35","subject":"Re: [libcamera-devel] [PATCH v3 16/19] ipa: ipu3: ipa_context: Fix\n\tdoxygen references","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Jean-Michel Hautbois (2021-10-22 16:12:15)\n> The IPAFrameContext use unamed structures to group items.\n\n/use unamed/uses unnamed/\n\n> Doxygen can not reference the member variables of the container structures\n> through the variable names, and expects the structure type name. As this is not\n> given, the structure variables are referenced from the parent structure.\n> \n> Remove the member name from the annonymous type to allow Doxygen to\n> match the implementation from the documentation.\n> \n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> ---\n>  src/ipa/ipu3/ipa_context.cpp | 30 +++++++++++++++---------------\n>  1 file changed, 15 insertions(+), 15 deletions(-)\n> \n> diff --git a/src/ipa/ipu3/ipa_context.cpp b/src/ipa/ipu3/ipa_context.cpp\n> index 3e154e60..3c5aa89a 100644\n> --- a/src/ipa/ipu3/ipa_context.cpp\n> +++ b/src/ipa/ipu3/ipa_context.cpp\n> @@ -59,13 +59,13 @@ namespace libcamera::ipa::ipu3 {\n>   * \\struct IPASessionConfiguration::grid\n>   * \\brief Grid configuration of the IPA\n>   *\n> - * \\var IPASessionConfiguration::grid::bdsGrid\n> + * \\var IPASessionConfiguration::bdsGrid\n>   * \\brief Bayer Down Scaler grid plane config used by the kernel\n>   *\n> - * \\var IPASessionConfiguration::grid::bdsOutputSize\n> + * \\var IPASessionConfiguration::bdsOutputSize\n>   * \\brief BDS output size configured by the pipeline handler\n>   *\n> - * \\var IPASessionConfiguration::grid::stride\n> + * \\var IPASessionConfiguration::stride\n>   * \\brief Number of cells on one line including the ImgU padding\n>   */\n>  \n> @@ -73,16 +73,16 @@ namespace libcamera::ipa::ipu3 {\n>   * \\struct IPASessionConfiguration::agc\n>   * \\brief AGC parameters configuration of the IPA\n>   *\n> - * \\var IPASessionConfiguration::agc::minShutterSpeed\n> + * \\var IPASessionConfiguration::minShutterSpeed\n>   * \\brief Minimum shutter speed supported with the configured sensor\n>   *\n> - * \\var IPASessionConfiguration::grid::maxShutterSpeed\n> + * \\var IPASessionConfiguration::maxShutterSpeed\n>   * \\brief Maximum shutter speed supported with the configured sensor\n>   *\n> - * \\var IPASessionConfiguration::grid::minAnalogueGain\n> + * \\var IPASessionConfiguration::minAnalogueGain\n>   * \\brief Minimum analogue gain supported with the configured sensor\n>   *\n> - * \\var IPASessionConfiguration::grid::maxAnalogueGain\n> + * \\var IPASessionConfiguration::maxAnalogueGain\n>   * \\brief Maximum analogue gain supported with the configured sensor\n>   */\n>  \n> @@ -93,10 +93,10 @@ namespace libcamera::ipa::ipu3 {\n>   * The exposure and gain determined are expected to be applied to the sensor\n>   * at the earliest opportunity.\n>   *\n> - * \\var IPAFrameContext::agc::exposure\n> + * \\var IPAFrameContext::exposure\n>   * \\brief Exposure time expressed as a number of lines\n>   *\n> - * \\var IPAFrameContext::agc::gain\n> + * \\var IPAFrameContext::gain\n>   * \\brief Analogue gain multiplier\n>   *\n>   * The gain should be adapted to the sensor specific gain code before applying.\n> @@ -106,16 +106,16 @@ namespace libcamera::ipa::ipu3 {\n>   * \\struct IPAFrameContext::awb\n>   * \\brief Context for the Automatic White Balance algorithm\n>   *\n> - * \\struct IPAFrameContext::awb::gains\n> + * \\struct IPAFrameContext::gains\n>   * \\brief White balance gains\n>   *\n> - * \\var IPAFrameContext::awb::gains::red\n> + * \\var IPAFrameContext::red\n>   * \\brief White balance gain for R channel\n>   *\n> - * \\var IPAFrameContext::awb::gains::green\n> + * \\var IPAFrameContext::green\n>   * \\brief White balance gain for G channel\n>   *\n> - * \\var IPAFrameContext::awb::gains::blue\n> + * \\var IPAFrameContext::blue\n>   * \\brief White balance gain for B channel\n>   */\n>  \n> @@ -123,10 +123,10 @@ namespace libcamera::ipa::ipu3 {\n>   * \\struct IPAFrameContext::toneMapping\n>   * \\brief Context for ToneMapping and Gamma control\n>   *\n> - * \\var IPAFrameContext::toneMapping::gamma\n> + * \\var IPAFrameContext::gamma\n>   * \\brief Gamma value for the LUT\n>   *\n> - * \\var IPAFrameContext::toneMapping::gammaCorrection\n> + * \\var IPAFrameContext::gammaCorrection\n>   * \\brief Per-pixel tone mapping implemented as a LUT\n>   *\n>   * The LUT structure is defined by the IPU3 kernel interface. See\n> -- \n> 2.32.0\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 906CDBF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 25 Oct 2021 21:41:39 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4A80B64878;\n\tMon, 25 Oct 2021 23:41:39 +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 D6F0160125\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Oct 2021 23:41:37 +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 8C363E0A;\n\tMon, 25 Oct 2021 23:41:37 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"OaHtca+O\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1635198097;\n\tbh=y6JvYRhjXFOd6Wd2UXKEClmuC7zXJO7L2AudcgG3+c4=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=OaHtca+O4kHuMMXeUAjYYT8PcHvAqv0y8jslwuyJE/txp8ZNJ4ARXY3i2N2OtPcBB\n\tKc7RGIUhAhMVeKXF9fXCJuQeLswz6N/qlo2qgIesDPGulTkQJimr+qOGlG1QI7LRyY\n\t56tKjKidG+TbQuEPt4dMIgRSMGx8nONj3BzJNifk=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20211022151218.111966-17-jeanmichel.hautbois@ideasonboard.com>","References":"<20211022151218.111966-1-jeanmichel.hautbois@ideasonboard.com>\n\t<20211022151218.111966-17-jeanmichel.hautbois@ideasonboard.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Mon, 25 Oct 2021 22:41:35 +0100","Message-ID":"<163519809544.1095920.10236483811876418866@Monstersaurus>","User-Agent":"alot/0.9.1","Subject":"Re: [libcamera-devel] [PATCH v3 16/19] ipa: ipu3: ipa_context: Fix\n\tdoxygen references","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":20477,"web_url":"https://patchwork.libcamera.org/comment/20477/","msgid":"<YXckpCiKHtxmxpnA@pendragon.ideasonboard.com>","date":"2021-10-25T21:41:56","subject":"Re: [libcamera-devel] [PATCH v3 16/19] ipa: ipu3: ipa_context: Fix\n\tdoxygen references","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jean-Michel and Kieran,\n\nThank you for the patch.\n\nOn Fri, Oct 22, 2021 at 05:12:15PM +0200, Jean-Michel Hautbois wrote:\n\nMissing From: line here too.\n\n> The IPAFrameContext use unamed structures to group items.\n> Doxygen can not reference the member variables of the container structures\n> through the variable names, and expects the structure type name. As this is not\n> given, the structure variables are referenced from the parent structure.\n> \n> Remove the member name from the annonymous type to allow Doxygen to\n> match the implementation from the documentation.\n\nI had tested this, and the output was equally bad :-( It's either a bug\nin doxygen, or something we're doing wrong (or both). I'd drop this\npatch as it doesn't create a better output and risks creating\ncollisions, and report a bug to doxygen with a minimal test case\ninstead.\n\n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> ---\n>  src/ipa/ipu3/ipa_context.cpp | 30 +++++++++++++++---------------\n>  1 file changed, 15 insertions(+), 15 deletions(-)\n> \n> diff --git a/src/ipa/ipu3/ipa_context.cpp b/src/ipa/ipu3/ipa_context.cpp\n> index 3e154e60..3c5aa89a 100644\n> --- a/src/ipa/ipu3/ipa_context.cpp\n> +++ b/src/ipa/ipu3/ipa_context.cpp\n> @@ -59,13 +59,13 @@ namespace libcamera::ipa::ipu3 {\n>   * \\struct IPASessionConfiguration::grid\n>   * \\brief Grid configuration of the IPA\n>   *\n> - * \\var IPASessionConfiguration::grid::bdsGrid\n> + * \\var IPASessionConfiguration::bdsGrid\n>   * \\brief Bayer Down Scaler grid plane config used by the kernel\n>   *\n> - * \\var IPASessionConfiguration::grid::bdsOutputSize\n> + * \\var IPASessionConfiguration::bdsOutputSize\n>   * \\brief BDS output size configured by the pipeline handler\n>   *\n> - * \\var IPASessionConfiguration::grid::stride\n> + * \\var IPASessionConfiguration::stride\n>   * \\brief Number of cells on one line including the ImgU padding\n>   */\n>  \n> @@ -73,16 +73,16 @@ namespace libcamera::ipa::ipu3 {\n>   * \\struct IPASessionConfiguration::agc\n>   * \\brief AGC parameters configuration of the IPA\n>   *\n> - * \\var IPASessionConfiguration::agc::minShutterSpeed\n> + * \\var IPASessionConfiguration::minShutterSpeed\n>   * \\brief Minimum shutter speed supported with the configured sensor\n>   *\n> - * \\var IPASessionConfiguration::grid::maxShutterSpeed\n> + * \\var IPASessionConfiguration::maxShutterSpeed\n>   * \\brief Maximum shutter speed supported with the configured sensor\n>   *\n> - * \\var IPASessionConfiguration::grid::minAnalogueGain\n> + * \\var IPASessionConfiguration::minAnalogueGain\n>   * \\brief Minimum analogue gain supported with the configured sensor\n>   *\n> - * \\var IPASessionConfiguration::grid::maxAnalogueGain\n> + * \\var IPASessionConfiguration::maxAnalogueGain\n>   * \\brief Maximum analogue gain supported with the configured sensor\n>   */\n>  \n> @@ -93,10 +93,10 @@ namespace libcamera::ipa::ipu3 {\n>   * The exposure and gain determined are expected to be applied to the sensor\n>   * at the earliest opportunity.\n>   *\n> - * \\var IPAFrameContext::agc::exposure\n> + * \\var IPAFrameContext::exposure\n>   * \\brief Exposure time expressed as a number of lines\n>   *\n> - * \\var IPAFrameContext::agc::gain\n> + * \\var IPAFrameContext::gain\n>   * \\brief Analogue gain multiplier\n>   *\n>   * The gain should be adapted to the sensor specific gain code before applying.\n> @@ -106,16 +106,16 @@ namespace libcamera::ipa::ipu3 {\n>   * \\struct IPAFrameContext::awb\n>   * \\brief Context for the Automatic White Balance algorithm\n>   *\n> - * \\struct IPAFrameContext::awb::gains\n> + * \\struct IPAFrameContext::gains\n>   * \\brief White balance gains\n>   *\n> - * \\var IPAFrameContext::awb::gains::red\n> + * \\var IPAFrameContext::red\n>   * \\brief White balance gain for R channel\n>   *\n> - * \\var IPAFrameContext::awb::gains::green\n> + * \\var IPAFrameContext::green\n>   * \\brief White balance gain for G channel\n>   *\n> - * \\var IPAFrameContext::awb::gains::blue\n> + * \\var IPAFrameContext::blue\n>   * \\brief White balance gain for B channel\n>   */\n>  \n> @@ -123,10 +123,10 @@ namespace libcamera::ipa::ipu3 {\n>   * \\struct IPAFrameContext::toneMapping\n>   * \\brief Context for ToneMapping and Gamma control\n>   *\n> - * \\var IPAFrameContext::toneMapping::gamma\n> + * \\var IPAFrameContext::gamma\n>   * \\brief Gamma value for the LUT\n>   *\n> - * \\var IPAFrameContext::toneMapping::gammaCorrection\n> + * \\var IPAFrameContext::gammaCorrection\n>   * \\brief Per-pixel tone mapping implemented as a LUT\n>   *\n>   * The LUT structure is defined by the IPU3 kernel interface. See","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 0806DBF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 25 Oct 2021 21:42:21 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BBFB064878;\n\tMon, 25 Oct 2021 23:42:20 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F38F960125\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Oct 2021 23:42:18 +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 93ACCE0A;\n\tMon, 25 Oct 2021 23:42:18 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"DcbgSpGj\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1635198138;\n\tbh=bSrQAwewDhwI8b1dO8m3+wKsBRaMfq1ClqCEOnkmxu4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=DcbgSpGjrZw+f2rvkpBN27ndzvsgn2MdhVZCJnw1ajmTxL/np2A+2BxCZTaczK2U0\n\tiFxRrucbXdXht3woCa0R+t51dAVfXMJSXYn5QtNnnAIuer5rgoIOi3heMELz7h6Czg\n\tyo5Xt2NU9/1qtKQWBrOnDijjIckEnFi0yF3RauCw=","Date":"Tue, 26 Oct 2021 00:41:56 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","Message-ID":"<YXckpCiKHtxmxpnA@pendragon.ideasonboard.com>","References":"<20211022151218.111966-1-jeanmichel.hautbois@ideasonboard.com>\n\t<20211022151218.111966-17-jeanmichel.hautbois@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20211022151218.111966-17-jeanmichel.hautbois@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v3 16/19] ipa: ipu3: ipa_context: Fix\n\tdoxygen references","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":20503,"web_url":"https://patchwork.libcamera.org/comment/20503/","msgid":"<a0ea08ad-884e-5f03-adfe-5a6acbf72b51@ideasonboard.com>","date":"2021-10-26T06:57:50","subject":"Re: [libcamera-devel] [PATCH v3 16/19] ipa: ipu3: ipa_context: Fix\n\tdoxygen references","submitter":{"id":75,"url":"https://patchwork.libcamera.org/api/people/75/","name":"Jean-Michel Hautbois","email":"jeanmichel.hautbois@ideasonboard.com"},"content":"Hi Laurent,\n\nOn 25/10/2021 23:41, Laurent Pinchart wrote:\n> Hi Jean-Michel and Kieran,\n> \n> Thank you for the patch.\n> \n> On Fri, Oct 22, 2021 at 05:12:15PM +0200, Jean-Michel Hautbois wrote:\n> \n> Missing From: line here too.\n> \n\nIndeed...\n\n>> The IPAFrameContext use unamed structures to group items.\n>> Doxygen can not reference the member variables of the container structures\n>> through the variable names, and expects the structure type name. As this is not\n>> given, the structure variables are referenced from the parent structure.\n>>\n>> Remove the member name from the annonymous type to allow Doxygen to\n>> match the implementation from the documentation.\n> \n> I had tested this, and the output was equally bad :-( It's either a bug\n> in doxygen, or something we're doing wrong (or both). I'd drop this\n> patch as it doesn't create a better output and risks creating\n> collisions, and report a bug to doxygen with a minimal test case\n> instead.\n\nWell, dropping it means we will have some warnings when building:\n[9/9] Generating doxygen with a custom command\n/home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:62: warning: no uniquely \nmatching class member found for\n   libcamera::ipa::ipu3::IPASessionConfiguration::grid::bdsGrid\n\n/home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:65: warning: no uniquely \nmatching class member found for\n   libcamera::ipa::ipu3::IPASessionConfiguration::grid::bdsOutputSize\n\n/home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:68: warning: no uniquely \nmatching class member found for\n   libcamera::ipa::ipu3::IPASessionConfiguration::grid::stride\n\n/home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:76: warning: no uniquely \nmatching class member found for\n   libcamera::ipa::ipu3::IPASessionConfiguration::agc::minShutterSpeed\n\n/home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:79: warning: no uniquely \nmatching class member found for\n   libcamera::ipa::ipu3::IPASessionConfiguration::grid::maxShutterSpeed\n\n/home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:82: warning: no uniquely \nmatching class member found for\n   libcamera::ipa::ipu3::IPASessionConfiguration::grid::minAnalogueGain\n\n/home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:85: warning: no uniquely \nmatching class member found for\n   libcamera::ipa::ipu3::IPASessionConfiguration::grid::maxAnalogueGain\n\n/home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:96: warning: no uniquely \nmatching class member found for\n   libcamera::ipa::ipu3::IPAFrameContext::agc::exposure\n\n/home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:99: warning: no uniquely \nmatching class member found for\n   libcamera::ipa::ipu3::IPAFrameContext::agc::gain\n\n/home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:112: warning: no \nuniquely matching class member found for\n   gains::red\n\n/home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:115: warning: no \nuniquely matching class member found for\n   gains::green\n\n/home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:118: warning: no \nuniquely matching class member found for\n   gains::blue\n\n/home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:126: warning: no \nuniquely matching class member found for\n   libcamera::ipa::ipu3::IPAFrameContext::toneMapping::gamma\n\n/home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:129: warning: no \nuniquely matching class member found for\n   libcamera::ipa::ipu3::IPAFrameContext::toneMapping::gammaCorrection\n\n> \n>> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>> ---\n>>   src/ipa/ipu3/ipa_context.cpp | 30 +++++++++++++++---------------\n>>   1 file changed, 15 insertions(+), 15 deletions(-)\n>>\n>> diff --git a/src/ipa/ipu3/ipa_context.cpp b/src/ipa/ipu3/ipa_context.cpp\n>> index 3e154e60..3c5aa89a 100644\n>> --- a/src/ipa/ipu3/ipa_context.cpp\n>> +++ b/src/ipa/ipu3/ipa_context.cpp\n>> @@ -59,13 +59,13 @@ namespace libcamera::ipa::ipu3 {\n>>    * \\struct IPASessionConfiguration::grid\n>>    * \\brief Grid configuration of the IPA\n>>    *\n>> - * \\var IPASessionConfiguration::grid::bdsGrid\n>> + * \\var IPASessionConfiguration::bdsGrid\n>>    * \\brief Bayer Down Scaler grid plane config used by the kernel\n>>    *\n>> - * \\var IPASessionConfiguration::grid::bdsOutputSize\n>> + * \\var IPASessionConfiguration::bdsOutputSize\n>>    * \\brief BDS output size configured by the pipeline handler\n>>    *\n>> - * \\var IPASessionConfiguration::grid::stride\n>> + * \\var IPASessionConfiguration::stride\n>>    * \\brief Number of cells on one line including the ImgU padding\n>>    */\n>>   \n>> @@ -73,16 +73,16 @@ namespace libcamera::ipa::ipu3 {\n>>    * \\struct IPASessionConfiguration::agc\n>>    * \\brief AGC parameters configuration of the IPA\n>>    *\n>> - * \\var IPASessionConfiguration::agc::minShutterSpeed\n>> + * \\var IPASessionConfiguration::minShutterSpeed\n>>    * \\brief Minimum shutter speed supported with the configured sensor\n>>    *\n>> - * \\var IPASessionConfiguration::grid::maxShutterSpeed\n>> + * \\var IPASessionConfiguration::maxShutterSpeed\n>>    * \\brief Maximum shutter speed supported with the configured sensor\n>>    *\n>> - * \\var IPASessionConfiguration::grid::minAnalogueGain\n>> + * \\var IPASessionConfiguration::minAnalogueGain\n>>    * \\brief Minimum analogue gain supported with the configured sensor\n>>    *\n>> - * \\var IPASessionConfiguration::grid::maxAnalogueGain\n>> + * \\var IPASessionConfiguration::maxAnalogueGain\n>>    * \\brief Maximum analogue gain supported with the configured sensor\n>>    */\n>>   \n>> @@ -93,10 +93,10 @@ namespace libcamera::ipa::ipu3 {\n>>    * The exposure and gain determined are expected to be applied to the sensor\n>>    * at the earliest opportunity.\n>>    *\n>> - * \\var IPAFrameContext::agc::exposure\n>> + * \\var IPAFrameContext::exposure\n>>    * \\brief Exposure time expressed as a number of lines\n>>    *\n>> - * \\var IPAFrameContext::agc::gain\n>> + * \\var IPAFrameContext::gain\n>>    * \\brief Analogue gain multiplier\n>>    *\n>>    * The gain should be adapted to the sensor specific gain code before applying.\n>> @@ -106,16 +106,16 @@ namespace libcamera::ipa::ipu3 {\n>>    * \\struct IPAFrameContext::awb\n>>    * \\brief Context for the Automatic White Balance algorithm\n>>    *\n>> - * \\struct IPAFrameContext::awb::gains\n>> + * \\struct IPAFrameContext::gains\n>>    * \\brief White balance gains\n>>    *\n>> - * \\var IPAFrameContext::awb::gains::red\n>> + * \\var IPAFrameContext::red\n>>    * \\brief White balance gain for R channel\n>>    *\n>> - * \\var IPAFrameContext::awb::gains::green\n>> + * \\var IPAFrameContext::green\n>>    * \\brief White balance gain for G channel\n>>    *\n>> - * \\var IPAFrameContext::awb::gains::blue\n>> + * \\var IPAFrameContext::blue\n>>    * \\brief White balance gain for B channel\n>>    */\n>>   \n>> @@ -123,10 +123,10 @@ namespace libcamera::ipa::ipu3 {\n>>    * \\struct IPAFrameContext::toneMapping\n>>    * \\brief Context for ToneMapping and Gamma control\n>>    *\n>> - * \\var IPAFrameContext::toneMapping::gamma\n>> + * \\var IPAFrameContext::gamma\n>>    * \\brief Gamma value for the LUT\n>>    *\n>> - * \\var IPAFrameContext::toneMapping::gammaCorrection\n>> + * \\var IPAFrameContext::gammaCorrection\n>>    * \\brief Per-pixel tone mapping implemented as a LUT\n>>    *\n>>    * The LUT structure is defined by the IPU3 kernel interface. See\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 A6913BDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 26 Oct 2021 06:57:55 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id F312964878;\n\tTue, 26 Oct 2021 08:57:54 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 974366486B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Oct 2021 08:57:53 +0200 (CEST)","from [IPV6:2a01:e0a:169:7140:dce3:eb54:18d7:6f3d] (unknown\n\t[IPv6:2a01:e0a:169:7140:dce3:eb54:18d7:6f3d])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 3564C3F0;\n\tTue, 26 Oct 2021 08:57:53 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"m87pPKKO\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1635231473;\n\tbh=llT+rJg26jPiT4MXdjnQjfY7lEkuUv7t0w2+Imvg4m4=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=m87pPKKO6o0pqXVopKfr5eB6ItZHeDHSWtrZxGtFpF8z6KuTRaozEHVmrrzuxQzJg\n\t8qLDXJc5fCpUtqkMvHKIIXkS9JeYSvNHmxS1ezo9RMMDGwsDLSae5fjv7hDfvz1Swz\n\tsIBesEo0yDV4Ams4PcnfZFIod/KtYc6I9FxsAHC4=","Message-ID":"<a0ea08ad-884e-5f03-adfe-5a6acbf72b51@ideasonboard.com>","Date":"Tue, 26 Oct 2021 08:57:50 +0200","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.1.2","Content-Language":"en-US","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","References":"<20211022151218.111966-1-jeanmichel.hautbois@ideasonboard.com>\n\t<20211022151218.111966-17-jeanmichel.hautbois@ideasonboard.com>\n\t<YXckpCiKHtxmxpnA@pendragon.ideasonboard.com>","From":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","In-Reply-To":"<YXckpCiKHtxmxpnA@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH v3 16/19] ipa: ipu3: ipa_context: Fix\n\tdoxygen references","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":20522,"web_url":"https://patchwork.libcamera.org/comment/20522/","msgid":"<YXfHP9ukFOaU1eON@pendragon.ideasonboard.com>","date":"2021-10-26T09:15:43","subject":"Re: [libcamera-devel] [PATCH v3 16/19] ipa: ipu3: ipa_context: Fix\n\tdoxygen references","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jean-Michel,\n\nOn Tue, Oct 26, 2021 at 08:57:50AM +0200, Jean-Michel Hautbois wrote:\n> On 25/10/2021 23:41, Laurent Pinchart wrote:\n> > Hi Jean-Michel and Kieran,\n> > \n> > Thank you for the patch.\n> > \n> > On Fri, Oct 22, 2021 at 05:12:15PM +0200, Jean-Michel Hautbois wrote:\n> > \n> > Missing From: line here too.\n> \n> Indeed...\n> \n> >> The IPAFrameContext use unamed structures to group items.\n> >> Doxygen can not reference the member variables of the container structures\n> >> through the variable names, and expects the structure type name. As this is not\n> >> given, the structure variables are referenced from the parent structure.\n> >>\n> >> Remove the member name from the annonymous type to allow Doxygen to\n> >> match the implementation from the documentation.\n> > \n> > I had tested this, and the output was equally bad :-( It's either a bug\n> > in doxygen, or something we're doing wrong (or both). I'd drop this\n> > patch as it doesn't create a better output and risks creating\n> > collisions, and report a bug to doxygen with a minimal test case\n> > instead.\n> \n> Well, dropping it means we will have some warnings when building:\n> [9/9] Generating doxygen with a custom command\n\n:-(\n\nI seem to recall that the warning disappeared with the following change:\n\n- * \\var IPASessionConfiguration::grid::bdsGrid\n+ * \\var IPASessionConfiguration::grid.bdsGrid\n\n(or could be IPASessionConfiguration.grid::bdsGrid, I don't remember)\n\nThe generated document is still not right though, but it's not worse\nthan with this patch, and we retain the context. If this works, I'd\nprefer that until the issue is fixed in doxygen.\n\nWe need to file a bug for doxygen , could you produce a minimal test\ncase ?\n\n> /home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:62: warning: no uniquely \n> matching class member found for\n>    libcamera::ipa::ipu3::IPASessionConfiguration::grid::bdsGrid\n> \n> /home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:65: warning: no uniquely \n> matching class member found for\n>    libcamera::ipa::ipu3::IPASessionConfiguration::grid::bdsOutputSize\n> \n> /home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:68: warning: no uniquely \n> matching class member found for\n>    libcamera::ipa::ipu3::IPASessionConfiguration::grid::stride\n> \n> /home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:76: warning: no uniquely \n> matching class member found for\n>    libcamera::ipa::ipu3::IPASessionConfiguration::agc::minShutterSpeed\n> \n> /home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:79: warning: no uniquely \n> matching class member found for\n>    libcamera::ipa::ipu3::IPASessionConfiguration::grid::maxShutterSpeed\n> \n> /home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:82: warning: no uniquely \n> matching class member found for\n>    libcamera::ipa::ipu3::IPASessionConfiguration::grid::minAnalogueGain\n> \n> /home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:85: warning: no uniquely \n> matching class member found for\n>    libcamera::ipa::ipu3::IPASessionConfiguration::grid::maxAnalogueGain\n> \n> /home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:96: warning: no uniquely \n> matching class member found for\n>    libcamera::ipa::ipu3::IPAFrameContext::agc::exposure\n> \n> /home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:99: warning: no uniquely \n> matching class member found for\n>    libcamera::ipa::ipu3::IPAFrameContext::agc::gain\n> \n> /home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:112: warning: no \n> uniquely matching class member found for\n>    gains::red\n> \n> /home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:115: warning: no \n> uniquely matching class member found for\n>    gains::green\n> \n> /home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:118: warning: no \n> uniquely matching class member found for\n>    gains::blue\n> \n> /home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:126: warning: no \n> uniquely matching class member found for\n>    libcamera::ipa::ipu3::IPAFrameContext::toneMapping::gamma\n> \n> /home/jm/libcamera/src/ipa/ipu3/ipa_context.cpp:129: warning: no \n> uniquely matching class member found for\n>    libcamera::ipa::ipu3::IPAFrameContext::toneMapping::gammaCorrection\n> \n> >> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >> ---\n> >>   src/ipa/ipu3/ipa_context.cpp | 30 +++++++++++++++---------------\n> >>   1 file changed, 15 insertions(+), 15 deletions(-)\n> >>\n> >> diff --git a/src/ipa/ipu3/ipa_context.cpp b/src/ipa/ipu3/ipa_context.cpp\n> >> index 3e154e60..3c5aa89a 100644\n> >> --- a/src/ipa/ipu3/ipa_context.cpp\n> >> +++ b/src/ipa/ipu3/ipa_context.cpp\n> >> @@ -59,13 +59,13 @@ namespace libcamera::ipa::ipu3 {\n> >>    * \\struct IPASessionConfiguration::grid\n> >>    * \\brief Grid configuration of the IPA\n> >>    *\n> >> - * \\var IPASessionConfiguration::grid::bdsGrid\n> >> + * \\var IPASessionConfiguration::bdsGrid\n> >>    * \\brief Bayer Down Scaler grid plane config used by the kernel\n> >>    *\n> >> - * \\var IPASessionConfiguration::grid::bdsOutputSize\n> >> + * \\var IPASessionConfiguration::bdsOutputSize\n> >>    * \\brief BDS output size configured by the pipeline handler\n> >>    *\n> >> - * \\var IPASessionConfiguration::grid::stride\n> >> + * \\var IPASessionConfiguration::stride\n> >>    * \\brief Number of cells on one line including the ImgU padding\n> >>    */\n> >>   \n> >> @@ -73,16 +73,16 @@ namespace libcamera::ipa::ipu3 {\n> >>    * \\struct IPASessionConfiguration::agc\n> >>    * \\brief AGC parameters configuration of the IPA\n> >>    *\n> >> - * \\var IPASessionConfiguration::agc::minShutterSpeed\n> >> + * \\var IPASessionConfiguration::minShutterSpeed\n> >>    * \\brief Minimum shutter speed supported with the configured sensor\n> >>    *\n> >> - * \\var IPASessionConfiguration::grid::maxShutterSpeed\n> >> + * \\var IPASessionConfiguration::maxShutterSpeed\n> >>    * \\brief Maximum shutter speed supported with the configured sensor\n> >>    *\n> >> - * \\var IPASessionConfiguration::grid::minAnalogueGain\n> >> + * \\var IPASessionConfiguration::minAnalogueGain\n> >>    * \\brief Minimum analogue gain supported with the configured sensor\n> >>    *\n> >> - * \\var IPASessionConfiguration::grid::maxAnalogueGain\n> >> + * \\var IPASessionConfiguration::maxAnalogueGain\n> >>    * \\brief Maximum analogue gain supported with the configured sensor\n> >>    */\n> >>   \n> >> @@ -93,10 +93,10 @@ namespace libcamera::ipa::ipu3 {\n> >>    * The exposure and gain determined are expected to be applied to the sensor\n> >>    * at the earliest opportunity.\n> >>    *\n> >> - * \\var IPAFrameContext::agc::exposure\n> >> + * \\var IPAFrameContext::exposure\n> >>    * \\brief Exposure time expressed as a number of lines\n> >>    *\n> >> - * \\var IPAFrameContext::agc::gain\n> >> + * \\var IPAFrameContext::gain\n> >>    * \\brief Analogue gain multiplier\n> >>    *\n> >>    * The gain should be adapted to the sensor specific gain code before applying.\n> >> @@ -106,16 +106,16 @@ namespace libcamera::ipa::ipu3 {\n> >>    * \\struct IPAFrameContext::awb\n> >>    * \\brief Context for the Automatic White Balance algorithm\n> >>    *\n> >> - * \\struct IPAFrameContext::awb::gains\n> >> + * \\struct IPAFrameContext::gains\n> >>    * \\brief White balance gains\n> >>    *\n> >> - * \\var IPAFrameContext::awb::gains::red\n> >> + * \\var IPAFrameContext::red\n> >>    * \\brief White balance gain for R channel\n> >>    *\n> >> - * \\var IPAFrameContext::awb::gains::green\n> >> + * \\var IPAFrameContext::green\n> >>    * \\brief White balance gain for G channel\n> >>    *\n> >> - * \\var IPAFrameContext::awb::gains::blue\n> >> + * \\var IPAFrameContext::blue\n> >>    * \\brief White balance gain for B channel\n> >>    */\n> >>   \n> >> @@ -123,10 +123,10 @@ namespace libcamera::ipa::ipu3 {\n> >>    * \\struct IPAFrameContext::toneMapping\n> >>    * \\brief Context for ToneMapping and Gamma control\n> >>    *\n> >> - * \\var IPAFrameContext::toneMapping::gamma\n> >> + * \\var IPAFrameContext::gamma\n> >>    * \\brief Gamma value for the LUT\n> >>    *\n> >> - * \\var IPAFrameContext::toneMapping::gammaCorrection\n> >> + * \\var IPAFrameContext::gammaCorrection\n> >>    * \\brief Per-pixel tone mapping implemented as a LUT\n> >>    *\n> >>    * The LUT structure is defined by the IPU3 kernel interface. See","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 4646DBF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 26 Oct 2021 09:16:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8B67064878;\n\tTue, 26 Oct 2021 11:16:08 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8130960123\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Oct 2021 11:16:06 +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 F3E2E292;\n\tTue, 26 Oct 2021 11:16:05 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"b/MRb6Ox\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1635239766;\n\tbh=qCQRj2BwLFYruwEb4EoDwBXLE+jwAkcTV953zAGJ1rc=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=b/MRb6OxjmQ0yy+htwJZlZfNzKuGkvwU4Yy7lmSF0GAU6qIHj+jnOAACfuIDcMgFg\n\t5hyiKxSxqK5z4LQkwMGybEvi86/DTQma66u8u+ujgxziOGoVf+OOLvQr6yH73u8rtz\n\tklVcA382HZu95k9H5TohtIwKG8Wt6dYPYfobjkL4=","Date":"Tue, 26 Oct 2021 12:15:43 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","Message-ID":"<YXfHP9ukFOaU1eON@pendragon.ideasonboard.com>","References":"<20211022151218.111966-1-jeanmichel.hautbois@ideasonboard.com>\n\t<20211022151218.111966-17-jeanmichel.hautbois@ideasonboard.com>\n\t<YXckpCiKHtxmxpnA@pendragon.ideasonboard.com>\n\t<a0ea08ad-884e-5f03-adfe-5a6acbf72b51@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<a0ea08ad-884e-5f03-adfe-5a6acbf72b51@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v3 16/19] ipa: ipu3: ipa_context: Fix\n\tdoxygen references","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]