| Message ID | 20251117080818.3009835-1-paul.elder@ideasonboard.com |
|---|---|
| Headers | show
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 [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id DE8DABD80A for <parsemail@patchwork.libcamera.org>; Mon, 17 Nov 2025 08:08:43 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 8F03460A8B; Mon, 17 Nov 2025 09:08:42 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="kVfPc8vQ"; 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 CA000606A0 for <libcamera-devel@lists.libcamera.org>; Mon, 17 Nov 2025 09:08:40 +0100 (CET) Received: from neptunite.hamster-moth.ts.net (unknown [IPv6:2404:7a81:160:2100:e0cd:14aa:3681:9fc1]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id DF59EFE; Mon, 17 Nov 2025 09:06:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1763366797; bh=vmHNw7/n2sp81QYf39H663rURpt9R7BcLGJ75ofI4jQ=; h=From:To:Cc:Subject:Date:From; b=kVfPc8vQ2xqNBWQFOkSONUq2vEtlEX4aAT5lFA/F4L8dTRKEQRbN1w6hQvCdYI2Fz y5Ata0dYlcRCAJw6XHkpyTcPN7cAAC71cZ01mbdIs819Mpbem35/9VfbYWb7Xs3sCc ks0PESp/1YoUJBOuMPYfyl/BtMFkti7/ufm+W/D0= From: Paul Elder <paul.elder@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Paul Elder <paul.elder@ideasonboard.com> Subject: [PATCH v6 0/2] Fix ControlSerializer deserializing array controls Date: Mon, 17 Nov 2025 17:08:13 +0900 Message-ID: <20251117080818.3009835-1-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.47.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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>, <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>, <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> |
| Series |
|
| Related |
show
|
This series fixes bug 285 [0] where running IPAs in isolation with array controls would cause the control deserialization to fail, since the deserializer didn't properly deserialize array controls. This is fixed by making the deserializer properly deserialize array controls, by adding all ControlValue metadata to the serialized form of ControlInfoMap. v6 notably moves ipa_control_value_entry into ipa_control_info_entry, as opposed to serializing them in the same level like before. v5 contains minor cleanups. v4 notably cleans up unused fields in metatata structs, so it touches ControlList as well. In v3 we reuse struct ipa_control_value_entry to store the relevant information instead, and add them to the serialized form of ControlInfoMap. In v2 the arrayness and size are stored in the serialized form of ControlValue instead of using the information registered in the ControlId. This allows us to support variable-length arrays (which v1 didn't), and allows us to support both non-array and array types min/max ControlValues in the ControlInfo, depending on which type of min/max value makes more sense for the specific control. [0] https://bugs.libcamera.org/show_bug.cgi?id=285 Paul Elder (2): libcamera: control_serializer: Add array info to serialized ControlValue ipa: ipu3, mali-c55, rkisp1, rpi: Fix reporting non-scalar controls .../libcamera/internal/control_serializer.h | 8 +- include/libcamera/ipa/ipa_controls.h | 16 +- src/ipa/ipu3/ipu3.cpp | 4 +- src/ipa/mali-c55/mali-c55.cpp | 4 +- src/ipa/rkisp1/algorithms/awb.cpp | 4 +- src/ipa/rkisp1/rkisp1.cpp | 3 +- src/ipa/rpi/common/ipa_base.cpp | 7 +- src/libcamera/control_serializer.cpp | 106 +++++++---- src/libcamera/ipa_controls.cpp | 178 ++++++++++-------- 9 files changed, 197 insertions(+), 133 deletions(-)