IPU3Event and IPU3Action use two fields for both libcamera controls and sensor V4L2 controls. The patch extend one more field for lens V4L2 controls for auto focus usage. Signed-off-by: Han-Lin Chen <hanlinchen@chromium.org> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
64 lines
1.4 KiB
Plaintext
64 lines
1.4 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;
|
|
libcamera.ControlList sensorControls;
|
|
libcamera.ControlList lensControls;
|
|
};
|
|
|
|
struct IPU3Action {
|
|
IPU3Operations op;
|
|
libcamera.ControlList controls;
|
|
libcamera.ControlList sensorControls;
|
|
libcamera.ControlList lensControls;
|
|
};
|
|
|
|
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, libcamera.ControlInfoMap ipaControls);
|
|
|
|
mapBuffers(array<libcamera.IPABuffer> buffers);
|
|
unmapBuffers(array<uint32> ids);
|
|
|
|
[async] processEvent(IPU3Event ev);
|
|
};
|
|
|
|
interface IPAIPU3EventInterface {
|
|
queueFrameAction(uint32 frame, IPU3Action action);
|
|
};
|