From patchwork Fri Apr 23 10:47:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 12099 X-Patchwork-Delegate: paul.elder@ideasonboard.com 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 3F00ABDB15 for ; Fri, 23 Apr 2021 10:47:25 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id F052C6887E; Fri, 23 Apr 2021 12:47:24 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="Z6kI95xu"; 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 473BB602D1 for ; Fri, 23 Apr 2021 12:47:23 +0200 (CEST) Received: from pyrite.rasen.tech (unknown [IPv6:2400:4051:61:600:2c71:1b79:d06d:5032]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 0C11A332; Fri, 23 Apr 2021 12:47:20 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1619174842; bh=xc75bAVMG8Fk+xiu0QkHuxuR+saagzzTBvvrPLAM4so=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z6kI95xuQFV4oaydbD9PXnAghiTCgbJBlJQm1qJefcQEhmTPvdRZAsdoL3BLAmgKy Nne09c6YMZm36E2ybCRvblBUpQyW1SDJwEj+rr/inY6RhgFA8jdmTL089L9VoUoWtW valdY5m29w/WbVjjz2AnTnxKTr0OZ6JdPdHCUUG8= From: Paul Elder To: libcamera-devel@lists.libcamera.org Date: Fri, 23 Apr 2021 19:47:09 +0900 Message-Id: <20210423104711.401547-2-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210423104711.401547-1-paul.elder@ideasonboard.com> References: <20210423104711.401547-1-paul.elder@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 1/3] utils: ipc: Include instead of forward-declare CameraSensorInfo 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" For structs defined in core.mojom that have the skipHeader tag, if they're only used in function parameters (in a mojom file) then a forward-declaration is sufficient. However, if the struct is used in another struct in a mojom file, then the forward-declaration is insufficient, and the definition needs to be included. Do so for CameraSensorInfo, which is the only forward-declared struct in ipa_interface.h, and update the documentation comment. Signed-off-by: Paul Elder Tested-by: Umang Jain Reviewed-by: Laurent Pinchart --- Changes in v3: - update the documentation in core.mojom too --- include/libcamera/ipa/core.mojom | 3 +-- include/libcamera/ipa/ipa_interface.h | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/include/libcamera/ipa/core.mojom b/include/libcamera/ipa/core.mojom index 5363f1c5..70de71ea 100644 --- a/include/libcamera/ipa/core.mojom +++ b/include/libcamera/ipa/core.mojom @@ -38,8 +38,7 @@ * implemented in ipa_data_serializer.h, as it cannot be defined in mojom * - [skipHeader] and [skipSerdes] only work here in core.mojom. * - If a struct definition has [skipHeader], then the header where the - * struct is defined must be #included (or the struct forward-declared) in - * ipa_interface.h + * struct is defined must be #included in ipa_interface.h * - If a field in a struct has a FileDescriptor, but is not explicitly * defined so in mojom, then the field must be marked with the [hasFd] * attribute. diff --git a/include/libcamera/ipa/ipa_interface.h b/include/libcamera/ipa/ipa_interface.h index 5d99e2cf..dfe1b40a 100644 --- a/include/libcamera/ipa/ipa_interface.h +++ b/include/libcamera/ipa/ipa_interface.h @@ -18,15 +18,15 @@ #include #include +#include "libcamera/internal/camera_sensor.h" + namespace libcamera { /* * Structs that are defined in core.mojom and have the skipHeader tag must be - * forward-declared or #included here. + * #included here. */ -struct CameraSensorInfo; - class IPAInterface { public: From patchwork Fri Apr 23 10:47:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 12100 X-Patchwork-Delegate: paul.elder@ideasonboard.com 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 AD130BDB15 for ; Fri, 23 Apr 2021 10:47:27 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 7184760513; Fri, 23 Apr 2021 12:47:27 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="FZr/DIrb"; 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 2971068880 for ; Fri, 23 Apr 2021 12:47:25 +0200 (CEST) Received: from pyrite.rasen.tech (unknown [IPv6:2400:4051:61:600:2c71:1b79:d06d:5032]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 948B8332; Fri, 23 Apr 2021 12:47:23 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1619174844; bh=NhoVW4xnAXtePVeeBkFiz3AokU81yT8dqi5iCl6xVOg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FZr/DIrbF63Mx2NeGZrSW1rbNRgU+1WA8CJr6yhXLuqJPn60wYGv+Yc2d9kTjVe+C qr5xsOJcMFw6gd2vpxDyi+cpmrFx2rfMMj7ohvwRYu9od19wshW0PQVb40/iPpVgzW Xh02m0v0xPhdTYkUu4Qbo5IfhKaVZ66z11hY1Yok= From: Paul Elder To: libcamera-devel@lists.libcamera.org Date: Fri, 23 Apr 2021 19:47:10 +0900 Message-Id: <20210423104711.401547-3-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210423104711.401547-1-paul.elder@ideasonboard.com> References: <20210423104711.401547-1-paul.elder@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 2/3] utils: ipc: Use the proper namespace for mojom structs 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" Structs defined in mojom previously used the namespace of the mojom file that was being used as the source. This is obviously not the correct namespace for structs that are defined in core.mojom. Fix the jinja function for getting the element type including namespace, and use it. Signed-off-by: Paul Elder Reviewed-by: Laurent Pinchart --- New in v3 --- .../module_ipa_serializer.h.tmpl | 2 +- .../libcamera_templates/serializer.tmpl | 34 +++++++++---------- .../generators/mojom_libcamera_generator.py | 16 ++++++--- 3 files changed, 30 insertions(+), 22 deletions(-) diff --git a/utils/ipc/generators/libcamera_templates/module_ipa_serializer.h.tmpl b/utils/ipc/generators/libcamera_templates/module_ipa_serializer.h.tmpl index 64ae99dc..779d2114 100644 --- a/utils/ipc/generators/libcamera_templates/module_ipa_serializer.h.tmpl +++ b/utils/ipc/generators/libcamera_templates/module_ipa_serializer.h.tmpl @@ -30,7 +30,7 @@ namespace libcamera { LOG_DECLARE_CATEGORY(IPADataSerializer) {% for struct in structs_nonempty %} template<> -class IPADataSerializer<{{struct|name_full(namespace_str)}}> +class IPADataSerializer<{{struct|name_full}}> { public: {{- serializer.serializer(struct, namespace_str)}} diff --git a/utils/ipc/generators/libcamera_templates/serializer.tmpl b/utils/ipc/generators/libcamera_templates/serializer.tmpl index af35b9e3..d8d55807 100644 --- a/utils/ipc/generators/libcamera_templates/serializer.tmpl +++ b/utils/ipc/generators/libcamera_templates/serializer.tmpl @@ -68,7 +68,7 @@ {%- elif field|is_str %} IPADataSerializer<{{field|name}}>::serialize(data.{{field.mojom_name}}); {%- else %} - IPADataSerializer<{{field|name_full(namespace)}}>::serialize(data.{{field.mojom_name}}, cs); + IPADataSerializer<{{field|name_full}}>::serialize(data.{{field.mojom_name}}, cs); {%- endif %} appendPOD(retData, {{field.mojom_name}}.size()); {%- if field|has_fd %} @@ -97,7 +97,7 @@ {%- if field|is_pod %} ret.{{field.mojom_name}} = IPADataSerializer<{{field|name}}>::deserialize(m, m + {{field_size}}); {%- else %} - ret.{{field.mojom_name}} = static_cast<{{field|name_full(namespace)}}>(IPADataSerializer::deserialize(m, m + {{field_size}})); + ret.{{field.mojom_name}} = static_cast<{{field|name_full}}>(IPADataSerializer::deserialize(m, m + {{field_size}})); {%- endif %} {%- if not loop.last %} m += {{field_size}}; @@ -150,11 +150,11 @@ {%- elif field|has_fd and (field|is_array or field|is_map) %} IPADataSerializer<{{field|name}}>::deserialize(m, m + {{field.mojom_name}}Size, n, n + {{field.mojom_name}}FdsSize, cs); {%- elif field|has_fd and (not (field|is_array or field|is_map)) %} - IPADataSerializer<{{field|name_full(namespace)}}>::deserialize(m, m + {{field.mojom_name}}Size, n, n + {{field.mojom_name}}FdsSize, cs); + IPADataSerializer<{{field|name_full}}>::deserialize(m, m + {{field.mojom_name}}Size, n, n + {{field.mojom_name}}FdsSize, cs); {%- elif (not field|has_fd) and (field|is_array or field|is_map) %} IPADataSerializer<{{field|name}}>::deserialize(m, m + {{field.mojom_name}}Size, cs); {%- else %} - IPADataSerializer<{{field|name_full(namespace)}}>::deserialize(m, m + {{field.mojom_name}}Size, cs); + IPADataSerializer<{{field|name_full}}>::deserialize(m, m + {{field.mojom_name}}Size, cs); {%- endif %} {%- if not loop.last %} m += {{field_size}}; @@ -178,7 +178,7 @@ #} {%- macro serializer(struct, namespace) %} static std::tuple, std::vector> - serialize(const {{struct|name_full(namespace)}} &data, + serialize(const {{struct|name_full}} &data, {%- if struct|needs_control_serializer %} ControlSerializer *cs) {%- else %} @@ -208,7 +208,7 @@ # \a struct, in the case that \a struct has file descriptors. #} {%- macro deserializer_fd(struct, namespace) %} - static {{struct|name_full(namespace)}} + static {{struct|name_full}} deserialize(std::vector &data, std::vector &fds, {%- if struct|needs_control_serializer %} @@ -217,11 +217,11 @@ ControlSerializer *cs = nullptr) {%- endif %} { - return IPADataSerializer<{{struct|name_full(namespace)}}>::deserialize(data.cbegin(), data.cend(), fds.cbegin(), fds.cend(), cs); + return IPADataSerializer<{{struct|name_full}}>::deserialize(data.cbegin(), data.cend(), fds.cbegin(), fds.cend(), cs); } {# \todo Don't inline this function #} - static {{struct|name_full(namespace)}} + static {{struct|name_full}} deserialize(std::vector::const_iterator dataBegin, std::vector::const_iterator dataEnd, std::vector::const_iterator fdsBegin, @@ -232,7 +232,7 @@ [[maybe_unused]] ControlSerializer *cs = nullptr) {%- endif %} { - {{struct|name_full(namespace)}} ret; + {{struct|name_full}} ret; std::vector::const_iterator m = dataBegin; std::vector::const_iterator n = fdsBegin; @@ -253,22 +253,22 @@ # deserializers with file descriptors. #} {%- macro deserializer_fd_simple(struct, namespace) %} - static {{struct|name_full(namespace)}} + static {{struct|name_full}} deserialize(std::vector &data, [[maybe_unused]] std::vector &fds, ControlSerializer *cs = nullptr) { - return IPADataSerializer<{{struct|name_full(namespace)}}>::deserialize(data.cbegin(), data.cend(), cs); + return IPADataSerializer<{{struct|name_full}}>::deserialize(data.cbegin(), data.cend(), cs); } - static {{struct|name_full(namespace)}} + static {{struct|name_full}} deserialize(std::vector::const_iterator dataBegin, std::vector::const_iterator dataEnd, [[maybe_unused]] std::vector::const_iterator fdsBegin, [[maybe_unused]] std::vector::const_iterator fdsEnd, ControlSerializer *cs = nullptr) { - return IPADataSerializer<{{struct|name_full(namespace)}}>::deserialize(dataBegin, dataEnd, cs); + return IPADataSerializer<{{struct|name_full}}>::deserialize(dataBegin, dataEnd, cs); } {%- endmacro %} @@ -280,7 +280,7 @@ # \a struct, in the case that \a struct does not have file descriptors. #} {%- macro deserializer_no_fd(struct, namespace) %} - static {{struct|name_full(namespace)}} + static {{struct|name_full}} deserialize(std::vector &data, {%- if struct|needs_control_serializer %} ControlSerializer *cs) @@ -288,11 +288,11 @@ ControlSerializer *cs = nullptr) {%- endif %} { - return IPADataSerializer<{{struct|name_full(namespace)}}>::deserialize(data.cbegin(), data.cend(), cs); + return IPADataSerializer<{{struct|name_full}}>::deserialize(data.cbegin(), data.cend(), cs); } {# \todo Don't inline this function #} - static {{struct|name_full(namespace)}} + static {{struct|name_full}} deserialize(std::vector::const_iterator dataBegin, std::vector::const_iterator dataEnd, {%- if struct|needs_control_serializer %} @@ -301,7 +301,7 @@ [[maybe_unused]] ControlSerializer *cs = nullptr) {%- endif %} { - {{struct|name_full(namespace)}} ret; + {{struct|name_full}} ret; std::vector::const_iterator m = dataBegin; size_t dataSize = std::distance(dataBegin, dataEnd); diff --git a/utils/ipc/generators/mojom_libcamera_generator.py b/utils/ipc/generators/mojom_libcamera_generator.py index db9e28a6..effdfed6 100644 --- a/utils/ipc/generators/mojom_libcamera_generator.py +++ b/utils/ipc/generators/mojom_libcamera_generator.py @@ -258,12 +258,12 @@ def GetNameForElement(element): return element.mojom_name # vectors if (mojom.IsArrayKind(element)): - elem_name = GetNameForElement(element.kind) + elem_name = GetFullNameForElement(element.kind) return f'std::vector<{elem_name}>' # maps if (mojom.IsMapKind(element)): - key_name = GetNameForElement(element.key_kind) - value_name = GetNameForElement(element.value_kind) + key_name = GetFullNameForElement(element.key_kind) + value_name = GetFullNameForElement(element.value_kind) return f'std::map<{key_name}, {value_name}>' # struct fields and function parameters if isinstance(element, (mojom.Field, mojom.Method, mojom.Parameter)): @@ -296,8 +296,16 @@ def GetNameForElement(element): raise Exception('Unsupported element: %s' % element) raise Exception('Unexpected element: %s' % element) -def GetFullNameForElement(element, namespace_str): +def GetFullNameForElement(element): name = GetNameForElement(element) + namespace_str = '' + if mojom.IsStructKind(element): + namespace_str = element.module.mojom_namespace.replace('.', '::') + elif (hasattr(element, 'kind') and + (mojom.IsStructKind(element.kind) or + mojom.IsEnumKind(element.kind))): + namespace_str = element.kind.module.mojom_namespace.replace('.', '::') + if namespace_str == '': return name return f'{namespace_str}::{name}' From patchwork Fri Apr 23 10:47:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 12101 X-Patchwork-Delegate: paul.elder@ideasonboard.com 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 56FB5BDB15 for ; Fri, 23 Apr 2021 10:47:28 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id BE89268883; Fri, 23 Apr 2021 12:47:27 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="MGCK1dFu"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id E7D00602D1 for ; Fri, 23 Apr 2021 12:47:26 +0200 (CEST) Received: from pyrite.rasen.tech (unknown [IPv6:2400:4051:61:600:2c71:1b79:d06d:5032]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 87CF8B1A; Fri, 23 Apr 2021 12:47:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1619174846; bh=Y1yxJ7uN9vavLW0cwUkaBPAb3Ddc3YGdaRFDwKlOwck=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MGCK1dFunstnju7qPS7nJcffWcOiYS+rYbMBoM6quIE02Hrzyx5Flss8WNeNP1QeH RFh64Kz3ZL2Bt3M5GNQdibUkFhhvwDXOUCmVGub2jTve62K22hv2WXvyr9muVZzIoa 4hbmWcQcrJMUn9yQd1Kj2WEq1NY7CuxC+MjwV/dU= From: Paul Elder To: libcamera-devel@lists.libcamera.org Date: Fri, 23 Apr 2021 19:47:11 +0900 Message-Id: <20210423104711.401547-4-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210423104711.401547-1-paul.elder@ideasonboard.com> References: <20210423104711.401547-1-paul.elder@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 3/3] ipa: mojom: Put core.mojom in the libcamera namespace 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" Put core.mojom in the libcamera namespace, as all structs that are defined in core.mojom are meant to be in that namespace. Fix the structs that are used in the other mojom files accordingly. Signed-off-by: Paul Elder Reviewed-by: Laurent Pinchart --- New in v3 --- include/libcamera/ipa/core.mojom | 2 ++ include/libcamera/ipa/ipu3.mojom | 11 +++++----- include/libcamera/ipa/raspberrypi.mojom | 29 +++++++++++++------------ include/libcamera/ipa/rkisp1.mojom | 13 ++++++----- include/libcamera/ipa/vimc.mojom | 2 +- 5 files changed, 31 insertions(+), 26 deletions(-) diff --git a/include/libcamera/ipa/core.mojom b/include/libcamera/ipa/core.mojom index 70de71ea..6caaa63e 100644 --- a/include/libcamera/ipa/core.mojom +++ b/include/libcamera/ipa/core.mojom @@ -1,5 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ +module libcamera; + /* * Things that can be defined here (and in other mojom files): * - consts diff --git a/include/libcamera/ipa/ipu3.mojom b/include/libcamera/ipa/ipu3.mojom index 5d13e7ea..a717b1e6 100644 --- a/include/libcamera/ipa/ipu3.mojom +++ b/include/libcamera/ipa/ipu3.mojom @@ -17,22 +17,23 @@ struct IPU3Event { IPU3Operations op; uint32 frame; uint32 bufferId; - ControlList controls; + libcamera.ControlList controls; }; struct IPU3Action { IPU3Operations op; - ControlList controls; + libcamera.ControlList controls; }; interface IPAIPU3Interface { - init(IPASettings settings) => (int32 ret); + init(libcamera.IPASettings settings) => (int32 ret); start() => (int32 ret); stop(); - configure(map entityControls, Size bdsOutputSize) => (); + configure(map entityControls, + libcamera.Size bdsOutputSize) => (); - mapBuffers(array buffers); + mapBuffers(array buffers); unmapBuffers(array ids); [async] processEvent(IPU3Event ev); diff --git a/include/libcamera/ipa/raspberrypi.mojom b/include/libcamera/ipa/raspberrypi.mojom index f38c2261..42321bee 100644 --- a/include/libcamera/ipa/raspberrypi.mojom +++ b/include/libcamera/ipa/raspberrypi.mojom @@ -26,22 +26,23 @@ struct ISPConfig { uint32 embeddedBufferId; uint32 bayerBufferId; bool embeddedBufferPresent; - ControlList controls; + libcamera.ControlList controls; }; struct IPAConfig { uint32 transform; - FileDescriptor lsTableHandle; + libcamera.FileDescriptor lsTableHandle; }; struct StartConfig { - ControlList controls; + libcamera.ControlList controls; int32 dropFrameCount; }; interface IPARPiInterface { - init(IPASettings settings) => (int32 ret, SensorConfig sensorConfig); - start(ControlList controls) => (StartConfig startConfig); + init(libcamera.IPASettings settings) + => (int32 ret, SensorConfig sensorConfig); + start(libcamera.ControlList controls) => (StartConfig startConfig); stop(); /** @@ -62,11 +63,11 @@ interface IPARPiInterface { * The \a ipaConfig and \a controls parameters carry data passed by the * pipeline handler to the IPA and back. */ - configure(CameraSensorInfo sensorInfo, - map streamConfig, - map entityControls, + configure(libcamera.CameraSensorInfo sensorInfo, + map streamConfig, + map entityControls, IPAConfig ipaConfig) - => (int32 ret, ControlList controls); + => (int32 ret, libcamera.ControlList controls); /** * \fn mapBuffers() @@ -94,7 +95,7 @@ interface IPARPiInterface { * * \sa unmapBuffers() */ - mapBuffers(array buffers); + mapBuffers(array buffers); /** * \fn unmapBuffers() @@ -109,14 +110,14 @@ interface IPARPiInterface { unmapBuffers(array ids); [async] signalStatReady(uint32 bufferId); - [async] signalQueueRequest(ControlList controls); + [async] signalQueueRequest(libcamera.ControlList controls); [async] signalIspPrepare(ISPConfig data); }; interface IPARPiEventInterface { - statsMetadataComplete(uint32 bufferId, ControlList controls); + statsMetadataComplete(uint32 bufferId, libcamera.ControlList controls); runIsp(uint32 bufferId); embeddedComplete(uint32 bufferId); - setIspControls(ControlList controls); - setDelayedControls(ControlList controls); + setIspControls(libcamera.ControlList controls); + setDelayedControls(libcamera.ControlList controls); }; diff --git a/include/libcamera/ipa/rkisp1.mojom b/include/libcamera/ipa/rkisp1.mojom index 29f726e1..cca871a0 100644 --- a/include/libcamera/ipa/rkisp1.mojom +++ b/include/libcamera/ipa/rkisp1.mojom @@ -16,12 +16,12 @@ struct RkISP1Event { RkISP1Operations op; uint32 frame; uint32 bufferId; - ControlList controls; + libcamera.ControlList controls; }; struct RkISP1Action { RkISP1Operations op; - ControlList controls; + libcamera.ControlList controls; }; interface IPARkISP1Interface { @@ -29,11 +29,12 @@ interface IPARkISP1Interface { start() => (int32 ret); stop(); - configure(CameraSensorInfo sensorInfo, - map streamConfig, - map entityControls) => (int32 ret); + configure(libcamera.CameraSensorInfo sensorInfo, + map streamConfig, + map entityControls) + => (int32 ret); - mapBuffers(array buffers); + mapBuffers(array buffers); unmapBuffers(array ids); [async] processEvent(RkISP1Event ev); diff --git a/include/libcamera/ipa/vimc.mojom b/include/libcamera/ipa/vimc.mojom index 165d9401..be4b85b8 100644 --- a/include/libcamera/ipa/vimc.mojom +++ b/include/libcamera/ipa/vimc.mojom @@ -14,7 +14,7 @@ enum IPAOperationCode { }; interface IPAVimcInterface { - init(IPASettings settings) => (int32 ret); + init(libcamera.IPASettings settings) => (int32 ret); start() => (int32 ret); stop(); };