{"id":26149,"url":"https://patchwork.libcamera.org/api/patches/26149/?format=json","web_url":"https://patchwork.libcamera.org/patch/26149/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/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":"<20260213-kbingham-quantizers-v7-7-1626b9aaabf1@ideasonboard.com>","date":"2026-02-13T16:57:46","name":"[v7,07/15] ipa: rkisp1: cproc: Report metadata","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"92fcf61379a06c2e194ae8e0885ed1a377e7eeac","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/?format=json","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/26149/mbox/","series":[{"id":5789,"url":"https://patchwork.libcamera.org/api/series/5789/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5789","date":"2026-02-13T16:57:39","name":"libipa: Introduce a Quantized type","version":7,"mbox":"https://patchwork.libcamera.org/series/5789/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/26149/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/26149/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 496A4C32F2\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 13 Feb 2026 16:58:19 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 38E03621FF;\n\tFri, 13 Feb 2026 17:58:15 +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 90404621D8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 13 Feb 2026 17:58:05 +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 BD99826A5;\n\tFri, 13 Feb 2026 17:57:16 +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=\"J8hZ61d2\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1771001836;\n\tbh=r56V/8JCAXK6r+P0TpsGf/NZ5jG7087aqxyPb5gKQRs=;\n\th=From:Date:Subject:References:In-Reply-To:To:Cc:From;\n\tb=J8hZ61d2EioAdRnaqge5r82Ej72z9QhhAxWXxCEsrTUFmDtYTHwG4uuSgCI1JzqH+\n\teqB1dXrDsjOL/0Guqi607MNgnV43jVUa8zcIKhbxY6CHkZTiCvFlr64DvOlowoBQnL\n\tyYWxuEnWX9zXD2Efnl9slcKRMh9MBuusB+fEsMzI=","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Date":"Fri, 13 Feb 2026 16:57:46 +0000","Subject":"[PATCH v7 07/15] ipa: rkisp1: cproc: Report metadata","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"8bit","Message-Id":"<20260213-kbingham-quantizers-v7-7-1626b9aaabf1@ideasonboard.com>","References":"<20260213-kbingham-quantizers-v7-0-1626b9aaabf1@ideasonboard.com>","In-Reply-To":"<20260213-kbingham-quantizers-v7-0-1626b9aaabf1@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>","X-Mailer":"b4 0.14.3","X-Developer-Signature":"v=1; a=ed25519-sha256; t=1771001883; l=2511;\n\ti=kieran.bingham@ideasonboard.com; s=20260207;\n\th=from:subject:message-id; \n\tbh=r56V/8JCAXK6r+P0TpsGf/NZ5jG7087aqxyPb5gKQRs=;\n\tb=UTuHjQrfTzUKAMukbqI4UX76Ag6z3oqe1tJgI8deq1IixJUOxfoV5DVCxl7UMoVcUWsR/Dmds\n\teq2RYIZyie/Am243Iy4AfQq9sZNvzGWbFF/1vExpP5QKL6hXiHdvwk7","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>\nSigned-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n---\n\nv5:\n- Fix line wraps\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":["v7","07/15"]}