libcamera: ipa_interface: Add support for custom IPA data to configure()

Add two new parameters, ipaConfig and result, to the
IPAInterface::configure() function to allow pipeline handlers to pass
custom data to their IPA, and receive data back. Wire this through the
code base. The C API interface will be addressed separately, likely
through automation of the C <-> C++ translation.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Laurent Pinchart
2020-06-28 23:28:30 +03:00
parent f1a48f96af
commit 72263c5203
13 changed files with 61 additions and 18 deletions
+6 -2
View File
@@ -69,7 +69,9 @@ public:
void configure(const CameraSensorInfo &sensorInfo,
const std::map<unsigned int, IPAStream> &streamConfig,
const std::map<unsigned int, const ControlInfoMap &> &entityControls) override
const std::map<unsigned int, const ControlInfoMap &> &entityControls,
const IPAOperationData &ipaConfig,
IPAOperationData *result) override
{
/* Verify sensorInfo. */
if (sensorInfo.outputSize.width != 2560 ||
@@ -317,7 +319,9 @@ protected:
};
std::map<unsigned int, const ControlInfoMap &> controlInfo;
controlInfo.emplace(42, subdev_->controls());
ret = INVOKE(configure, sensorInfo, config, controlInfo);
IPAOperationData ipaConfig;
ret = INVOKE(configure, sensorInfo, config, controlInfo,
ipaConfig, nullptr);
if (ret == TestFail)
return TestFail;