summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNaushir Patuck <naush@raspberrypi.com>2021-02-18 12:48:21 +0000
committerKieran Bingham <kieran.bingham@ideasonboard.com>2021-02-19 11:36:47 +0000
commita13d229086d73bcde4c0204d359e2352de4fdbdf (patch)
treea8c434d28eeaa86f35a353b875eb850063b04ad9
parent9fe81a51abd2ad875e4343df5f0c2007242b8bcf (diff)
pipeline: ipa: raspberrypi: Fix pipeline running on in a stopped state
With the recent IPAInterface changes, the signal handlers statsMetadataComplete(), runISP() and embeddedComplete() would run unconditionally when called. They should only run when state != Stopped. Signed-off-by: Naushir Patuck <naush@raspberrypi.com> Fixes: e201cb4f5450 ("libcamera: IPAInterface: Replace C API with the new C++-only API") Tested-by: David Plowman <david.plowman@raspberrypi.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r--src/libcamera/pipeline/raspberrypi/raspberrypi.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
index 15aa600e..75d57c2a 100644
--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
@@ -1281,7 +1281,7 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config)
void RPiCameraData::statsMetadataComplete(uint32_t bufferId, const ControlList &controls)
{
if (state_ == State::Stopped)
- handleState();
+ return;
FrameBuffer *buffer = isp_[Isp::Stats].getBuffers().at(bufferId);
@@ -1314,7 +1314,7 @@ void RPiCameraData::statsMetadataComplete(uint32_t bufferId, const ControlList &
void RPiCameraData::runIsp(uint32_t bufferId)
{
if (state_ == State::Stopped)
- handleState();
+ return;
FrameBuffer *buffer = unicam_[Unicam::Image].getBuffers().at(bufferId);
@@ -1329,7 +1329,7 @@ void RPiCameraData::runIsp(uint32_t bufferId)
void RPiCameraData::embeddedComplete(uint32_t bufferId)
{
if (state_ == State::Stopped)
- handleState();
+ return;
FrameBuffer *buffer = unicam_[Unicam::Embedded].getBuffers().at(bufferId);
handleStreamBuffer(buffer, &unicam_[Unicam::Embedded]);