mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-13 15:29:45 +03:00
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:
parent
04d171e6b2
commit
2dc696be21
3 changed files with 10 additions and 0 deletions
|
@ -24,6 +24,7 @@ interface IPASoftInterface {
|
||||||
=> (int32 ret);
|
=> (int32 ret);
|
||||||
|
|
||||||
[async] queueRequest(uint32 frame, libcamera.ControlList sensorControls);
|
[async] queueRequest(uint32 frame, libcamera.ControlList sensorControls);
|
||||||
|
[async] fillParamsBuffer(uint32 frame);
|
||||||
[async] processStats(uint32 frame,
|
[async] processStats(uint32 frame,
|
||||||
uint32 bufferId,
|
uint32 bufferId,
|
||||||
libcamera.ControlList sensorControls);
|
libcamera.ControlList sensorControls);
|
||||||
|
|
|
@ -79,6 +79,7 @@ public:
|
||||||
void stop() override;
|
void stop() override;
|
||||||
|
|
||||||
void queueRequest(const uint32_t frame, const ControlList &controls) 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,
|
void processStats(const uint32_t frame, const uint32_t bufferId,
|
||||||
const ControlList &sensorControls) override;
|
const ControlList &sensorControls) override;
|
||||||
|
|
||||||
|
@ -279,6 +280,13 @@ void IPASoftSimple::queueRequest(const uint32_t frame, const ControlList &contro
|
||||||
algo->queueRequest(context_, frame, frameContext, controls);
|
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,
|
void IPASoftSimple::processStats([[maybe_unused]] const uint32_t frame,
|
||||||
[[maybe_unused]] const uint32_t bufferId,
|
[[maybe_unused]] const uint32_t bufferId,
|
||||||
const ControlList &sensorControls)
|
const ControlList &sensorControls)
|
||||||
|
|
|
@ -351,6 +351,7 @@ void SoftwareIsp::stop()
|
||||||
*/
|
*/
|
||||||
void SoftwareIsp::process(uint32_t frame, FrameBuffer *input, FrameBuffer *output)
|
void SoftwareIsp::process(uint32_t frame, FrameBuffer *input, FrameBuffer *output)
|
||||||
{
|
{
|
||||||
|
ipa_->fillParamsBuffer(frame);
|
||||||
debayer_->invokeMethod(&DebayerCpu::process,
|
debayer_->invokeMethod(&DebayerCpu::process,
|
||||||
ConnectionTypeQueued, frame, input, output, debayerParams_);
|
ConnectionTypeQueued, frame, input, output, debayerParams_);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue