| Message ID | 20251202133157.661407-17-bryan.odonoghue@linaro.org |
|---|---|
| State | Superseded |
| Headers | show |
| Series |
|
| Related | show |
Bryan O'Donoghue <bryan.odonoghue@linaro.org> writes: > EGL 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. > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Reviewed-by: Milan Zamazal <mzamazal@redhat.com> > --- > src/libcamera/software_isp/software_isp.cpp | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp > index afa4eb7a8..4f6792122 100644 > --- a/src/libcamera/software_isp/software_isp.cpp > +++ b/src/libcamera/software_isp/software_isp.cpp > @@ -267,7 +267,15 @@ int SoftwareIsp::configure(const StreamConfiguration &inputCfg, > > ispWorkerThread_.start(); > > - return debayer_->configure(inputCfg, outputCfgs, ccmEnabled_); > + ret = debayer_->invokeMethod(&DebayerCpu::configure, > + ConnectionTypeBlocking, inputCfg, > + outputCfgs, ccmEnabled_); > + if (ret) { > + ispWorkerThread_.exit(); > + ispWorkerThread_.wait(); > + } > + > + return ret; > } > > /**
diff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp index afa4eb7a8..4f6792122 100644 --- a/src/libcamera/software_isp/software_isp.cpp +++ b/src/libcamera/software_isp/software_isp.cpp @@ -267,7 +267,15 @@ int SoftwareIsp::configure(const StreamConfiguration &inputCfg, ispWorkerThread_.start(); - return debayer_->configure(inputCfg, outputCfgs, ccmEnabled_); + ret = debayer_->invokeMethod(&DebayerCpu::configure, + ConnectionTypeBlocking, inputCfg, + outputCfgs, ccmEnabled_); + if (ret) { + ispWorkerThread_.exit(); + ispWorkerThread_.wait(); + } + + return ret; } /**