From patchwork Sun Apr 5 19:14:33 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 26417 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 1F062BEFBE for ; Sun, 5 Apr 2026 19:14:50 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id B453862D0D; Sun, 5 Apr 2026 21:14:47 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="U9LJln6F"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id B111362D0D for ; Sun, 5 Apr 2026 21:14:46 +0200 (CEST) Received: from killaraus.ideasonboard.com (2001-14ba-703d-e500--2a1.rev.dnainternet.fi [IPv6:2001:14ba:703d:e500::2a1]) by perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 7E6996AF for ; Sun, 5 Apr 2026 21:13:20 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1775416400; bh=YGfncuotm3xqlMnSeguoHw5Q00Y08xmTfCO/tvago1U=; h=From:To:Subject:Date:In-Reply-To:References:From; b=U9LJln6FjTEd8GIdKH4yZGctq/cQlyayzReThQ1ROpz1Bj4I4FQzg+Uz17H3phBB9 TeFnOnEg5ipU7o7MI4eLABLKCfU7GzTLax/YtodtuMojGyYm7dYRN4DQoHke+hPycx EVrKxN3zCuz5hSmXgyHEWtrtLKEcKM4j7oh5G9OM= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Subject: [PATCH 01/11] libcamera: software_isp: Convert TODO list to markdown Date: Sun, 5 Apr 2026 22:14:33 +0300 Message-ID: <20260405191443.1209948-2-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> References: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" To prepare for merging the two software ISP TODO lists (TODO and gpuisp-todo.txt), convert the TODO file to markdown. Signed-off-by: Laurent Pinchart --- src/libcamera/software_isp/{TODO => TODO.md} | 50 ++++++++++++-------- utils/tuning/config-example.yaml | 2 +- 2 files changed, 32 insertions(+), 20 deletions(-) rename src/libcamera/software_isp/{TODO => TODO.md} (91%) diff --git a/src/libcamera/software_isp/TODO b/src/libcamera/software_isp/TODO.md similarity index 91% rename from src/libcamera/software_isp/TODO rename to src/libcamera/software_isp/TODO.md index f19e15ae27a0..bdd4a7421766 100644 --- a/src/libcamera/software_isp/TODO +++ b/src/libcamera/software_isp/TODO.md @@ -1,5 +1,16 @@ -2. Reconsider stats sharing +# Software ISP TODO list +This file contains the TODO list for the software ISP. + +## Common code and CPU-based implementation + +The TODO items in this section gather comments from patch review that were not +deemed to require being addressed right away. The text in block quotes is +copied directly from e-mail review. + +### Reconsider stats sharing + +``` >>> +void SwStatsCpu::finishFrame(void) >>> +{ >>> + *sharedStats_ = stats_; @@ -22,11 +33,11 @@ That would match how we deal with hardware ISPs, and I think that's a good idea. It will help decoupling the processing side from the IPA. +``` ---- - -3. Remove statsReady signal +### Remove statsReady signal +``` > class SwStatsCpu > { > /** @@ -50,11 +61,11 @@ Removing the signal and refactoring those classes doesn't have to be addressed now, I think it would be part of a larger refactoring (possibly also considering platforms that have no ISP but can produce stats in hardware, such as the i.MX7), but please keep it on your radar. +``` ---- - -5. Store ISP parameters in per-frame buffers +### Store ISP parameters in per-frame buffers +``` > /** > * \fn void Debayer::process(FrameBuffer *input, FrameBuffer *output, DebayerParams params) > * \brief Process the bayer data into the requested format. @@ -68,11 +79,11 @@ stats in hardware, such as the i.MX7), but please keep it on your radar. Possibly something to address later, by storing ISP parameters in per-frame buffers like we do for hardware ISPs. +``` ---- - -8. DebayerCpu cleanups +### DebayerCpu cleanups +``` > >> class DebayerCpu : public Debayer, public Object > >> const SharedFD &getStatsFD() { return stats_->getStatsFD(); } > > @@ -105,21 +116,21 @@ the need for performances and the need for a maintainable architecture. > I think this falls under the lets wait until we have a GPU > based SoftISP MVP/POC and then do some refactoring to see which > bits should go where. +``` ---- - -8. Decouple pipeline and IPA naming +### Decouple pipeline and IPA naming +``` > The current src/ipa/meson.build assumes the IPA name to match the > pipeline name. For this reason "-Dipas=simple" is used for the > Soft IPA module. This should be addressed. +``` ---- - -9. Doxyfile cleanup +### Doxyfile cleanup +``` >> diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in >> index a86ea6c1..2be8d47b 100644 >> --- a/Documentation/Doxyfile.in @@ -160,13 +171,14 @@ Yes, because, well... all the other IPAs were doing that... > It doesn't have to be done before merging, but could you > address this sooner than later ? +``` ---- - -13. Improve black level and colour gains application +### Improve black level and colour gains application +``` I think the black level should eventually be moved before debayering, and ideally the colour gains as well. I understand the need for optimizations to lower the CPU consumption, but at the same time I don't feel comfortable building up on top of an implementation that may work a bit more by chance than by correctness, as that's not very maintainable. +``` diff --git a/utils/tuning/config-example.yaml b/utils/tuning/config-example.yaml index 5593eaef809e..680f9213b269 100644 --- a/utils/tuning/config-example.yaml +++ b/utils/tuning/config-example.yaml @@ -51,4 +51,4 @@ general: macbeth: small: 1 show: 0 -# blacklevel: 32 \ No newline at end of file +# blacklevel: 32 From patchwork Sun Apr 5 19:14:34 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 26418 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 049DCBEFBE for ; Sun, 5 Apr 2026 19:14:52 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 892D862D71; Sun, 5 Apr 2026 21:14:50 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="unWif23d"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 724DA62D6E for ; Sun, 5 Apr 2026 21:14:48 +0200 (CEST) Received: from killaraus.ideasonboard.com (2001-14ba-703d-e500--2a1.rev.dnainternet.fi [IPv6:2001:14ba:703d:e500::2a1]) by perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id DB70F6AF for ; Sun, 5 Apr 2026 21:13:21 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1775416402; bh=lltzW5OQTptxKLMhQYICrK37oioitarQSr3O2IKaDn8=; h=From:To:Subject:Date:In-Reply-To:References:From; b=unWif23dj8491jMXF4MEAg4S32TbyW/fXyYLL35WYgUpkmU4jMokBkYyGak9tC5ba oT//9Jo0/tabYP/r2FPUWC5v/HxYAj8mXbPZ60AEpfShmGgV2gp8YdnXzj+6Vswo+v ErK6f+iJsYulWgwuPhggMLK+XrvI7zr07E4Olal8= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Subject: [PATCH 02/11] libcamera: software_isp: Move GPU TODO items to TODO.md Date: Sun, 5 Apr 2026 22:14:34 +0300 Message-ID: <20260405191443.1209948-3-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> References: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" There's no need to store GPU-specific TODO items in a separate file, that clutters the software_isp directory. Move them from gpuisp-todo.txt to TODO.md. Signed-off-by: Laurent Pinchart --- src/libcamera/software_isp/TODO.md | 47 ++++++++++++++++++++++ src/libcamera/software_isp/gpuisp-todo.txt | 40 ------------------ 2 files changed, 47 insertions(+), 40 deletions(-) delete mode 100644 src/libcamera/software_isp/gpuisp-todo.txt diff --git a/src/libcamera/software_isp/TODO.md b/src/libcamera/software_isp/TODO.md index bdd4a7421766..036cf2b7f9ce 100644 --- a/src/libcamera/software_isp/TODO.md +++ b/src/libcamera/software_isp/TODO.md @@ -182,3 +182,50 @@ lower the CPU consumption, but at the same time I don't feel comfortable building up on top of an implementation that may work a bit more by chance than by correctness, as that's not very maintainable. ``` + +## GPU-based implementation + +The TODO items are listed in perceived order of ease. + +### Denoising + +WIP + +### Dead pixel correction + +WIP + +### Lense shading correction + +WIP + +### Use dma-buf handle to generate upload texture + +`eglCreateImageKHR` can be used to generate the upload texture i.e.to feed the +bayer data into the GPU. + +### processFrame() to run in its own thread + +`processFrame()` runs in the context of the Debayer::process() thread. Robert +Mader suggested and it seems like a good suggestion too to run processFrame() +in its own thread. + +### Multi-pass shaders + +- This needs some rewiring the idea is to have a list of algorithms as is done + in cpuisp iterating through the list in a for() loop. +- The logic managing the loop has an initial input buffer and the final output + buffer. +- The higher level logic must then inform each of the algorithms either to + generate an internal working buffer or pass the final output buffer to the + last shader in the list +- This will allow for multi-pass shaders with the final algorithm presenting + data not to its internal buffer but to the final output buffer + +### 24 bit output support + +Need to implement compute shader to do this. + +### Lense flare correction + +Not WIP still TBD diff --git a/src/libcamera/software_isp/gpuisp-todo.txt b/src/libcamera/software_isp/gpuisp-todo.txt deleted file mode 100644 index 8930da120962..000000000000 --- a/src/libcamera/software_isp/gpuisp-todo.txt +++ /dev/null @@ -1,40 +0,0 @@ -List the TODOs in perceived order of ease. - - -Denoising: - - WIP - -Dead pixel correction: - - WIP - -Lense shading correction: - - WIP - -Use dma-buf handle to generate upload texture: - - eglCreateImageKHR can be used to generate the upload texture i.e. - to feed the bayer data into the GPU. - -processFrame() to run in its own thread: - - processFrame() runs in the context of the Debayer::process() - thread. Robert Mader suggested and it seems like a good - suggestion too to run processFrame() in its own thread. - -Multi-pass shaders: - - This needs some rewiring the idea is to have a list - of algorithms as is done in cpuisp iterating through the - list in a for() loop. - - The logic managing the loop has an initial input buffer - and the final output buffer. - - The higher level logic must then inform each of the - algorithms either to generate an internal working buffer - or pass the final output buffer to the last shader - in the list - - This will allow for multi-pass shaders with the final - algorithm presenting data not to its internal buffer - but to the final output buffer - -24 bit output support: - - Need to implement compute shader to do this. - -Lense flare correction: - - Not WIP still TBD From patchwork Sun Apr 5 19:14:35 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 26419 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id DA9C2C32BB for ; Sun, 5 Apr 2026 19:14:52 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 8C25762D67; Sun, 5 Apr 2026 21:14:52 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="kb3+yWQm"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 6DF4062D67 for ; Sun, 5 Apr 2026 21:14:49 +0200 (CEST) Received: from killaraus.ideasonboard.com (2001-14ba-703d-e500--2a1.rev.dnainternet.fi [IPv6:2001:14ba:703d:e500::2a1]) by perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 36AE3C87 for ; Sun, 5 Apr 2026 21:13:23 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1775416403; bh=bjD0ukEMc8dUaT2hX/A73a8YPj1YWRPsk//fzTCNAnM=; h=From:To:Subject:Date:In-Reply-To:References:From; b=kb3+yWQmW74cxaGwX1nbHClsdqooYV1eQX1/iFFxyPt6PtYIIUEBRScOAKjzGGwQ/ 3a0PTLo5ZpYl1zI8baP9sX+fQwA3nfEnCoF2XfbSc4WYaHVdL9fcJCl8mk83z9go6b +0GmfYSZDn566TL3/OvPHWsVL2ikuvYMARfJWvwY= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Subject: [PATCH 03/11] subprojects: Add nlohmann_json to .gitignore Date: Sun, 5 Apr 2026 22:14:35 +0300 Message-ID: <20260405191443.1209948-4-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> References: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" libcamera use the nlohmann_json wrap indirectly through libpisp. This causes the nlohmann_json.wrap being copied to /subprojects at configure time, and nlohmann_json being downloaded to /nlohmann_json-3.11.2. Add corresponding entries to .gitignore. Signed-off-by: Laurent Pinchart --- subprojects/.gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/subprojects/.gitignore b/subprojects/.gitignore index d2ba90074717..1ca3e141b22e 100644 --- a/subprojects/.gitignore +++ b/subprojects/.gitignore @@ -3,5 +3,7 @@ /googletest-release* /libpisp /libyuv +/nlohmann_json-3.11.2 +/nlohmann_json.wrap /packagecache /yaml-0.2.5 From patchwork Sun Apr 5 19:14:36 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 26420 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 9FEF6BEFBE for ; Sun, 5 Apr 2026 19:14:55 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 4F04362D7E; Sun, 5 Apr 2026 21:14:55 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="jnetrahA"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 3BF3862D6F for ; Sun, 5 Apr 2026 21:14:51 +0200 (CEST) Received: from killaraus.ideasonboard.com (2001-14ba-703d-e500--2a1.rev.dnainternet.fi [IPv6:2001:14ba:703d:e500::2a1]) by perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id CAFC1144E for ; Sun, 5 Apr 2026 21:13:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1775416405; bh=qtmDRGq6XU51OL3tvlDriAZj7Yn7kx74OEeAmsfToG8=; h=From:To:Subject:Date:In-Reply-To:References:From; b=jnetrahAwg+nZVV7FyKq2JAd3Op5zqr24DmxNOzqPdFpJhoWITpF/00H+tCiKAZcJ xj6Nocr/XV3Qu5CA9JGIIegZYy3b3TV5BRBvu6+AOrbNMF/WSl/bMTKkK6FtGoQCob xNpUE9JsUpq0YqjRXM9TOQVHZSQ3iUV1WtlBU8X0= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Subject: [PATCH 04/11] reuse: Convert to REUSE.toml Date: Sun, 5 Apr 2026 22:14:36 +0300 Message-ID: <20260405191443.1209948-5-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> References: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Reuse dep5 support is deprecated. Convert to the recommended REUSE.toml. The change was generated by `reuse convert-dep5`. Signed-off-by: Laurent Pinchart --- .reuse/dep5 | 28 ---------------------------- REUSE.toml | 29 +++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 28 deletions(-) delete mode 100644 .reuse/dep5 create mode 100644 REUSE.toml diff --git a/.reuse/dep5 b/.reuse/dep5 deleted file mode 100644 index 9cdb56e81ae3..000000000000 --- a/.reuse/dep5 +++ /dev/null @@ -1,28 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: libcamera -Upstream-Contact: Laurent Pinchart -Source: https://git.libcamera.org/libcamera/libcamera.git/ - -Files: Documentation/binning.svg - Documentation/camera-sensor-model.rst - Documentation/sensor_model.svg - Documentation/theme/static/libcamera-logo-text.svg -Copyright: Copyright 2023 Ideas On Board Oy -License: CC-BY-SA-4.0 - -Files: src/ipa/rpi/vc4/data/*.json - utils/raspberrypi/ctt/ctt_config_example.json - utils/raspberrypi/ctt/ctt_ref.pgm -Copyright: 2019-2020 Raspberry Pi Ltd -License: BSD-2-Clause - -Files: src/qcam/assets/feathericons/*.svg -Copyright: 2019 Cole Bemis (and other Feather icons contributors) -License: MIT -Comment: https://feathericons.com/ - -Files: utils/ipc/mojo - utils/ipc/tools -Copyright: Copyright 2013-2020 The Chromium Authors. All rights reserved. -License: BSD-3-Clause -Source: https://chromium.googlesource.com/chromium/src.git/ diff --git a/REUSE.toml b/REUSE.toml new file mode 100644 index 000000000000..046ae4df22ce --- /dev/null +++ b/REUSE.toml @@ -0,0 +1,29 @@ +version = 1 +SPDX-PackageName = "libcamera" +SPDX-PackageSupplier = "Laurent Pinchart " +SPDX-PackageDownloadLocation = "https://git.libcamera.org/libcamera/libcamera.git/" + +[[annotations]] +path = ["Documentation/binning.svg", "Documentation/camera-sensor-model.rst", "Documentation/sensor_model.svg", "Documentation/theme/static/libcamera-logo-text.svg"] +precedence = "aggregate" +SPDX-FileCopyrightText = "Copyright 2023 Ideas On Board Oy" +SPDX-License-Identifier = "CC-BY-SA-4.0" + +[[annotations]] +path = ["src/ipa/rpi/vc4/data/**.json", "utils/raspberrypi/ctt/ctt_config_example.json", "utils/raspberrypi/ctt/ctt_ref.pgm"] +precedence = "aggregate" +SPDX-FileCopyrightText = "2019-2020 Raspberry Pi Ltd" +SPDX-License-Identifier = "BSD-2-Clause" + +[[annotations]] +path = "src/qcam/assets/feathericons/**.svg" +precedence = "aggregate" +SPDX-FileCopyrightText = "2019 Cole Bemis (and other Feather icons contributors)" +SPDX-License-Identifier = "MIT" +SPDX-FileComment = "https://feathericons.com/" + +[[annotations]] +path = ["utils/ipc/mojo", "utils/ipc/tools"] +precedence = "aggregate" +SPDX-FileCopyrightText = "Copyright 2013-2020 The Chromium Authors. All rights reserved." +SPDX-License-Identifier = "BSD-3-Clause" From patchwork Sun Apr 5 19:14:37 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 26421 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 65BB4C32BB for ; Sun, 5 Apr 2026 19:14:56 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 0750162D81; Sun, 5 Apr 2026 21:14:56 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="N1uzojIw"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 93AB762D76 for ; Sun, 5 Apr 2026 21:14:52 +0200 (CEST) Received: from killaraus.ideasonboard.com (2001-14ba-703d-e500--2a1.rev.dnainternet.fi [IPv6:2001:14ba:703d:e500::2a1]) by perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 599241988 for ; Sun, 5 Apr 2026 21:13:26 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1775416406; bh=ws84Udqlvb8ZljK3JMRgqeeYsoVCyfmGArlsqE2kKyc=; h=From:To:Subject:Date:In-Reply-To:References:From; b=N1uzojIwLMhuXezimUZa1gTGnzIhCScPHIGWFYnAqwR0VdKK/DJOk2CFt6Jyq6QEU MnuhUMU9qn/1VDnmKOFzGjuEQ4slNQgrxgBfnIx96V7NlNYKk2PrXVKZzAII2I/8i2 7c+ESw7cnGveKtYKZKuMECBYVlK8YcvDgW4RZrkQ= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Subject: [PATCH 05/11] reuse: Update file paths in REUSE.toml Date: Sun, 5 Apr 2026 22:14:37 +0300 Message-ID: <20260405191443.1209948-6-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> References: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Multiple files listed in REUSE.toml have moved within the repository without any update to the REUSE.toml file. Fix it. Signed-off-by: Laurent Pinchart --- REUSE.toml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/REUSE.toml b/REUSE.toml index 046ae4df22ce..36bfe506aa2c 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -4,26 +4,35 @@ SPDX-PackageSupplier = "Laurent Pinchart " SPDX-PackageDownloadLocation = "https://git.libcamera.org/libcamera/libcamera.git/" [[annotations]] -path = ["Documentation/binning.svg", "Documentation/camera-sensor-model.rst", "Documentation/sensor_model.svg", "Documentation/theme/static/libcamera-logo-text.svg"] +path = [ + "Documentation/binning.svg", + "Documentation/camera-sensor-model.rst", + "Documentation/images/rotation/**.svg", + "Documentation/sensor_model.svg", + "Documentation/theme/static/libcamera-logo-text.svg", +] precedence = "aggregate" SPDX-FileCopyrightText = "Copyright 2023 Ideas On Board Oy" SPDX-License-Identifier = "CC-BY-SA-4.0" [[annotations]] -path = ["src/ipa/rpi/vc4/data/**.json", "utils/raspberrypi/ctt/ctt_config_example.json", "utils/raspberrypi/ctt/ctt_ref.pgm"] +path = ["src/ipa/rpi/vc4/data/**.json"] precedence = "aggregate" SPDX-FileCopyrightText = "2019-2020 Raspberry Pi Ltd" SPDX-License-Identifier = "BSD-2-Clause" [[annotations]] -path = "src/qcam/assets/feathericons/**.svg" +path = "src/apps/qcam/assets/feathericons/**.svg" precedence = "aggregate" SPDX-FileCopyrightText = "2019 Cole Bemis (and other Feather icons contributors)" SPDX-License-Identifier = "MIT" SPDX-FileComment = "https://feathericons.com/" [[annotations]] -path = ["utils/ipc/mojo", "utils/ipc/tools"] +path = [ + "utils/codegen/ipc/mojo/**", + "utils/codegen/ipc/tools/**", +] precedence = "aggregate" SPDX-FileCopyrightText = "Copyright 2013-2020 The Chromium Authors. All rights reserved." SPDX-License-Identifier = "BSD-3-Clause" From patchwork Sun Apr 5 19:14:38 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 26422 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id D928ABEFBE for ; Sun, 5 Apr 2026 19:14:57 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 6FC2762D7B; Sun, 5 Apr 2026 21:14:57 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="d0rCKNvF"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id DFEC162D76 for ; Sun, 5 Apr 2026 21:14:53 +0200 (CEST) Received: from killaraus.ideasonboard.com (2001-14ba-703d-e500--2a1.rev.dnainternet.fi [IPv6:2001:14ba:703d:e500::2a1]) by perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id BADE619C6 for ; Sun, 5 Apr 2026 21:13:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1775416407; bh=ZDTXEk/UGlhvlaWWxnBd6F68+6Sy4CBGd6YQTIyxi30=; h=From:To:Subject:Date:In-Reply-To:References:From; b=d0rCKNvFwsHXVxbnss/woXT0x8RBMioCVoGOmd0q8Tii19kPhRmeO2DqUZ4dcXhvf ybYKDOjs9kRzai8Lt2gg8jfvzpHzJZW9cO7Xk5i+ZpOnRIa2+Yex3LzMtVGUZEH4Cp X9vQaZ3pph9cvOgzsSdj0mN5jpuYH61Cm6lipiuI= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Subject: [PATCH 06/11] reuse: Drop unnecessary entry from REUSE.toml Date: Sun, 5 Apr 2026 22:14:38 +0300 Message-ID: <20260405191443.1209948-7-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> References: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The Documentation/camera-sensor-model.rst flie contains an SPDX license identifier. There's no need to list it in REUSE.toml. Drop it. Signed-off-by: Laurent Pinchart --- REUSE.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/REUSE.toml b/REUSE.toml index 36bfe506aa2c..b6edab1b1cfc 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -6,7 +6,6 @@ SPDX-PackageDownloadLocation = "https://git.libcamera.org/libcamera/libcamera.gi [[annotations]] path = [ "Documentation/binning.svg", - "Documentation/camera-sensor-model.rst", "Documentation/images/rotation/**.svg", "Documentation/sensor_model.svg", "Documentation/theme/static/libcamera-logo-text.svg", From patchwork Sun Apr 5 19:14:39 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 26423 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 99483BEFBE for ; Sun, 5 Apr 2026 19:14:59 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 3589F62D8C; Sun, 5 Apr 2026 21:14:59 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="RrDViuV2"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 7123F62D7F for ; Sun, 5 Apr 2026 21:14:55 +0200 (CEST) Received: from killaraus.ideasonboard.com (2001-14ba-703d-e500--2a1.rev.dnainternet.fi [IPv6:2001:14ba:703d:e500::2a1]) by perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 3D0966AF for ; Sun, 5 Apr 2026 21:13:29 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1775416409; bh=VAwTF7ev5BXkyutdpHmcWdOGziwy5ya0pFE3+zuxuVo=; h=From:To:Subject:Date:In-Reply-To:References:From; b=RrDViuV2GDvo8CvvdEST6iKO5pp8O4Jp7IYDTbX90/mtH+llI1Q9r5YpUZDB7BqI+ HbNUfE96H+GlDUXH4AA6qZwCtC9/tnDM0hMS/+Y4cE514OwludHEpvoeBf34HrorKU f6hjCpgGdWVqTFNh86fjMy4XRMoL7TNsQevAAU8k= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Subject: [PATCH 07/11] reuse: Add missing files to REUSE.toml Date: Sun, 5 Apr 2026 22:14:39 +0300 Message-ID: <20260405191443.1209948-8-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> References: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The skipping.svg image and the Raspberry Pi 5 tuning files are missing. Add them. Signed-off-by: Laurent Pinchart --- REUSE.toml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/REUSE.toml b/REUSE.toml index b6edab1b1cfc..77090b8fdb96 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -8,6 +8,7 @@ path = [ "Documentation/binning.svg", "Documentation/images/rotation/**.svg", "Documentation/sensor_model.svg", + "Documentation/skipping.svg", "Documentation/theme/static/libcamera-logo-text.svg", ] precedence = "aggregate" @@ -15,7 +16,10 @@ SPDX-FileCopyrightText = "Copyright 2023 Ideas On Board Oy" SPDX-License-Identifier = "CC-BY-SA-4.0" [[annotations]] -path = ["src/ipa/rpi/vc4/data/**.json"] +path = [ + "src/ipa/rpi/pisp/data/**.json", + "src/ipa/rpi/vc4/data/**.json", +] precedence = "aggregate" SPDX-FileCopyrightText = "2019-2020 Raspberry Pi Ltd" SPDX-License-Identifier = "BSD-2-Clause" From patchwork Sun Apr 5 19:14:40 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 26424 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 8CE08C32BB for ; Sun, 5 Apr 2026 19:15:00 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 459CB62D88; Sun, 5 Apr 2026 21:15:00 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="bd7uUoO6"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id B219862D7D for ; Sun, 5 Apr 2026 21:14:58 +0200 (CEST) Received: from killaraus.ideasonboard.com (2001-14ba-703d-e500--2a1.rev.dnainternet.fi [IPv6:2001:14ba:703d:e500::2a1]) by perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 8260119C6 for ; Sun, 5 Apr 2026 21:13:32 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1775416412; bh=IOEQVkTw9+AJ3hG15RqsSjgUVvJBOZG8h+DFaKEZ6gg=; h=From:To:Subject:Date:In-Reply-To:References:From; b=bd7uUoO6rNy0+Ofwn7djqKk0OgvxCA0/UScu+IquyvhitP1/irW5zBUJqum+boUEY fz4Hgmd7jayMWlXBqX6pO67Z20tG7tZ1oiJV8PBuE6C496MpEPie1Y/K2Fk4Qpo0aI 6q9cwbcu4ukgPvAMxnuUEztBk47hi7bZ69Ag4JGM= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Subject: [PATCH 08/11] utils: ipc: extract-docs: Work around reuse tool problem Date: Sun, 5 Apr 2026 22:14:40 +0300 Message-ID: <20260405191443.1209948-9-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> References: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The reuse tool fails to lint the extract-docs.py file because it considers the 'SPDX-License-Identifier' string in a regex as a malformed license identifier. Work around the issue by adding parentheses in the regular expression, which doesn't affect the behaviour of the regex matching but prevents the reuse tool from seeing the line. Signed-off-by: Laurent Pinchart --- utils/codegen/ipc/extract-docs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/codegen/ipc/extract-docs.py b/utils/codegen/ipc/extract-docs.py index 61f44caef52a..c51c4ab01a81 100755 --- a/utils/codegen/ipc/extract-docs.py +++ b/utils/codegen/ipc/extract-docs.py @@ -12,7 +12,7 @@ import sys regex_block_start = re.compile(r'^/\*\*$') regex_block_end = re.compile(r'^ \*/$') -regex_spdx = re.compile(r'^/\* SPDX-License-Identifier: .* \*/$') +regex_spdx = re.compile(r'^/\* (SPDX)-License-Identifier: .* \*/$') def main(argv): From patchwork Sun Apr 5 19:14:41 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 26425 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 88F25BEFBE for ; Sun, 5 Apr 2026 19:15:02 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 36FB862D85; Sun, 5 Apr 2026 21:15:02 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="fhbDd2hK"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 0A4B162D85 for ; Sun, 5 Apr 2026 21:15:00 +0200 (CEST) Received: from killaraus.ideasonboard.com (2001-14ba-703d-e500--2a1.rev.dnainternet.fi [IPv6:2001:14ba:703d:e500::2a1]) by perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id C439E1988 for ; Sun, 5 Apr 2026 21:13:33 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1775416414; bh=J8xq2pL12/OlghaIx06YfAUHhJRr1VblGS5CWT+BIbM=; h=From:To:Subject:Date:In-Reply-To:References:From; b=fhbDd2hKahOHkTMCfDXiUKGiAcZsbc2yDk6mbWUH9HN5YVzqQmtvH9x+n4TP4Y19j dTZSyXOdslhtxTfVFaklPS5zd9wtIa713w6Tkp1TQaxHWCQEpb2xeb/mcDcjhzbcwa PPtWIeynz6GNm75vIh/YfgYxXNxu7PwmzQNsUOvY= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Subject: [PATCH 09/11] libcamera: Add missing SPDX headers Date: Sun, 5 Apr 2026 22:14:41 +0300 Message-ID: <20260405191443.1209948-10-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> References: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Multiple files in libcamera are missing SPDX headers. Add them with the following licenses: - CC-BY-SA-4.0 for documentation - CC0-1.0 for build system, development tool configuration files and TODO lists, as we consider them non-copyrightable, and for example configuration files to facilitate their use - BSD-2-Clause for a file copied from the Raspberry Pi tuning tool (and add the corresponding copyright information) While at it, add a missing blank line to src/libcamera/pipeline/virtual/README.md. Signed-off-by: Laurent Pinchart --- .b4-config | 2 ++ Documentation/mainpage.dox | 2 ++ Documentation/thread-safety.dox | 2 ++ src/libcamera/pipeline/virtual/README.md | 3 +++ src/libcamera/pipeline/virtual/data/meson.build | 2 ++ src/libcamera/software_isp/TODO.md | 2 ++ utils/tuning/config-example.yaml | 1 + utils/tuning/libtuning/ctt_colors.py | 5 +++++ utils/tuning/requirements.txt | 1 + 9 files changed, 20 insertions(+) diff --git a/.b4-config b/.b4-config index 371e3e9c2485..99d0361ce453 100644 --- a/.b4-config +++ b/.b4-config @@ -1,2 +1,4 @@ +# SPDX-License-Identifier: CC0-1.0 + [b4] send-series-to = libcamera-devel@lists.libcamera.org diff --git a/Documentation/mainpage.dox b/Documentation/mainpage.dox index 99e67e7ab13d..b651788ee918 100644 --- a/Documentation/mainpage.dox +++ b/Documentation/mainpage.dox @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: CC-BY-SA-4.0 + /** \if internal \mainpage libcamera internal API reference diff --git a/Documentation/thread-safety.dox b/Documentation/thread-safety.dox index df4c457c89d6..0bc02bfc071f 100644 --- a/Documentation/thread-safety.dox +++ b/Documentation/thread-safety.dox @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: CC-BY-SA-4.0 + /** * \page thread-safety Reentrancy and Thread-Safety * diff --git a/src/libcamera/pipeline/virtual/README.md b/src/libcamera/pipeline/virtual/README.md index a9f39c15172b..0b2f03d8d719 100644 --- a/src/libcamera/pipeline/virtual/README.md +++ b/src/libcamera/pipeline/virtual/README.md @@ -1,3 +1,5 @@ + + # Virtual Pipeline Handler Virtual pipeline handler emulates fake external camera(s) for testing. @@ -9,6 +11,7 @@ Virtual pipeline handler emulates fake external camera(s) for testing. `share/libcamera/pipeline/virtual/virtual.yaml`. ### Config File Format + The config file contains the information about cameras' properties to register. The config file should be a yaml file with dictionary of the cameraIds associated with their properties as top level. The default value will be applied diff --git a/src/libcamera/pipeline/virtual/data/meson.build b/src/libcamera/pipeline/virtual/data/meson.build index ce63f9a27d43..0cade65bfa15 100644 --- a/src/libcamera/pipeline/virtual/data/meson.build +++ b/src/libcamera/pipeline/virtual/data/meson.build @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: CC0-1.0 + install_data('virtual.yaml', install_dir : pipeline_data_dir / 'virtual', install_tag : 'runtime', diff --git a/src/libcamera/software_isp/TODO.md b/src/libcamera/software_isp/TODO.md index 036cf2b7f9ce..0f27da2d243f 100644 --- a/src/libcamera/software_isp/TODO.md +++ b/src/libcamera/software_isp/TODO.md @@ -1,3 +1,5 @@ + + # Software ISP TODO list This file contains the TODO list for the software ISP. diff --git a/utils/tuning/config-example.yaml b/utils/tuning/config-example.yaml index 680f9213b269..0929d90ef747 100644 --- a/utils/tuning/config-example.yaml +++ b/utils/tuning/config-example.yaml @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: CC0-1.0 general: disable: [] plot: [] diff --git a/utils/tuning/libtuning/ctt_colors.py b/utils/tuning/libtuning/ctt_colors.py index cb4d236b04d7..7e9ba646fa5b 100644 --- a/utils/tuning/libtuning/ctt_colors.py +++ b/utils/tuning/libtuning/ctt_colors.py @@ -1,4 +1,9 @@ +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (C) 2023, Raspberry Pi Ltd +# # Program to convert from RGB to LAB color space + def RGB_to_LAB(RGB): # where RGB is a 1x3 array. e.g RGB = [100, 255, 230] num = 0 XYZ = [0, 0, 0] diff --git a/utils/tuning/requirements.txt b/utils/tuning/requirements.txt index 3705769be7ff..8e14ce0911da 100644 --- a/utils/tuning/requirements.txt +++ b/utils/tuning/requirements.txt @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: CC0-1.0 coloredlogs matplotlib numpy From patchwork Sun Apr 5 19:14:42 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 26426 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 2D108C32BB for ; Sun, 5 Apr 2026 19:15:05 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id D11D162D95; Sun, 5 Apr 2026 21:15:04 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="bGO9nEI/"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 9BBC362D85 for ; Sun, 5 Apr 2026 21:15:01 +0200 (CEST) Received: from killaraus.ideasonboard.com (2001-14ba-703d-e500--2a1.rev.dnainternet.fi [IPv6:2001:14ba:703d:e500::2a1]) by perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 6A6CB1988 for ; Sun, 5 Apr 2026 21:13:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1775416415; bh=vWsA1tHJXaZ1OhaKvINtC9qr9osvAbLBcIvyYxHbaZo=; h=From:To:Subject:Date:In-Reply-To:References:From; b=bGO9nEI/ZcyXTFI8HnAPcpODKaKJhTR7daWgTvnHhWkPqXQIM8ip6Sr+DIIU/isME 7MbJBAIVKTy3a9p1HySm97CEpa1owvk/WAO6VCwOQPoqxmZ9a5Ed/PbVFkRSx+HiKQ YvlnIR89Yf+6YL4TXIgRxaI8K6CuvotVzg6ZjOQw= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Subject: [PATCH 10/11] libcamera: rpi: Add missing SPDX headers Date: Sun, 5 Apr 2026 22:14:42 +0300 Message-ID: <20260405191443.1209948-11-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> References: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Multiple files in the Raspberry Pi pipeline handler and IPA module are missing SPDX headers. Add them with the following licenses: - For code and documentation, use the BSD-2-Clause license, as for the rest of the Raspberry Pi code. - For the example pipeline handler configuration files, use the CC0-1.0 license to facilitate their usage. Signed-off-by: Laurent Pinchart --- src/ipa/rpi/controller/decompand_status.h | 1 + src/ipa/rpi/controller/rpi/decompand.cpp | 2 ++ src/ipa/rpi/controller/rpi/decompand.h | 1 + src/libcamera/pipeline/rpi/pisp/data/example.yaml | 1 + src/libcamera/pipeline/rpi/vc4/data/example.yaml | 1 + utils/raspberrypi/ctt/README.md | 2 ++ 6 files changed, 8 insertions(+) diff --git a/src/ipa/rpi/controller/decompand_status.h b/src/ipa/rpi/controller/decompand_status.h index 2d9888dca4f3..d024fe71936d 100644 --- a/src/ipa/rpi/controller/decompand_status.h +++ b/src/ipa/rpi/controller/decompand_status.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include "libipa/pwl.h" diff --git a/src/ipa/rpi/controller/rpi/decompand.cpp b/src/ipa/rpi/controller/rpi/decompand.cpp index 2d457926c060..b93e5c0b1974 100644 --- a/src/ipa/rpi/controller/rpi/decompand.cpp +++ b/src/ipa/rpi/controller/rpi/decompand.cpp @@ -1,3 +1,5 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ + #include "decompand.h" #include diff --git a/src/ipa/rpi/controller/rpi/decompand.h b/src/ipa/rpi/controller/rpi/decompand.h index 6db779c359a8..fdb4d733adda 100644 --- a/src/ipa/rpi/controller/rpi/decompand.h +++ b/src/ipa/rpi/controller/rpi/decompand.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include diff --git a/src/libcamera/pipeline/rpi/pisp/data/example.yaml b/src/libcamera/pipeline/rpi/pisp/data/example.yaml index c5edbba074e8..4b0742452cf1 100644 --- a/src/libcamera/pipeline/rpi/pisp/data/example.yaml +++ b/src/libcamera/pipeline/rpi/pisp/data/example.yaml @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: CC0-1.0 { "version": 1.0, "target": "pisp", diff --git a/src/libcamera/pipeline/rpi/vc4/data/example.yaml b/src/libcamera/pipeline/rpi/vc4/data/example.yaml index 2ee2b864d55f..9e8d0fdb225f 100644 --- a/src/libcamera/pipeline/rpi/vc4/data/example.yaml +++ b/src/libcamera/pipeline/rpi/vc4/data/example.yaml @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: CC0-1.0 { "version": 1.0, "target": "bcm2835", diff --git a/utils/raspberrypi/ctt/README.md b/utils/raspberrypi/ctt/README.md index c3a738ad01ad..aa78274667b6 100644 --- a/utils/raspberrypi/ctt/README.md +++ b/utils/raspberrypi/ctt/README.md @@ -1,3 +1,5 @@ +.. SPDX-License-Identifier: BSD-2-Clause + The Raspberry Pi CTT has moved from this location to the following GitHub repository: From patchwork Sun Apr 5 19:14:43 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 26427 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id D2C8BBEFBE for ; Sun, 5 Apr 2026 19:15:05 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 7E8A062D98; Sun, 5 Apr 2026 21:15:05 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="W4vcoOXG"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id EC8B362D99 for ; Sun, 5 Apr 2026 21:15:02 +0200 (CEST) Received: from killaraus.ideasonboard.com (2001-14ba-703d-e500--2a1.rev.dnainternet.fi [IPv6:2001:14ba:703d:e500::2a1]) by perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id BC3FDC87 for ; Sun, 5 Apr 2026 21:13:36 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1775416416; bh=oQ6Dpt93f+RsOZlyPURSM3QUFk+GmiGXiS0wy6GRBCY=; h=From:To:Subject:Date:In-Reply-To:References:From; b=W4vcoOXGFJuTPAFF0a3JLIbq9kR+HK96Bn3i/f7srNloQrkuO9V8MpywziDJ/KMhN qE7yOXP+Z8wyHAMSovBmZ7dI0mmbHu8Y7thLVIXYo9FIp7ecbE95bDh2dH9n6aI+NR 4BT2vM5D+Fr5YuN7A+uSAdBe+8y4qLl0ullJs4SI= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Subject: [PATCH 11/11] include: linux: Convert drm_fourcc.h to use SPDX Date: Sun, 5 Apr 2026 22:14:43 +0300 Message-ID: <20260405191443.1209948-12-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> References: <20260405191443.1209948-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" drm_fourcc.h is the last file in libcamera to miss machine-parseable license information. A patch to convert it to SPDX license identifiers has been submitted to the kernel. Until it gets merged, apply the change locally. Signed-off-by: Laurent Pinchart --- include/linux/drm_fourcc.h | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/include/linux/drm_fourcc.h b/include/linux/drm_fourcc.h index 8d7d89551bb3..b444c7f895e4 100644 --- a/include/linux/drm_fourcc.h +++ b/include/linux/drm_fourcc.h @@ -1,24 +1,6 @@ +/* SPDX-License-Identifier: MIT */ /* * Copyright 2011 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef DRM_FOURCC_H