[{"id":31035,"web_url":"https://patchwork.libcamera.org/comment/31035/","msgid":"<20240901215048.GE7282@pendragon.ideasonboard.com>","date":"2024-09-01T21:50:48","subject":"Re: [PATCH v5 11/18] libcamera: software_isp: Call\n\tAlgorithm::prepare","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Milan,\n\nThank you for the patch.\n\nOn Fri, Aug 30, 2024 at 09:25:47AM +0200, Milan Zamazal wrote:\n> This patch adds Algorithm::prepare call for the defined algorithms.\n> This is preparation only since there are currently no Algorithm based\n> algorithms defined.\n> \n> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>\n> ---\n>  include/libcamera/ipa/soft.mojom            | 1 +\n>  src/ipa/simple/soft_simple.cpp              | 8 ++++++++\n>  src/libcamera/software_isp/software_isp.cpp | 1 +\n>  3 files changed, 10 insertions(+)\n> \n> diff --git a/include/libcamera/ipa/soft.mojom b/include/libcamera/ipa/soft.mojom\n> index 0ca2869c..bc70d4e4 100644\n> --- a/include/libcamera/ipa/soft.mojom\n> +++ b/include/libcamera/ipa/soft.mojom\n> @@ -24,6 +24,7 @@ interface IPASoftInterface {\n>  \t\t=> (int32 ret);\n>  \n>  \t[async] queueRequest(uint32 frame, libcamera.ControlList sensorControls);\n> +\t[async] prepare(uint32 frame);\n\nShould this be called fillParamsBuffer() like in the other IPA modules ?\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n>  \t[async] processStats(uint32 frame,\n>                               uint32 bufferId,\n>                               libcamera.ControlList sensorControls);\n> diff --git a/src/ipa/simple/soft_simple.cpp b/src/ipa/simple/soft_simple.cpp\n> index eb3bbd92..d52242be 100644\n> --- a/src/ipa/simple/soft_simple.cpp\n> +++ b/src/ipa/simple/soft_simple.cpp\n> @@ -79,6 +79,7 @@ public:\n>  \tvoid stop() override;\n>  \n>  \tvoid queueRequest(const uint32_t frame, const ControlList &controls) override;\n> +\tvoid prepare(const uint32_t frame) override;\n>  \tvoid processStats(const uint32_t frame, const uint32_t bufferId,\n>  \t\t\t  const ControlList &sensorControls) override;\n>  \n> @@ -279,6 +280,13 @@ void IPASoftSimple::queueRequest(const uint32_t frame, const ControlList &contro\n>  \t\talgo->queueRequest(context_, frame, frameContext, controls);\n>  }\n>  \n> +void IPASoftSimple::prepare(const uint32_t frame)\n> +{\n> +\tIPAFrameContext &frameContext = context_.frameContexts.get(frame);\n> +\tfor (auto const &algo : algorithms())\n> +\t\talgo->prepare(context_, frame, frameContext, params_);\n> +}\n> +\n>  void IPASoftSimple::processStats([[maybe_unused]] const uint32_t frame,\n>  \t\t\t\t [[maybe_unused]] const uint32_t bufferId,\n>  \t\t\t\t const ControlList &sensorControls)\n> diff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp\n> index eda18947..dbf27f31 100644\n> --- a/src/libcamera/software_isp/software_isp.cpp\n> +++ b/src/libcamera/software_isp/software_isp.cpp\n> @@ -352,6 +352,7 @@ void SoftwareIsp::stop()\n>   */\n>  void SoftwareIsp::process(uint32_t frame, FrameBuffer *input, FrameBuffer *output)\n>  {\n> +\tipa_->prepare(frame);\n>  \tdebayer_->invokeMethod(&DebayerCpu::process,\n>  \t\t\t       ConnectionTypeQueued, frame, input, output, debayerParams_);\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 9BED6C324C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun,  1 Sep 2024 21:51:23 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B4C55634CB;\n\tSun,  1 Sep 2024 23:51:22 +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 9604E63466\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun,  1 Sep 2024 23:51:21 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9376F4CF;\n\tSun,  1 Sep 2024 23:50:10 +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=\"WvDnNR7w\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1725227410;\n\tbh=teKJrnryIqpzPKGjXRR1MEE8ZHE7xFsZLGfzYs2M8fI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=WvDnNR7wWDVA1Sjav+E1bRPa2cga6L7VS4veFqapzn5a4JYoiGpVeyomeyismDm0c\n\t62VZ1b1K+oiogWQnCQNxuXtvsIT0VWE2JMYV8txEBNJe2vbHnCtyGaRjQFUrDlQ1D4\n\tQLV3zQBH5uveU5XdaBUti5hVxJ8GjHnxkn2IeNSE=","Date":"Mon, 2 Sep 2024 00:50:48 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tUmang Jain <umang.jain@ideasonboard.com>,\n\tDaniel Scally <dan.scally@ideasonboard.com>","Subject":"Re: [PATCH v5 11/18] libcamera: software_isp: Call\n\tAlgorithm::prepare","Message-ID":"<20240901215048.GE7282@pendragon.ideasonboard.com>","References":"<20240830072554.180672-1-mzamazal@redhat.com>\n\t<20240830072554.180672-12-mzamazal@redhat.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20240830072554.180672-12-mzamazal@redhat.com>","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>"}}]