{"id":24899,"url":"https://patchwork.libcamera.org/api/1.1/patches/24899/?format=json","web_url":"https://patchwork.libcamera.org/patch/24899/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20251029172439.1513907-11-kieran.bingham@ideasonboard.com>","date":"2025-10-29T17:24:35","name":"[v2,10/13] ipa: rkisp1: cproc: Report metadata","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"b052b26192a365423b294a836b7af291935a1f40","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/1.1/people/4/?format=json","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/24899/mbox/","series":[{"id":5544,"url":"https://patchwork.libcamera.org/api/1.1/series/5544/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5544","date":"2025-10-29T17:24:25","name":"libipa: Introduce a Quantized type","version":2,"mbox":"https://patchwork.libcamera.org/series/5544/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/24899/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/24899/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 B59D7C3333\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 29 Oct 2025 17:25:07 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 56F8F60891;\n\tWed, 29 Oct 2025 18:25:07 +0100 (CET)","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 D0871608BB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 29 Oct 2025 18:24:48 +0100 (CET)","from Monstersaurus.hippo-penny.ts.net\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 747A24EE1;\n\tWed, 29 Oct 2025 18:22:59 +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=\"l3LOAf8M\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1761758579;\n\tbh=ZDKADU8J1J7zQW8MsAHlsQUSL5ojgZvZw1wTXkf6pMI=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=l3LOAf8Mp3lschymqL0119CdS0NF8zc6agjwh/+URAQ1OnZaTbOv10V6Qqz3QTDw9\n\tzGjIjKTPXu4pbmtwFRs0NfyNBQRlt+EYy634I/gKVeXBfagXZkp11cMhq6jvvbCL03\n\tc9/1YC6/Qfz3m/DeWKIffRK7JYUoIINWpjUkvNqE=","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"libcamera devel <libcamera-devel@lists.libcamera.org>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Subject":"[PATCH v2 10/13] ipa: rkisp1: cproc: Report metadata","Date":"Wed, 29 Oct 2025 17:24:35 +0000","Message-ID":"<20251029172439.1513907-11-kieran.bingham@ideasonboard.com>","X-Mailer":"git-send-email 2.50.1","In-Reply-To":"<20251029172439.1513907-1-kieran.bingham@ideasonboard.com>","References":"<20251029172439.1513907-1-kieran.bingham@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":"Presently the colour processing component exposes controls for\nbrightness, saturation, and contrast to the applications which are\nhandled and processed accordingly on the ISP.\n\nThe implementation lacks reporting the values that are set back to the\napplication.\n\nUtilise the new Quantised types to provide the values that were applied\nto the hardware and report them in the completed request metadata.\n\nSigned-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n---\n src/ipa/rkisp1/algorithms/cproc.cpp | 12 ++++++++++++\n src/ipa/rkisp1/algorithms/cproc.h   |  4 ++++\n 2 files changed, 16 insertions(+)","diff":"diff --git a/src/ipa/rkisp1/algorithms/cproc.cpp b/src/ipa/rkisp1/algorithms/cproc.cpp\nindex 4637a824af03..7475e6c1b609 100644\n--- a/src/ipa/rkisp1/algorithms/cproc.cpp\n+++ b/src/ipa/rkisp1/algorithms/cproc.cpp\n@@ -145,6 +145,18 @@ void ColorProcessing::prepare([[maybe_unused]] IPAContext &context,\n \tconfig->sat = frameContext.cproc.saturation.quantized();\n }\n \n+/**\n+ * \\copydoc libcamera::ipa::Algorithm::process\n+ */\n+void ColorProcessing::process([[maybe_unused]] IPAContext &context, [[maybe_unused]] const uint32_t frame,\n+\t\t\t      IPAFrameContext &frameContext, [[maybe_unused]] const rkisp1_stat_buffer *stats,\n+\t\t\t      ControlList &metadata)\n+{\n+\tmetadata.set(controls::Brightness, frameContext.cproc.brightness.value());\n+\tmetadata.set(controls::Contrast, frameContext.cproc.contrast.value());\n+\tmetadata.set(controls::Saturation, frameContext.cproc.saturation.value());\n+}\n+\n REGISTER_IPA_ALGORITHM(ColorProcessing, \"ColorProcessing\")\n \n } /* namespace ipa::rkisp1::algorithms */\ndiff --git a/src/ipa/rkisp1/algorithms/cproc.h b/src/ipa/rkisp1/algorithms/cproc.h\nindex fd38fd17e8bb..9b589ebd4ad7 100644\n--- a/src/ipa/rkisp1/algorithms/cproc.h\n+++ b/src/ipa/rkisp1/algorithms/cproc.h\n@@ -30,6 +30,10 @@ public:\n \tvoid prepare(IPAContext &context, const uint32_t frame,\n \t\t     IPAFrameContext &frameContext,\n \t\t     RkISP1Params *params) override;\n+\tvoid process(IPAContext &context, const uint32_t frame,\n+\t\t     IPAFrameContext &frameContext,\n+\t\t     const rkisp1_stat_buffer *stats,\n+\t\t     ControlList &metadata) override;\n };\n \n } /* namespace ipa::rkisp1::algorithms */\n","prefixes":["v2","10/13"]}