Files
external_libcamera/include/libcamera/ipa/ipu3.mojom
Jacopo Mondi 4c1fc33d8a libcamera: ipu3: Drop entityControls map
The IPA::configure() function has an IPAConfigInfo parameters which
contains a map of numerical indexes to ControlInfoMap instances.

This is a leftover of the old IPA protocol, where it was not possible to
specify a rich interface as it is possible today and each entity
ControlInfoMap was indexed by a numerical id and stored in a map.

Now that the IPA interface allows to specify parameters by name, drop the
map and send the sensor's control info map only.

If we'll need more ControlInfoMap to be shared with the IPA, a new parameter
can be added to IPAConfigInfo.

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2021-09-27 14:35:51 +02:00

59 lines
1.2 KiB
Plaintext

/* 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";
enum IPU3Operations {
ActionSetSensorControls = 1,
ActionParamFilled = 2,
ActionMetadataReady = 3,
EventProcessControls = 4,
EventStatReady = 5,
EventFillParams = 6,
};
struct IPU3Event {
IPU3Operations op;
uint32 frame;
int64 frameTimestamp;
uint32 bufferId;
libcamera.ControlList controls;
};
struct IPU3Action {
IPU3Operations op;
libcamera.ControlList controls;
};
struct IPAConfigInfo {
libcamera.IPACameraSensorInfo sensorInfo;
libcamera.ControlInfoMap sensorControls;
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);
mapBuffers(array<libcamera.IPABuffer> buffers);
unmapBuffers(array<uint32> ids);
[async] processEvent(IPU3Event ev);
};
interface IPAIPU3EventInterface {
queueFrameAction(uint32 frame, IPU3Action action);
};