[v2,0/5] Fix occasional software ISP assertion error on stop
mbox series

Message ID 20250224185235.43381-1-mzamazal@redhat.com
Headers show
Series
  • Fix occasional software ISP assertion error on stop
Related show

Message

Milan Zamazal Feb. 24, 2025, 6:52 p.m. UTC
When software ISP is stopped, there can be pending messages in the
message queue that will attempt to call the already stopped IPA,
resulting in an assertion error like this:

  FATAL default soft_ipa_proxy.cpp:456 assertion "state_ == ProxyRunning" failed in processStatsThread()

This patch series fixes the problem and also attempts to prevent other
problems related to message handling when or after software ISP is
stopped.

Changes in v2:
- The receiver check in Thread::dispatchMessages moved to the right
  place.

Milan Zamazal (5):
  libcamera: software_isp: Emit ispStatsReady only if IPA is running
  libcamera: software_isp: Handle queued output buffers on stop
  libcamera: software_isp: Handle queued input buffers on stop
  libcamera: base: Fix formatting in thread.cpp
  libcamera: software_isp: Modify dispatching messages on stop

 include/libcamera/base/thread.h               |  3 +-
 .../internal/software_isp/software_isp.h      |  3 ++
 src/libcamera/base/thread.cpp                 | 20 ++++----
 src/libcamera/software_isp/software_isp.cpp   | 46 +++++++++++++++++--
 .../libcamera_templates/proxy_functions.tmpl  |  2 +-
 5 files changed, 59 insertions(+), 15 deletions(-)