ipa: raspberrypi: Rationalise parameters to ipa::start()

Separate out the in and out parameters in ipa::start() as they are not
the same. This function now takes in a ControlList and returns out a
struct StartConfig which holds a ControlList and drop frame count for
the pipeline handler to action.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Tested-by: David Plowman <david.plowman@raspberrypi.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Naushir Patuck
2021-03-23 14:36:09 +00:00
committed by Laurent Pinchart
parent 8ccddecc94
commit b876c64613
3 changed files with 14 additions and 21 deletions

View File

@@ -815,20 +815,15 @@ int PipelineHandlerRPi::start(Camera *camera, const ControlList *controls)
data->applyScalerCrop(*controls);
/* Start the IPA. */
ipa::RPi::StartControls ipaData;
ipa::RPi::StartControls result;
if (controls)
ipaData.controls = *controls;
data->ipa_->start(ipaData, &result);
ipa::RPi::StartConfig startConfig;
data->ipa_->start(controls ? *controls : ControlList{}, &startConfig);
/* Apply any gain/exposure settings that the IPA may have passed back. */
if (!result.controls.empty()) {
ControlList &ctrls = result.controls;
data->unicam_[Unicam::Image].dev()->setControls(&ctrls);
}
if (!startConfig.controls.empty())
data->unicam_[Unicam::Image].dev()->setControls(&startConfig.controls);
/* Configure the number of dropped frames required on startup. */
data->dropFrameCount_ = result.dropFrameCount;
data->dropFrameCount_ = startConfig.dropFrameCount;
/* We need to set the dropFrameCount_ before queueing buffers. */
ret = queueAllBuffers(camera);