Report exposure and gain in metadata. This is more complicated than it could be expected because the exposure value should be in microseconds but it's handled using V4L2_CID_EXPOSURE control, which doesn't specify the unit, see https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/control.html. So the unit conversion is done in the way rkisp1 IPA uses. This requires getting and passing IPACameraSensorInfo around. To avoid naming confusion and to improve consistency with rkisp1 IPA, sensorCtrlInfoMap parameter is renamed to sensorControls. Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Milan Zamazal <mzamazal@redhat.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
39 lines
1.0 KiB
Plaintext
39 lines
1.0 KiB
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.IPACameraSensorInfo sensorInfo,
|
|
libcamera.ControlInfoMap sensorControls)
|
|
=> (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);
|
|
};
|