/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* * \todo Document the interface and remove the related EXCLUDE_PATTERNS entry. */ module ipa.ipu3; import "include/libcamera/ipa/core.mojom"; struct IPAConfigInfo { libcamera.IPACameraSensorInfo sensorInfo; libcamera.ControlInfoMap sensorControls; libcamera.ControlInfoMap lensControls; libcamera.Size bdsOutputSize; libcamera.Size iif; }; interface IPAIPU3Interface { init(libcamera.IPASettings settings, libcamera.IPACameraSensorInfo sensorInfo, libcamera.ControlInfoMap sensorControls) => (int32 ret, libcamera.ControlInfoMap ipaControls); start() => (int32 ret); stop(); configure(IPAConfigInfo configInfo) => (int32 ret, libcamera.ControlInfoMap ipaControls); mapBuffers(array buffers); unmapBuffers(array ids); [async] queueRequest(uint32 frame, libcamera.ControlList controls); [async] fillParamsBuffer(uint32 frame, uint32 bufferId); [async] processStatsBuffer(uint32 frame, int64 frameTimestamp, uint32 bufferId, libcamera.ControlList sensorControls); }; interface IPAIPU3EventInterface { setSensorControls(uint32 frame, libcamera.ControlList sensorControls, libcamera.ControlList lensControls); paramsBufferReady(uint32 frame); metadataReady(uint32 frame, libcamera.ControlList metadata); };