libcamera: software_isp: Clear pending async work
Debayering is carried out on `ispWorkerThread_`. When stopping, the queued work needs to be flushed or cancelled to ensure that the next time it starts, it won't process stale data. So remove all messages targeting the `Debayer` object on the worker thread. Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Tested-by: Robert Mader <robert.mader@collabora.com>
This commit is contained in:
@@ -358,6 +358,7 @@ void SoftwareIsp::stop()
|
||||
{
|
||||
ispWorkerThread_.exit();
|
||||
ispWorkerThread_.wait();
|
||||
ispWorkerThread_.removeMessages(debayer_.get());
|
||||
|
||||
Thread::current()->dispatchMessages(Message::Type::InvokeMessage, this);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user