libcamera: software_isp: Call Algorithm::prepare

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

Signed-off-by: Milan Zamazal <mzamazal@redhat.com>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Milan Zamazal 2024-09-27 15:46:17 +02:00 committed by Kieran Bingham
parent 04d171e6b2
commit 2dc696be21
3 changed files with 10 additions and 0 deletions

View file

@ -24,6 +24,7 @@ interface IPASoftInterface {
=> (int32 ret);
[async] queueRequest(uint32 frame, libcamera.ControlList sensorControls);
[async] fillParamsBuffer(uint32 frame);
[async] processStats(uint32 frame,
uint32 bufferId,
libcamera.ControlList sensorControls);

View file

@ -79,6 +79,7 @@ public:
void stop() override;
void queueRequest(const uint32_t frame, const ControlList &controls) override;
void fillParamsBuffer(const uint32_t frame) override;
void processStats(const uint32_t frame, const uint32_t bufferId,
const ControlList &sensorControls) override;
@ -279,6 +280,13 @@ void IPASoftSimple::queueRequest(const uint32_t frame, const ControlList &contro
algo->queueRequest(context_, frame, frameContext, controls);
}
void IPASoftSimple::fillParamsBuffer(const uint32_t frame)
{
IPAFrameContext &frameContext = context_.frameContexts.get(frame);
for (auto const &algo : algorithms())
algo->prepare(context_, frame, frameContext, params_);
}
void IPASoftSimple::processStats([[maybe_unused]] const uint32_t frame,
[[maybe_unused]] const uint32_t bufferId,
const ControlList &sensorControls)

View file

@ -351,6 +351,7 @@ void SoftwareIsp::stop()
*/
void SoftwareIsp::process(uint32_t frame, FrameBuffer *input, FrameBuffer *output)
{
ipa_->fillParamsBuffer(frame);
debayer_->invokeMethod(&DebayerCpu::process,
ConnectionTypeQueued, frame, input, output, debayerParams_);
}