libcamera: ipa: Pass a set of controls and return results from ipa::start()

This change allows controls passed into PipelineHandler::start to be
forwarded onto IPAInterface::start(). We also add a return channel if the
pipeline handler must action any of these controls, e.g. setting the
analogue gain or shutter speed in the sensor device.

The IPA interface wrapper isn't addressed as it will soon be replaced by
a new mechanism to handle IPC.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: David Plowman <david.plowman@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 2020-12-04 15:31:20 +00:00 committed by Laurent Pinchart
parent a62b35b8c0
commit 0238b9e080
15 changed files with 51 additions and 23 deletions

View file

@ -78,13 +78,14 @@ public:
}
int init(const IPASettings &settings) override;
int start() override { return 0; }
int start([[maybe_unused]] const IPAOperationData &data,
[[maybe_unused]] IPAOperationData *result) override { return 0; }
void stop() override {}
void configure(const CameraSensorInfo &sensorInfo,
const std::map<unsigned int, IPAStream> &streamConfig,
const std::map<unsigned int, const ControlInfoMap &> &entityControls,
const IPAOperationData &data,
const IPAOperationData &ipaConfig,
IPAOperationData *response) override;
void mapBuffers(const std::vector<IPABuffer> &buffers) override;
void unmapBuffers(const std::vector<unsigned int> &ids) override;