Patch Detail
Show a patch.
GET /api/1.1/patches/20660/?format=api
{ "id": 20660, "url": "https://patchwork.libcamera.org/api/1.1/patches/20660/?format=api", "web_url": "https://patchwork.libcamera.org/patch/20660/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20240712143227.3036702-6-stefan.klug@ideasonboard.com>", "date": "2024-07-12T14:32:06", "name": "[v1,5/5] ipa: rkisp1: ccm: Ensure metadata contains valid ccm", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "da75e1fe01da4568be92a0775df034365f680846", "submitter": { "id": 184, "url": "https://patchwork.libcamera.org/api/1.1/people/184/?format=api", "name": "Stefan Klug", "email": "stefan.klug@ideasonboard.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/20660/mbox/", "series": [ { "id": 4452, "url": "https://patchwork.libcamera.org/api/1.1/series/4452/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4452", "date": "2024-07-12T14:32:01", "name": "A few fixes for the rkisp1 ipa", "version": 1, "mbox": "https://patchwork.libcamera.org/series/4452/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/20660/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/20660/checks/", "tags": {}, "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 E14B5BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Jul 2024 14:32:56 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D3C1F63372;\n\tFri, 12 Jul 2024 16:32:55 +0200 (CEST)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7E7B063372\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Jul 2024 16:32:52 +0200 (CEST)", "from ideasonboard.com (unknown [94.31.101.36])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 0D540735;\n\tFri, 12 Jul 2024 16:32: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=\"SrCvfnB3\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1720794738;\n\tbh=1gZQWRmZ893KdtpMNUXNhK9auXPX4O9wMFNsd0gwQuM=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=SrCvfnB3gHXuASzNt0mciO8ldePGwqf4cj4+uBvdUJXmC2yLc5OhFntrhKg+cHmKK\n\tgHilq/0R2/4UdncYHW+MO9H6uCcyrBf7d04vfU1lz8+McCkDAuKBjuHWQ3tKaYXcrL\n\ts4zBw12tY2QOO11l3xREbK5rOSj1lSQtfNknaO3A=", "From": "Stefan Klug <stefan.klug@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Stefan Klug <stefan.klug@ideasonboard.com>", "Subject": "[PATCH v1 5/5] ipa: rkisp1: ccm: Ensure metadata contains valid ccm", "Date": "Fri, 12 Jul 2024 16:32:06 +0200", "Message-ID": "<20240712143227.3036702-6-stefan.klug@ideasonboard.com>", "X-Mailer": "git-send-email 2.43.0", "In-Reply-To": "<20240712143227.3036702-1-stefan.klug@ideasonboard.com>", "References": "<20240712143227.3036702-1-stefan.klug@ideasonboard.com>", "MIME-Version": "1.0", "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>" }, "content": "When the colour temperature does not change between frames, the ccm\ninside the frame context is not updated and the metadata contains\ninvalid data. Fix that by caching the ccm inside the active state.\n\nSigned-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n---\n src/ipa/rkisp1/algorithms/ccm.cpp | 7 +++++--\n src/ipa/rkisp1/ipa_context.h | 4 ++++\n 2 files changed, 9 insertions(+), 2 deletions(-)", "diff": "diff --git a/src/ipa/rkisp1/algorithms/ccm.cpp b/src/ipa/rkisp1/algorithms/ccm.cpp\nindex 4c4e3f5029a4..e9b1e78b7ec1 100644\n--- a/src/ipa/rkisp1/algorithms/ccm.cpp\n+++ b/src/ipa/rkisp1/algorithms/ccm.cpp\n@@ -101,7 +101,7 @@ void Ccm::setParameters(rkisp1_params_cfg *params,\n /**\n * \\copydoc libcamera::ipa::Algorithm::prepare\n */\n-void Ccm::prepare(IPAContext &context, const uint32_t frame,\n+void Ccm::prepare([[maybe_unused]] IPAContext &context, const uint32_t frame,\n \t\t IPAFrameContext &frameContext,\n \t\t rkisp1_params_cfg *params)\n {\n@@ -111,13 +111,16 @@ void Ccm::prepare(IPAContext &context, const uint32_t frame,\n \t * \\todo The colour temperature will likely be noisy, add filtering to\n \t * avoid updating the CCM matrix all the time.\n \t */\n-\tif (frame > 0 && ct == ct_)\n+\tif (frame > 0 && ct == ct_) {\n+\t\tframeContext.ccm.ccm = context.activeState.ccm.ccm;\n \t\treturn;\n+\t}\n \n \tct_ = ct;\n \tMatrix<float, 3, 3> ccm = ccm_.get(ct);\n \tMatrix<int16_t, 3, 1> offsets = offsets_.get(ct);\n \n+\tcontext.activeState.ccm.ccm = ccm;\n \tframeContext.ccm.ccm = ccm;\n \n \tsetParameters(params, ccm, offsets);\ndiff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h\nindex 27a9bf62fc16..061efc0c578e 100644\n--- a/src/ipa/rkisp1/ipa_context.h\n+++ b/src/ipa/rkisp1/ipa_context.h\n@@ -97,6 +97,10 @@ struct IPAActiveState {\n \t\tbool autoEnabled;\n \t} awb;\n \n+\tstruct {\n+\t\tMatrix<float, 3, 3> ccm;\n+\t} ccm;\n+\n \tstruct {\n \t\tint8_t brightness;\n \t\tuint8_t contrast;\n", "prefixes": [ "v1", "5/5" ] }