libcamera: software_isp: Call Algorithm::configure

This patch adds Algorithm::configure call for the defined algorithms.
This is preparation only since there are currently no Algorithm based
algorithms defined.

A part of this change is passing IPAConfigInfo instead of ControlInfoMap
to configure() calls as this is what Algorithm::configure expects.

Signed-off-by: Milan Zamazal <mzamazal@redhat.com>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Milan Zamazal
2024-09-27 15:46:15 +02:00
committed by Kieran Bingham
parent 97f9961e1b
commit ecbc05c4c5
5 changed files with 22 additions and 12 deletions
+7 -4
View File
@@ -1290,10 +1290,13 @@ int SimplePipelineHandler::configure(Camera *camera, CameraConfiguration *c)
inputCfg.stride = captureFormat.planes[0].bpl;
inputCfg.bufferCount = kNumInternalBuffers;
return data->converter_
? data->converter_->configure(inputCfg, outputCfgs)
: data->swIsp_->configure(inputCfg, outputCfgs,
data->sensor_->controls());
if (data->converter_) {
return data->converter_->configure(inputCfg, outputCfgs);
} else {
ipa::soft::IPAConfigInfo configInfo;
configInfo.sensorControls = data->sensor_->controls();
return data->swIsp_->configure(inputCfg, outputCfgs, configInfo);
}
}
int SimplePipelineHandler::exportFrameBuffers(Camera *camera, Stream *stream,
+4 -3
View File
@@ -222,16 +222,17 @@ SoftwareIsp::strideAndFrameSize(const PixelFormat &outputFormat, const Size &siz
* \brief Configure the SoftwareIsp object according to the passed in parameters
* \param[in] inputCfg The input configuration
* \param[in] outputCfgs The output configurations
* \param[in] sensorControls ControlInfoMap of the controls supported by the sensor
* \param[in] configInfo The IPA configuration data, received from the pipeline
* handler
* \return 0 on success, a negative errno on failure
*/
int SoftwareIsp::configure(const StreamConfiguration &inputCfg,
const std::vector<std::reference_wrapper<StreamConfiguration>> &outputCfgs,
const ControlInfoMap &sensorControls)
const ipa::soft::IPAConfigInfo &configInfo)
{
ASSERT(ipa_ && debayer_);
int ret = ipa_->configure(sensorControls);
int ret = ipa_->configure(configInfo);
if (ret < 0)
return ret;