Extend the Simple IPA IPC to support returning a metadata ControlList when the process call has completed. A new signal from the IPA is introduced to report the metadata, similarly to what the hardware pipelines do. Merge the metadata reported by the ISP into any completing request to provide to the application. Completion of a request is delayed until this is done; this doesn't apply to canceled requests. Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Milan Zamazal <mzamazal@redhat.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
38 lines
1016 B
Plaintext
38 lines
1016 B
Plaintext
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
|
|
/*
|
|
* \todo Document the interface and remove the related EXCLUDE_PATTERNS entry.
|
|
*/
|
|
|
|
module ipa.soft;
|
|
|
|
import "include/libcamera/ipa/core.mojom";
|
|
|
|
struct IPAConfigInfo {
|
|
libcamera.ControlInfoMap sensorControls;
|
|
};
|
|
|
|
interface IPASoftInterface {
|
|
init(libcamera.IPASettings settings,
|
|
libcamera.SharedFD fdStats,
|
|
libcamera.SharedFD fdParams,
|
|
libcamera.ControlInfoMap sensorCtrlInfoMap)
|
|
=> (int32 ret, libcamera.ControlInfoMap ipaControls, bool ccmEnabled);
|
|
start() => (int32 ret);
|
|
stop();
|
|
configure(IPAConfigInfo configInfo)
|
|
=> (int32 ret);
|
|
|
|
[async] queueRequest(uint32 frame, libcamera.ControlList sensorControls);
|
|
[async] computeParams(uint32 frame);
|
|
[async] processStats(uint32 frame,
|
|
uint32 bufferId,
|
|
libcamera.ControlList sensorControls);
|
|
};
|
|
|
|
interface IPASoftEventInterface {
|
|
setSensorControls(libcamera.ControlList sensorControls);
|
|
setIspParams();
|
|
metadataReady(uint32 frame, libcamera.ControlList metadata);
|
|
};
|