{"id":24199,"url":"https://patchwork.libcamera.org/api/1.1/patches/24199/?format=json","web_url":"https://patchwork.libcamera.org/patch/24199/","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":"<20250824-b4-v0-5-2-gpuisp-v2-a-v2-15-96f4576c814e@linaro.org>","date":"2025-08-24T00:48:27","name":"[v2,15/37] libcamera: software_isp: debayer: Extend DebayerParams struct to hold a copy of per-frame CCM values","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"e112e1a05bd9f4ee25834b907727a5b9bf532909","submitter":{"id":175,"url":"https://patchwork.libcamera.org/api/1.1/people/175/?format=json","name":"Bryan O'Donoghue","email":"bryan.odonoghue@linaro.org"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/24199/mbox/","series":[{"id":5400,"url":"https://patchwork.libcamera.org/api/1.1/series/5400/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5400","date":"2025-08-24T00:48:12","name":"Add GLES 2.0 GPUISP to libcamera","version":2,"mbox":"https://patchwork.libcamera.org/series/5400/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/24199/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/24199/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 9035FBEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 24 Aug 2025 00:49:13 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0719D6931E;\n\tSun, 24 Aug 2025 02:49:13 +0200 (CEST)","from mail-wm1-x330.google.com (mail-wm1-x330.google.com\n\t[IPv6:2a00:1450:4864:20::330])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4CA70692EE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 24 Aug 2025 02:48:50 +0200 (CEST)","by mail-wm1-x330.google.com with SMTP id\n\t5b1f17b1804b1-45a20c51c40so26179885e9.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 23 Aug 2025 17:48:50 -0700 (PDT)","from [192.168.0.13] (188-141-3-146.dynamic.upc.ie. [188.141.3.146])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-45b4e1d530esm69347225e9.0.2025.08.23.17.48.49\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tSat, 23 Aug 2025 17:48:49 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"Oofoy4rY\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1755996530; x=1756601330;\n\tdarn=lists.libcamera.org; \n\th=cc:to:in-reply-to:references:message-id:content-transfer-encoding\n\t:mime-version:subject:date:from:from:to:cc:subject:date:message-id\n\t:reply-to; bh=SMWDZ4MJuPXVA2G1K9zH3SmhxZIzo1z4f+u27tyrFZE=;\n\tb=Oofoy4rYcu31zTrlCnTlGTZts7agRn74NSATEKZz3DB+VC81j2NW0bkZGb7No0N8v8\n\tvr0vsSABvPtGRi04F9tKxTVhhw9W+jMFP1ZG4Y4x9DLcRV1lccKaeJUO+X8uXTBADBLn\n\toD0caCuE/Sek8ZxMNL5L/LUMz42oUJanNsYJbZV5vnuKHKg8oI+MiI98/u1u+wdWu5Kz\n\tyR+qbutrm/lgP4xycTKC6bKQr0B3xVuX/0trr5Y5+n5lvhdQiW3FtlBlnMVyiuwgnet0\n\tLEDAK+laow6ap6bIYSIr7AqU7WIcdzZW//e9ZWnQXJhGby9jIxsI/RcDdTJPk+F7X+G8\n\t7dpA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1755996530; x=1756601330;\n\th=cc:to:in-reply-to:references:message-id:content-transfer-encoding\n\t:mime-version:subject:date:from:x-gm-message-state:from:to:cc\n\t:subject:date:message-id:reply-to;\n\tbh=SMWDZ4MJuPXVA2G1K9zH3SmhxZIzo1z4f+u27tyrFZE=;\n\tb=V3vutvQBmP7R8V1mZRR5dVcLQDMnxi2RzlVsukeyo6r33G4PeYDc6/TMGSFAyEgRSZ\n\tHfJnQ5zowlqTi8b6WaVZ5TAVBcYmL5VL+TqUF5wa5+xrXR1Q4H3KmtDLHE9LEBpmYTlJ\n\trBdjjaKRM/Z1BEncYk7GewSesC7XHo9yjrdPIMd4PHVFcF9+gPxGqbuXoZG5sDjJXWHG\n\tavPtLJon5axoA4mtU9D1pLM8XxeWcgbDp96TXHXComap+4VaRvG8SiDEengIIg3pN5du\n\thfbpPN0kf2zrQA9kvWxfrIpeYsrc04azg4+NVzCsN6cV3uxjqMUN01dh4/b1T6A2rpxv\n\tintw==","X-Gm-Message-State":"AOJu0Ywu343RategeYY7RiQFRDICdSJpyq87hY7kYVIZ70HSJpMaAVcX\n\tLUYoGqSrMrGn5EPvFZyRUKKNNVkF0oRcgJVclDIb6Tu2K5DKpDKbPVumm5xBNjs/HoBSPLEC4+o\n\t2xvNvc0M=","X-Gm-Gg":"ASbGncvA59nluyjdLEiaIaT/qY5XQEVZ35muoKWcrt6k9DY1Hdfiw/EVbZOoLELd3t3\n\tYCYmktC6COUTf/P3RbH65xWpBDR5MZrdkvqmT4GCzcnGPlOKx2mzBrJl0L2bnB+QQube8+SC2oK\n\t/qbQylh1FbFaytMdwYidDd2KMb8H2RmRXwp5EQ5kbMnJiZSHKhWdo0aJiLGIkSD2UcouHqn2Qa7\n\tgFF5TgwCMG69NZDERYhcnvoO0/CMdc0yzypp3U00fLl9l6sjHdBvWe3+c5lAudw7Miq/U2rXJoP\n\taqwFFrDrTW6sC9couQEn/EuIoJRCk8OvrARjYBKy8wP9IJB86Y+EoetEkRRiARTPq8xydac52BK\n\tc4zFqgwn56fN8zJIKs8f+hRYJW4YyJ+7Z0q4YyPTvvIYqqGdVAGmV3S0UiR7bYaXHIY9LWp3Jhh\n\t6Fw6ZYC3nps1CeV4ajQvwImlkUPTPh/qg=","X-Google-Smtp-Source":"AGHT+IFdEvE15/RXGs2tqt7jleznRXW764t5PT2K6yMPXaYbJKhe1WVAtZUIrKd0HkTa1rKXbaIp6A==","X-Received":"by 2002:a05:600c:3b8e:b0:459:d780:3604 with SMTP id\n\t5b1f17b1804b1-45b5723940bmr37219165e9.3.1755996529774; \n\tSat, 23 Aug 2025 17:48:49 -0700 (PDT)","From":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Date":"Sun, 24 Aug 2025 01:48:27 +0100","Subject":"[PATCH v2 15/37] libcamera: software_isp: debayer: Extend\n\tDebayerParams struct to hold a copy of per-frame CCM values","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","Message-Id":"<20250824-b4-v0-5-2-gpuisp-v2-a-v2-15-96f4576c814e@linaro.org>","References":"<20250824-b4-v0-5-2-gpuisp-v2-a-v2-0-96f4576c814e@linaro.org>","In-Reply-To":"<20250824-b4-v0-5-2-gpuisp-v2-a-v2-0-96f4576c814e@linaro.org>","To":"libcamera-devel@lists.libcamera.org","Cc":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","X-Mailer":"b4 0.14.2","X-Developer-Signature":"v=1; a=openpgp-sha256; l=1110;\n\ti=bryan.odonoghue@linaro.org; h=from:subject:message-id;\n\tbh=F4c1tKZ+llqElLc+ASOjQlC6+Ixm9DDO+1Juxv+Cekk=;\n\tb=owEBbQKS/ZANAwAKASJxO7Ohjcg6AcsmYgBoqmFf2mTkmUPz3755wLpRPr7zg2dr47wUv1OVF\n\tUeYo1IHFXeJAjMEAAEKAB0WIQTmk/sqq6Nt4Rerb7QicTuzoY3IOgUCaKphXwAKCRAicTuzoY3I\n\tOiIyD/9eJlkeTvdwi630hj2yJKTAJ4vPeDSS3VJV4vai61LgASy7mT51FJEPvMAvDi46HdD2byU\n\tWiakYL4IXQtywvY07C6ItEBuWkJgOXkF96DVnpCedUVQ2nH57F0/HVi7lDxWf4yTamG5SPjrfT2\n\tN0DAFZ0JtwZqVuWsxskzimthZlNi5WGqs/eVZSlqj/Einy4CcbnXI0+y1dsc4IkLT8fkBY/WUEu\n\tICd1matWrznkAXwzq85MTP5TJ6IbWH3s6KzimrljJK2hLHsbX3bMSIOI4/w4c9sZbxkx7Anbr8U\n\ty0ZnZsnTUirsm5j4nBOMPmyoH+b9laEcqhnzvBmK67Yz1ZilzutmJDD0Jr+9nggidPMbQfyF0I+\n\tmFjgv9yFw2JWZpPFaL/hx9icm2kpuCLtUlR0N8Pk1SsQAEZA38COQYersliHQ8NLz7gaRYBwy6u\n\th67HGTCJAxzTLvfm/UWrEufJNI41LnVBjf1hlL58z+HAe8Pz6dsSHXgtgZGXzhcwSAr4cVg8NJj\n\t7e6TifgiD/zqAGceEp6Fvt4dtShOVYQ6kwmZ6mBeXMC6wsMWhMprwxIihva4As20PMkX0VwH2Jg\n\tLBEdEnHUc5Ea2KbM/XXCE3fGbj138CCb9g6gHkTOBK1yg1JV6Ci/9v2aKtTJycOGikSBlquXzu6\n\tvGwHobgfbHuVf7g==","X-Developer-Key":"i=bryan.odonoghue@linaro.org; a=openpgp;\n\tfpr=E693FB2AABA36DE117AB6FB422713BB3A18DC83A","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":"Add an element to the DebayerParams structure to capture the calculated\nCCM. This allows us to pass the CCM into the eGL Debayer shader later on.\n\nSigned-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n---\n include/libcamera/internal/software_isp/debayer_params.h | 7 +++++++\n 1 file changed, 7 insertions(+)","diff":"diff --git a/include/libcamera/internal/software_isp/debayer_params.h b/include/libcamera/internal/software_isp/debayer_params.h\nindex 217cd5d92ab9e146a4e196d04e94f0cedcb58dec..56803195eb5faba287e95fbd92648373239185ff 100644\n--- a/include/libcamera/internal/software_isp/debayer_params.h\n+++ b/include/libcamera/internal/software_isp/debayer_params.h\n@@ -13,6 +13,8 @@\n #include <array>\n #include <stdint.h>\n \n+#include \"libcamera/internal/matrix.h\"\n+\n namespace libcamera {\n \n struct DebayerParams {\n@@ -49,6 +51,11 @@ struct DebayerParams {\n \tCcmLookupTable greenCcm;\n \tCcmLookupTable blueCcm;\n \tLookupTable gammaLut;\n+\n+\t/*\n+\t * Per frame CCM values as calcualted by the IPA\n+\t */\n+\tMatrix<float, 3, 3> ccm;\n };\n \n } /* namespace libcamera */\n","prefixes":["v2","15/37"]}