{"id":26204,"url":"https://patchwork.libcamera.org/api/1.1/patches/26204/?format=json","web_url":"https://patchwork.libcamera.org/patch/26204/","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":"<20260219-kbingham-quantizers-v8-7-2b6ff68ead26@ideasonboard.com>","date":"2026-02-19T15:05:08","name":"[v8,07/15] ipa: rkisp1: cproc: Report metadata","commit_ref":"52cc91f3f1d2e008d335ea3424085884c0417151","pull_url":null,"state":"accepted","archived":false,"hash":"92fcf61379a06c2e194ae8e0885ed1a377e7eeac","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/26204/mbox/","series":[{"id":5802,"url":"https://patchwork.libcamera.org/api/1.1/series/5802/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5802","date":"2026-02-19T15:05:01","name":"libipa: Introduce a Quantized type","version":8,"mbox":"https://patchwork.libcamera.org/series/5802/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/26204/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/26204/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 9B0D1C3240\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 19 Feb 2026 15:05:25 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B1AEC6226F;\n\tThu, 19 Feb 2026 16:05:18 +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 6E2466225C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 19 Feb 2026 16:05:10 +0100 (CET)","from ping.linuxembedded.co.uk\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 4765619D6;\n\tThu, 19 Feb 2026 16:04:17 +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=\"DFFyAHGq\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1771513457;\n\tbh=od9HXa0RvmhehZR62vGgqnqMUNop+bUsUvJ0D8wvKB0=;\n\th=From:Date:Subject:References:In-Reply-To:To:Cc:From;\n\tb=DFFyAHGq8jGu1f+1DGFSzR59FGDW208cJNjGqOAVpDKLPN76pW5874u6yuFa4dCvC\n\t4vhypIC/38nEslsQDvfzsEuzHshVrc/GFnBkSXpbGmQ7dqkXMe309MqM+a2SauzYOU\n\td+PhZYIDeTv1JSx5aAfaPR2LCLuLdidVNdJdfa84=","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Date":"Thu, 19 Feb 2026 15:05:08 +0000","Subject":"[PATCH v8 07/15] ipa: rkisp1: cproc: Report metadata","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"8bit","Message-Id":"<20260219-kbingham-quantizers-v8-7-2b6ff68ead26@ideasonboard.com>","References":"<20260219-kbingham-quantizers-v8-0-2b6ff68ead26@ideasonboard.com>","In-Reply-To":"<20260219-kbingham-quantizers-v8-0-2b6ff68ead26@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>, Isaac Scott\n\t<isaac.scott@ideasonboard.com>, =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?=\n\t<barnabas.pocze@ideasonboard.com>, Laurent Pinchart\n\t<laurent.pinchart@ideasonboard.com>, Paul Elder\n\t<paul.elder@ideasonboard.com>","X-Mailer":"b4 0.14.3","X-Developer-Signature":"v=1; a=ed25519-sha256; t=1771513507; l=2534;\n\ti=kieran.bingham@ideasonboard.com; s=20260207;\n\th=from:subject:message-id; \n\tbh=od9HXa0RvmhehZR62vGgqnqMUNop+bUsUvJ0D8wvKB0=;\n\tb=RZ5M1B8pCVG1iYAjg4w/fup7fTjSn0jwltOlOroj8hSiXIMe7Lq99jXSrFbMRD3jZMntkkSld\n\tXDLDTlzipzYB6VUScCiuK7Yea+DPW/tNzS6faHT3me/H+utZset4Gww","X-Developer-Key":"i=kieran.bingham@ideasonboard.com; a=ed25519;\n\tpk=FVXKN7YuwHc6UtbRUeTMAmranfsQomA+vnilfglWdaY=","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\nReviewed-by: Isaac Scott <isaac.scott@ideasonboard.com>\nReviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\nSigned-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n---\n src/ipa/rkisp1/algorithms/cproc.cpp | 14 ++++++++++++++\n src/ipa/rkisp1/algorithms/cproc.h   |  4 ++++\n 2 files changed, 18 insertions(+)","diff":"diff --git a/src/ipa/rkisp1/algorithms/cproc.cpp b/src/ipa/rkisp1/algorithms/cproc.cpp\nindex 4374c08c2a4f..e9e2b5444bc9 100644\n--- a/src/ipa/rkisp1/algorithms/cproc.cpp\n+++ b/src/ipa/rkisp1/algorithms/cproc.cpp\n@@ -143,6 +143,20 @@ 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,\n+\t\t\t      [[maybe_unused]] const uint32_t frame,\n+\t\t\t      IPAFrameContext &frameContext,\n+\t\t\t      [[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":["v8","07/15"]}