libcamera: software_isp: Move configure to worker thread
OpenGL requires both configure() and process() to operate on the same thread. As preparation for that, move current CPU configure into the WorkerThread with a ConnectionTypeBlocking invocation of &DebayerCpu::configure. Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
This commit is contained in:
parent
87ccbc69ca
commit
355fd41dfd
1 changed files with 10 additions and 2 deletions
|
@ -263,7 +263,15 @@ int SoftwareIsp::configure(const StreamConfiguration &inputCfg,
|
|||
debayer_->moveToThread(&ispWorkerThread_);
|
||||
ispWorkerThread_.start();
|
||||
|
||||
return debayer_->configure(inputCfg, outputCfgs, ccmEnabled_);
|
||||
ret = debayer_->invokeMethod(&Debayer::configure,
|
||||
ConnectionTypeBlocking, inputCfg,
|
||||
outputCfgs, ccmEnabled_);
|
||||
if (ret) {
|
||||
ispWorkerThread_.exit();
|
||||
ispWorkerThread_.wait();
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -386,7 +394,7 @@ void SoftwareIsp::stop()
|
|||
void SoftwareIsp::process(uint32_t frame, FrameBuffer *input, FrameBuffer *output)
|
||||
{
|
||||
ipa_->computeParams(frame);
|
||||
debayer_->invokeMethod(&DebayerCpu::process,
|
||||
debayer_->invokeMethod(&Debayer::process,
|
||||
ConnectionTypeQueued, frame, input, output, debayerParams_);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue