[{"id":35437,"web_url":"https://patchwork.libcamera.org/comment/35437/","msgid":"<175525579545.560048.9417029671396904046@ping.linuxembedded.co.uk>","date":"2025-08-15T11:03:15","subject":"Re: [PATCH v3 08/19] libipa: agc_mean_luminance: Configure the\n\texposure mode helpers","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Stefan Klug (2025-08-15 11:29:28)\n> Add a function to configure the exposure mode helpers with the line\n> length and sensor helper to take quantization effects into account.\n> \n> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>\n> \n\nI'd be tempted to merge this patch with an update that makes all users\nof AgcMeanLuminance use it correctly ... but perhaps that comes after...\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> ---\n> \n> Changes in v3:\n> - Renamed lineLength to lineDuration\n> - Collected tag\n> ---\n>  src/ipa/libipa/agc_mean_luminance.cpp | 15 +++++++++++++++\n>  src/ipa/libipa/agc_mean_luminance.h   |  1 +\n>  2 files changed, 16 insertions(+)\n> \n> diff --git a/src/ipa/libipa/agc_mean_luminance.cpp b/src/ipa/libipa/agc_mean_luminance.cpp\n> index fce1a5064870..1cbb3a0f9818 100644\n> --- a/src/ipa/libipa/agc_mean_luminance.cpp\n> +++ b/src/ipa/libipa/agc_mean_luminance.cpp\n> @@ -311,6 +311,21 @@ int AgcMeanLuminance::parseExposureModes(const YamlObject &tuningData)\n>         return 0;\n>  }\n>  \n> +/**\n> + * \\brief Configure the exposure mode helpers\n> + * \\param[in] lineLength The sensor line length\n> + * \\param[in] sensorHelper The sensor helper\n> + *\n> + * This function configures the exposure mode helpers so they can correctly\n> + * take quantization effects into account.\n> + */\n> +void AgcMeanLuminance::configure(utils::Duration lineDuration,\n> +                                const CameraSensorHelper *sensorHelper)\n> +{\n> +       for (auto &[id, helper] : exposureModeHelpers_)\n> +               helper->configure(lineDuration, sensorHelper);\n> +}\n> +\n>  /**\n>   * \\brief Parse tuning data for AeConstraintMode and AeExposureMode controls\n>   * \\param[in] tuningData the YamlObject representing the tuning data\n> diff --git a/src/ipa/libipa/agc_mean_luminance.h b/src/ipa/libipa/agc_mean_luminance.h\n> index cad7ef845487..49985481ac51 100644\n> --- a/src/ipa/libipa/agc_mean_luminance.h\n> +++ b/src/ipa/libipa/agc_mean_luminance.h\n> @@ -42,6 +42,7 @@ public:\n>                 double yTarget;\n>         };\n>  \n> +       void configure(utils::Duration lineDuration, const CameraSensorHelper *sensorHelper);\n>         int parseTuningData(const YamlObject &tuningData);\n>  \n>         void setExposureCompensation(double gain)\n> -- \n> 2.48.1\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 09DA8BDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 15 Aug 2025 11:03:21 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5D0E96925A;\n\tFri, 15 Aug 2025 13:03:20 +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 11D4B61443\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 15 Aug 2025 13:03:19 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 13186605;\n\tFri, 15 Aug 2025 13:02:24 +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=\"FIFyx/kW\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1755255744;\n\tbh=S2cNJ8kAWPojrJI309uzf5UjIFToUeNHfh9S+pZBAEQ=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=FIFyx/kWSQSmK9erGfClLIE5OtSo56KTe20uJV6VAnm6CitxVwghCTebR7BRcT+Gz\n\t9LPSrGtT9Qva66zzpexvValmGSRJdHhG0mSPTRPLk7GmYGHVJLQnCvHOhtMRRqGcij\n\tODuuWbQGHZN1NfQmqChzQB5JX7DfMUmK/XlI08M8=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20250815102945.1602071-9-stefan.klug@ideasonboard.com>","References":"<20250815102945.1602071-1-stefan.klug@ideasonboard.com>\n\t<20250815102945.1602071-9-stefan.klug@ideasonboard.com>","Subject":"Re: [PATCH v3 08/19] libipa: agc_mean_luminance: Configure the\n\texposure mode helpers","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Stefan Klug <stefan.klug@ideasonboard.com>,\n\tDaniel Scally <dan.scally@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Fri, 15 Aug 2025 12:03:15 +0100","Message-ID":"<175525579545.560048.9417029671396904046@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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":35438,"web_url":"https://patchwork.libcamera.org/comment/35438/","msgid":"<175525819781.560048.13255076323220552564@ping.linuxembedded.co.uk>","date":"2025-08-15T11:43:17","subject":"Re: [PATCH v3 08/19] libipa: agc_mean_luminance: Configure the\n\texposure mode helpers","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Kieran Bingham (2025-08-15 12:03:15)\n> Quoting Stefan Klug (2025-08-15 11:29:28)\n> > Add a function to configure the exposure mode helpers with the line\n> > length and sensor helper to take quantization effects into account.\n> > \n> > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> > Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>\n> > \n> \n> I'd be tempted to merge this patch with an update that makes all users\n> of AgcMeanLuminance use it correctly ... but perhaps that comes after...\n> \n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> > ---\n> > \n> > Changes in v3:\n> > - Renamed lineLength to lineDuration\n> > - Collected tag\n> > ---\n> >  src/ipa/libipa/agc_mean_luminance.cpp | 15 +++++++++++++++\n> >  src/ipa/libipa/agc_mean_luminance.h   |  1 +\n> >  2 files changed, 16 insertions(+)\n> > \n> > diff --git a/src/ipa/libipa/agc_mean_luminance.cpp b/src/ipa/libipa/agc_mean_luminance.cpp\n> > index fce1a5064870..1cbb3a0f9818 100644\n> > --- a/src/ipa/libipa/agc_mean_luminance.cpp\n> > +++ b/src/ipa/libipa/agc_mean_luminance.cpp\n> > @@ -311,6 +311,21 @@ int AgcMeanLuminance::parseExposureModes(const YamlObject &tuningData)\n> >         return 0;\n> >  }\n> >  \n> > +/**\n> > + * \\brief Configure the exposure mode helpers\n> > + * \\param[in] lineLength The sensor line length\n\nThis is now lineDuration:\n\nFAILED: Documentation/internal-api-html\n/usr/bin/doxygen Documentation/Doxyfile-internal\n/builds/camera/libcamera/src/ipa/libipa/agc_mean_luminance.cpp:317: error: argument 'lineLength' of command @param is not found in the argument list of libcamera::ipa::AgcMeanLuminance::configure(utils::Duration lineDuration, const CameraSensorHelper *sensorHelper) (warning treated as error, aborting now)\n\n\n> > + * \\param[in] sensorHelper The sensor helper\n> > + *\n> > + * This function configures the exposure mode helpers so they can correctly\n> > + * take quantization effects into account.\n> > + */\n> > +void AgcMeanLuminance::configure(utils::Duration lineDuration,\n> > +                                const CameraSensorHelper *sensorHelper)\n> > +{\n> > +       for (auto &[id, helper] : exposureModeHelpers_)\n> > +               helper->configure(lineDuration, sensorHelper);\n> > +}\n> > +\n> >  /**\n> >   * \\brief Parse tuning data for AeConstraintMode and AeExposureMode controls\n> >   * \\param[in] tuningData the YamlObject representing the tuning data\n> > diff --git a/src/ipa/libipa/agc_mean_luminance.h b/src/ipa/libipa/agc_mean_luminance.h\n> > index cad7ef845487..49985481ac51 100644\n> > --- a/src/ipa/libipa/agc_mean_luminance.h\n> > +++ b/src/ipa/libipa/agc_mean_luminance.h\n> > @@ -42,6 +42,7 @@ public:\n> >                 double yTarget;\n> >         };\n> >  \n> > +       void configure(utils::Duration lineDuration, const CameraSensorHelper *sensorHelper);\n> >         int parseTuningData(const YamlObject &tuningData);\n> >  \n> >         void setExposureCompensation(double gain)\n> > -- \n> > 2.48.1\n> >","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id A66FFBDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 15 Aug 2025 11:43:23 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C0A9469257;\n\tFri, 15 Aug 2025 13:43:22 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2C44B61443\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 15 Aug 2025 13:43:21 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 18024605;\n\tFri, 15 Aug 2025 13:42:26 +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=\"FQglHHDA\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1755258146;\n\tbh=w+RQA5FBLLm0ST6Cj0J7TtSY2U4hE6vyd2fNiHRjLqg=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=FQglHHDAMEEA5jj6iIjjwj3jDmQ/QDDjDANuSYO0LRO99wThHwukQgTJB6LNdhAJy\n\tiQECfBbp8Nswb5NQOXvAu3vakyljF3KNZCovzitlFhDYz2IL6GijBA4j8xG25qfVYR\n\tgOR+B5QnaBQtqwnCQaaTIxYCd6FWIzFzMU4RDn8M=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<175525579545.560048.9417029671396904046@ping.linuxembedded.co.uk>","References":"<20250815102945.1602071-1-stefan.klug@ideasonboard.com>\n\t<20250815102945.1602071-9-stefan.klug@ideasonboard.com>\n\t<175525579545.560048.9417029671396904046@ping.linuxembedded.co.uk>","Subject":"Re: [PATCH v3 08/19] libipa: agc_mean_luminance: Configure the\n\texposure mode helpers","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Stefan Klug <stefan.klug@ideasonboard.com>,\n\tDaniel Scally <dan.scally@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Fri, 15 Aug 2025 12:43:17 +0100","Message-ID":"<175525819781.560048.13255076323220552564@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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":35462,"web_url":"https://patchwork.libcamera.org/comment/35462/","msgid":"<175550301843.1970129.17584174511334112816@localhost>","date":"2025-08-18T07:43:38","subject":"Re: [PATCH v3 08/19] libipa: agc_mean_luminance: Configure the\n\texposure mode helpers","submitter":{"id":184,"url":"https://patchwork.libcamera.org/api/people/184/","name":"Stefan Klug","email":"stefan.klug@ideasonboard.com"},"content":"Quoting Kieran Bingham (2025-08-15 13:43:17)\n> Quoting Kieran Bingham (2025-08-15 12:03:15)\n> > Quoting Stefan Klug (2025-08-15 11:29:28)\n> > > Add a function to configure the exposure mode helpers with the line\n> > > length and sensor helper to take quantization effects into account.\n> > > \n> > > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> > > Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>\n> > > \n> > \n> > I'd be tempted to merge this patch with an update that makes all users\n> > of AgcMeanLuminance use it correctly ... but perhaps that comes after...\n> > \n> > \n> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > \n> > > ---\n> > > \n> > > Changes in v3:\n> > > - Renamed lineLength to lineDuration\n> > > - Collected tag\n> > > ---\n> > >  src/ipa/libipa/agc_mean_luminance.cpp | 15 +++++++++++++++\n> > >  src/ipa/libipa/agc_mean_luminance.h   |  1 +\n> > >  2 files changed, 16 insertions(+)\n> > > \n> > > diff --git a/src/ipa/libipa/agc_mean_luminance.cpp b/src/ipa/libipa/agc_mean_luminance.cpp\n> > > index fce1a5064870..1cbb3a0f9818 100644\n> > > --- a/src/ipa/libipa/agc_mean_luminance.cpp\n> > > +++ b/src/ipa/libipa/agc_mean_luminance.cpp\n> > > @@ -311,6 +311,21 @@ int AgcMeanLuminance::parseExposureModes(const YamlObject &tuningData)\n> > >         return 0;\n> > >  }\n> > >  \n> > > +/**\n> > > + * \\brief Configure the exposure mode helpers\n> > > + * \\param[in] lineLength The sensor line length\n> \n> This is now lineDuration:\n> \n> FAILED: Documentation/internal-api-html\n> /usr/bin/doxygen Documentation/Doxyfile-internal\n> /builds/camera/libcamera/src/ipa/libipa/agc_mean_luminance.cpp:317: error: argument 'lineLength' of command @param is not found in the argument list of libcamera::ipa::AgcMeanLuminance::configure(utils::Duration lineDuration, const CameraSensorHelper *sensorHelper) (warning treated as error, aborting now)\n> \n\nHah, I quickly glanced at the failing pipeline and thought it was a\ncompiler issue, because it only happened on one compiler. Didin't\nrealize doxygen is only built once. I fixed it for v4.\n\nThanks,\nStefan\n\n> \n> > > + * \\param[in] sensorHelper The sensor helper\n> > > + *\n> > > + * This function configures the exposure mode helpers so they can correctly\n> > > + * take quantization effects into account.\n> > > + */\n> > > +void AgcMeanLuminance::configure(utils::Duration lineDuration,\n> > > +                                const CameraSensorHelper *sensorHelper)\n> > > +{\n> > > +       for (auto &[id, helper] : exposureModeHelpers_)\n> > > +               helper->configure(lineDuration, sensorHelper);\n> > > +}\n> > > +\n> > >  /**\n> > >   * \\brief Parse tuning data for AeConstraintMode and AeExposureMode controls\n> > >   * \\param[in] tuningData the YamlObject representing the tuning data\n> > > diff --git a/src/ipa/libipa/agc_mean_luminance.h b/src/ipa/libipa/agc_mean_luminance.h\n> > > index cad7ef845487..49985481ac51 100644\n> > > --- a/src/ipa/libipa/agc_mean_luminance.h\n> > > +++ b/src/ipa/libipa/agc_mean_luminance.h\n> > > @@ -42,6 +42,7 @@ public:\n> > >                 double yTarget;\n> > >         };\n> > >  \n> > > +       void configure(utils::Duration lineDuration, const CameraSensorHelper *sensorHelper);\n> > >         int parseTuningData(const YamlObject &tuningData);\n> > >  \n> > >         void setExposureCompensation(double gain)\n> > > -- \n> > > 2.48.1\n> > >","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 73DC4BDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 18 Aug 2025 07:43:46 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 913616925B;\n\tMon, 18 Aug 2025 09:43:44 +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 11B6D6924E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 18 Aug 2025 09:43:41 +0200 (CEST)","from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:766d:a405:f64e:fe3a])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 7C4E817D1; \n\tMon, 18 Aug 2025 09:42:44 +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=\"dW+mN/ni\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1755502964;\n\tbh=SN5le5UmH+IlRXOv2z9qWDTwxVaZRwhuB2bHcfqyNYg=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=dW+mN/nicE8W4+L6YrBlJxuccI7fu+v+jTWhD6/anbrP9USRsrTrDIY77ZshkJjAX\n\tDOrx3ztq0z2gJYD/k8cBb0rYFC80e60S0p1RbwZHJ0LTHXMDC+Coexgy/5Fyz8PjYX\n\tiTmuKi2sj1xl7atSnrWeuUg07uMDXCQ1dcUcM0Ac=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<175525819781.560048.13255076323220552564@ping.linuxembedded.co.uk>","References":"<20250815102945.1602071-1-stefan.klug@ideasonboard.com>\n\t<20250815102945.1602071-9-stefan.klug@ideasonboard.com>\n\t<175525579545.560048.9417029671396904046@ping.linuxembedded.co.uk>\n\t<175525819781.560048.13255076323220552564@ping.linuxembedded.co.uk>","Subject":"Re: [PATCH v3 08/19] libipa: agc_mean_luminance: Configure the\n\texposure mode helpers","From":"Stefan Klug <stefan.klug@ideasonboard.com>","Cc":"Daniel Scally <dan.scally@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Mon, 18 Aug 2025 09:43:38 +0200","Message-ID":"<175550301843.1970129.17584174511334112816@localhost>","User-Agent":"alot/0.12.dev8+g2c003385c862.d20250602","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":35708,"web_url":"https://patchwork.libcamera.org/comment/35708/","msgid":"<175706897792.1787083.7244357452300531557@neptunite.rasen.tech>","date":"2025-09-05T10:42:57","subject":"Re: [PATCH v3 08/19] libipa: agc_mean_luminance: Configure the\n\texposure mode helpers","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Quoting Stefan Klug (2025-08-15 19:29:28)\n> Add a function to configure the exposure mode helpers with the line\n> length and sensor helper to take quantization effects into account.\n> \n> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> \n> ---\n> \n> Changes in v3:\n> - Renamed lineLength to lineDuration\n> - Collected tag\n> ---\n>  src/ipa/libipa/agc_mean_luminance.cpp | 15 +++++++++++++++\n>  src/ipa/libipa/agc_mean_luminance.h   |  1 +\n>  2 files changed, 16 insertions(+)\n> \n> diff --git a/src/ipa/libipa/agc_mean_luminance.cpp b/src/ipa/libipa/agc_mean_luminance.cpp\n> index fce1a5064870..1cbb3a0f9818 100644\n> --- a/src/ipa/libipa/agc_mean_luminance.cpp\n> +++ b/src/ipa/libipa/agc_mean_luminance.cpp\n> @@ -311,6 +311,21 @@ int AgcMeanLuminance::parseExposureModes(const YamlObject &tuningData)\n>         return 0;\n>  }\n>  \n> +/**\n> + * \\brief Configure the exposure mode helpers\n> + * \\param[in] lineLength The sensor line length\n> + * \\param[in] sensorHelper The sensor helper\n> + *\n> + * This function configures the exposure mode helpers so they can correctly\n> + * take quantization effects into account.\n> + */\n> +void AgcMeanLuminance::configure(utils::Duration lineDuration,\n> +                                const CameraSensorHelper *sensorHelper)\n> +{\n> +       for (auto &[id, helper] : exposureModeHelpers_)\n> +               helper->configure(lineDuration, sensorHelper);\n> +}\n> +\n>  /**\n>   * \\brief Parse tuning data for AeConstraintMode and AeExposureMode controls\n>   * \\param[in] tuningData the YamlObject representing the tuning data\n> diff --git a/src/ipa/libipa/agc_mean_luminance.h b/src/ipa/libipa/agc_mean_luminance.h\n> index cad7ef845487..49985481ac51 100644\n> --- a/src/ipa/libipa/agc_mean_luminance.h\n> +++ b/src/ipa/libipa/agc_mean_luminance.h\n> @@ -42,6 +42,7 @@ public:\n>                 double yTarget;\n>         };\n>  \n> +       void configure(utils::Duration lineDuration, const CameraSensorHelper *sensorHelper);\n>         int parseTuningData(const YamlObject &tuningData);\n>  \n>         void setExposureCompensation(double gain)\n> -- \n> 2.48.1\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 8F731C332B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  5 Sep 2025 10:43:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 534A769365;\n\tFri,  5 Sep 2025 12:43:17 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5DC296935A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  5 Sep 2025 12:43:04 +0200 (CEST)","from neptunite.rasen.tech (unknown\n\t[IPv6:2404:7a81:160:2100:dbfb:387c:7405:52bc])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 91860122A; \n\tFri,  5 Sep 2025 12:41: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=\"Mtl/kmpI\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1757068914;\n\tbh=dOq0Fiexb54Mr/U4Xcg86votHzBCJ2nvZTT9HibzMAs=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=Mtl/kmpIW42smHU+o/LpAW+SYy77l2wFxsUPP8UYNCcvGIavrSkAGugSJ9DA/8vvN\n\tRs2Owz2BnkpxP3J5Ukqx0G+e/8BaUZC5JD4tucpkkQs9obGV1SBENAk/Kxgmhnu5S4\n\tcYokL3VXopy/AxkH0UZo1m/KWka4ZKgBjeo3Ubtg=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20250815102945.1602071-9-stefan.klug@ideasonboard.com>","References":"<20250815102945.1602071-1-stefan.klug@ideasonboard.com>\n\t<20250815102945.1602071-9-stefan.klug@ideasonboard.com>","Subject":"Re: [PATCH v3 08/19] libipa: agc_mean_luminance: Configure the\n\texposure mode helpers","From":"Paul Elder <paul.elder@ideasonboard.com>","Cc":"Stefan Klug <stefan.klug@ideasonboard.com>,\n\tDaniel Scally <dan.scally@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Fri, 05 Sep 2025 19:42:57 +0900","Message-ID":"<175706897792.1787083.7244357452300531557@neptunite.rasen.tech>","User-Agent":"alot/0.0.0","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>"}}]