[{"id":36779,"web_url":"https://patchwork.libcamera.org/comment/36779/","msgid":"<176294025557.567526.15912436188861988223@ping.linuxembedded.co.uk>","date":"2025-11-12T09:37:35","subject":"Re: [RFC PATCH 2/7] libcamera: ipa: simple: Unwrap\n\tIPAFrameContext::ccm","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Milan Zamazal (2025-11-12 08:27:10)\n> The struct has only one member and there is no immediate need to add\n> more.  Let's use the member directly, to make things a bit simpler.\n> \n\nAck,\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n> ---\n>  src/ipa/simple/algorithms/ccm.cpp | 6 +++---\n>  src/ipa/simple/ipa_context.h      | 4 +---\n>  2 files changed, 4 insertions(+), 6 deletions(-)\n> \n> diff --git a/src/ipa/simple/algorithms/ccm.cpp b/src/ipa/simple/algorithms/ccm.cpp\n> index 0a98406c1..d7d3dda76 100644\n> --- a/src/ipa/simple/algorithms/ccm.cpp\n> +++ b/src/ipa/simple/algorithms/ccm.cpp\n> @@ -94,7 +94,7 @@ void Ccm::prepare(IPAContext &context, const uint32_t frame,\n>         if (frame > 0 &&\n>             utils::abs_diff(ct, lastCt_) < kTemperatureThreshold &&\n>             saturation == lastSaturation_) {\n> -               frameContext.ccm.ccm = context.activeState.ccm.ccm;\n> +               frameContext.ccm = context.activeState.ccm.ccm;\n>                 context.activeState.ccm.changed = false;\n>                 return;\n>         }\n> @@ -106,9 +106,9 @@ void Ccm::prepare(IPAContext &context, const uint32_t frame,\n>                 applySaturation(ccm, saturation.value());\n>  \n>         context.activeState.ccm.ccm = ccm;\n> -       frameContext.ccm.ccm = ccm;\n>         frameContext.saturation = saturation;\n>         context.activeState.ccm.changed = true;\n> +       frameContext.ccm = ccm;\n>  }\n>  \n>  void Ccm::process([[maybe_unused]] IPAContext &context,\n> @@ -117,7 +117,7 @@ void Ccm::process([[maybe_unused]] IPAContext &context,\n>                   [[maybe_unused]] const SwIspStats *stats,\n>                   ControlList &metadata)\n>  {\n> -       metadata.set(controls::ColourCorrectionMatrix, frameContext.ccm.ccm.data());\n> +       metadata.set(controls::ColourCorrectionMatrix, frameContext.ccm.data());\n>  \n>         const auto &saturation = frameContext.saturation;\n>         metadata.set(controls::Saturation, saturation.value_or(1.0));\n> diff --git a/src/ipa/simple/ipa_context.h b/src/ipa/simple/ipa_context.h\n> index c3081e306..330fe39cb 100644\n> --- a/src/ipa/simple/ipa_context.h\n> +++ b/src/ipa/simple/ipa_context.h\n> @@ -73,9 +73,7 @@ struct IPAActiveState {\n>  };\n>  \n>  struct IPAFrameContext : public FrameContext {\n> -       struct {\n> -               Matrix<float, 3, 3> ccm;\n> -       } ccm;\n> +       Matrix<float, 3, 3> ccm;\n>  \n>         struct {\n>                 int32_t exposure;\n> -- \n> 2.51.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 232C7C3241\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 12 Nov 2025 09:37:40 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CB66660A80;\n\tWed, 12 Nov 2025 10:37:39 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 07644606E6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 12 Nov 2025 10:37:38 +0100 (CET)","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 B9BDF82E;\n\tWed, 12 Nov 2025 10:35:38 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"kiamjA8r\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1762940138;\n\tbh=9GGT9tG6H1sYgx2YNmfk3ZLszkZmAjDZ7S0yzGSundQ=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=kiamjA8r2TI6uWWF9ZLMwvInTZdgWT059dhKk+XxW3dkKUqFLkYDFBEHBujjthCR7\n\tTrsIn+n2eLGSF7AZQ5rl20KZFiEDdKFpxuMqskn7dv1hBKAbUnJR13rgjeEJHJ4fCw\n\tDmlDNlIWJcUD0nyPfiMYzwMPUHiPkAoZEi2fXKlQ=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20251112082715.17823-3-mzamazal@redhat.com>","References":"<20251112082715.17823-1-mzamazal@redhat.com>\n\t<20251112082715.17823-3-mzamazal@redhat.com>","Subject":"Re: [RFC PATCH 2/7] libcamera: ipa: simple: Unwrap\n\tIPAFrameContext::ccm","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Milan Zamazal <mzamazal@redhat.com>","To":"Milan Zamazal <mzamazal@redhat.com>, libcamera-devel@lists.libcamera.org","Date":"Wed, 12 Nov 2025 09:37:35 +0000","Message-ID":"<176294025557.567526.15912436188861988223@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":36851,"web_url":"https://patchwork.libcamera.org/comment/36851/","msgid":"<1cbf33b7-55d9-447e-a3ec-0eb52378253e@ideasonboard.com>","date":"2025-11-17T10:57:23","subject":"Re: [RFC PATCH 2/7] libcamera: ipa: simple: Unwrap\n\tIPAFrameContext::ccm","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"Hi\n\n2025. 11. 12. 9:27 keltezéssel, Milan Zamazal írta:\n> The struct has only one member and there is no immediate need to add\n> more.  Let's use the member directly, to make things a bit simpler.\n> \n> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n> ---\n\nReviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n\n\n>   src/ipa/simple/algorithms/ccm.cpp | 6 +++---\n>   src/ipa/simple/ipa_context.h      | 4 +---\n>   2 files changed, 4 insertions(+), 6 deletions(-)\n> \n> diff --git a/src/ipa/simple/algorithms/ccm.cpp b/src/ipa/simple/algorithms/ccm.cpp\n> index 0a98406c1..d7d3dda76 100644\n> --- a/src/ipa/simple/algorithms/ccm.cpp\n> +++ b/src/ipa/simple/algorithms/ccm.cpp\n> @@ -94,7 +94,7 @@ void Ccm::prepare(IPAContext &context, const uint32_t frame,\n>   \tif (frame > 0 &&\n>   \t    utils::abs_diff(ct, lastCt_) < kTemperatureThreshold &&\n>   \t    saturation == lastSaturation_) {\n> -\t\tframeContext.ccm.ccm = context.activeState.ccm.ccm;\n> +\t\tframeContext.ccm = context.activeState.ccm.ccm;\n>   \t\tcontext.activeState.ccm.changed = false;\n>   \t\treturn;\n>   \t}\n> @@ -106,9 +106,9 @@ void Ccm::prepare(IPAContext &context, const uint32_t frame,\n>   \t\tapplySaturation(ccm, saturation.value());\n>   \n>   \tcontext.activeState.ccm.ccm = ccm;\n> -\tframeContext.ccm.ccm = ccm;\n>   \tframeContext.saturation = saturation;\n>   \tcontext.activeState.ccm.changed = true;\n> +\tframeContext.ccm = ccm;\n>   }\n>   \n>   void Ccm::process([[maybe_unused]] IPAContext &context,\n> @@ -117,7 +117,7 @@ void Ccm::process([[maybe_unused]] IPAContext &context,\n>   \t\t  [[maybe_unused]] const SwIspStats *stats,\n>   \t\t  ControlList &metadata)\n>   {\n> -\tmetadata.set(controls::ColourCorrectionMatrix, frameContext.ccm.ccm.data());\n> +\tmetadata.set(controls::ColourCorrectionMatrix, frameContext.ccm.data());\n>   \n>   \tconst auto &saturation = frameContext.saturation;\n>   \tmetadata.set(controls::Saturation, saturation.value_or(1.0));\n> diff --git a/src/ipa/simple/ipa_context.h b/src/ipa/simple/ipa_context.h\n> index c3081e306..330fe39cb 100644\n> --- a/src/ipa/simple/ipa_context.h\n> +++ b/src/ipa/simple/ipa_context.h\n> @@ -73,9 +73,7 @@ struct IPAActiveState {\n>   };\n>   \n>   struct IPAFrameContext : public FrameContext {\n> -\tstruct {\n> -\t\tMatrix<float, 3, 3> ccm;\n> -\t} ccm;\n> +\tMatrix<float, 3, 3> ccm;\n>   \n>   \tstruct {\n>   \t\tint32_t exposure;","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 742EAC0F1B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 17 Nov 2025 10:57:33 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7F63C60A80;\n\tMon, 17 Nov 2025 11:57:32 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DEFB4606A0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 17 Nov 2025 11:57:30 +0100 (CET)","from [192.168.33.31] (185.221.143.100.nat.pool.zt.hu\n\t[185.221.143.100])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C6E8C142;\n\tMon, 17 Nov 2025 11:55:27 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"dih1HhRC\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1763376927;\n\tbh=qFzEvB+qHDomspcBzGS2mSEg+NPfUmZcMezjrf8mJqw=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=dih1HhRCshkmA+YlJAncOssxLsNaKNkd6iY4jfyWbUKCdte/z/NLQRf/0rYjcvD7a\n\tYIMtLFOm+VYIZ9wAi61pnjsfJT7MfAmmFZ1ZbRVIjoRLPuBzJs/mwF2TGNmsjb5dKR\n\tUJp6ocCYwFteWNtfjqVGTVhawUS8YT+mcozeuiOM=","Message-ID":"<1cbf33b7-55d9-447e-a3ec-0eb52378253e@ideasonboard.com>","Date":"Mon, 17 Nov 2025 11:57:23 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [RFC PATCH 2/7] libcamera: ipa: simple: Unwrap\n\tIPAFrameContext::ccm","To":"Milan Zamazal <mzamazal@redhat.com>, libcamera-devel@lists.libcamera.org","References":"<20251112082715.17823-1-mzamazal@redhat.com>\n\t<20251112082715.17823-3-mzamazal@redhat.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20251112082715.17823-3-mzamazal@redhat.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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>"}}]