summaryrefslogtreecommitdiff
path: root/src/ipa/rpi/common/ipa_base.cpp
diff options
context:
space:
mode:
authorNaushir Patuck <naush@raspberrypi.com>2023-09-25 11:27:14 +0100
committerKieran Bingham <kieran.bingham@ideasonboard.com>2023-09-25 16:01:21 +0100
commit51533fecae8d9efb82a436eb26504cb8a8db9170 (patch)
treeb8cd664c09ba014176a1360789ef45a2a30000f7 /src/ipa/rpi/common/ipa_base.cpp
parent870943f80ab42764da532d185f6be44084611242 (diff)
ipa: rpi: Fix frame count logic when running algorithms
The frame counter test to determine if we run the IPA algorithms has a logic bug where it treats dropFrameCount_ and mistrustCount_ as frame numbers, not counts of frames (which it is). The implication is that startup convergence and initial settings take one extra frame to apply. Fix this. Signed-off-by: Naushir Patuck <naush@raspberrypi.com> Reviewed-by: David Plowman <david.plowman@raspberrypi.com> Tested-by: David Plowman <david.plowman@raspberrypi.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/ipa/rpi/common/ipa_base.cpp')
-rw-r--r--src/ipa/rpi/common/ipa_base.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp
index f7e7ad5e..5d8344e3 100644
--- a/src/ipa/rpi/common/ipa_base.cpp
+++ b/src/ipa/rpi/common/ipa_base.cpp
@@ -409,7 +409,7 @@ void IpaBase::prepareIsp(const PrepareParams &params)
/* Allow a 10% margin on the comparison below. */
Duration delta = (frameTimestamp - lastRunTimestamp_) * 1.0ns;
- if (lastRunTimestamp_ && frameCount_ > dropFrameCount_ &&
+ if (lastRunTimestamp_ && frameCount_ >= dropFrameCount_ &&
delta < controllerMinFrameDuration * 0.9) {
/*
* Ensure we merge the previous frame's metadata with the current
@@ -451,7 +451,7 @@ void IpaBase::processStats(const ProcessParams &params)
{
unsigned int ipaContext = params.ipaContext % rpiMetadata_.size();
- if (processPending_ && frameCount_ > mistrustCount_) {
+ if (processPending_ && frameCount_ >= mistrustCount_) {
RPiController::Metadata &rpiMetadata = rpiMetadata_[ipaContext];
auto it = buffers_.find(params.buffers.stats);