summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ipa/rkisp1/algorithms/af.cpp5
-rw-r--r--src/ipa/rkisp1/algorithms/af.h2
2 files changed, 6 insertions, 1 deletions
diff --git a/src/ipa/rkisp1/algorithms/af.cpp b/src/ipa/rkisp1/algorithms/af.cpp
index cd4f0e08..a0d914e0 100644
--- a/src/ipa/rkisp1/algorithms/af.cpp
+++ b/src/ipa/rkisp1/algorithms/af.cpp
@@ -86,7 +86,10 @@ void Af::process(IPAContext &context,
uint32_t lensPosition = processAutofocus(sharpness);
- context.frameContext.af.focus = lensPosition;
+ if (lensPosition != context.frameContext.af.focus) {
+ context.frameContext.af.focus = lensPosition;
+ setFramesToSkip(kFLensWaitFrames);
+ }
}
void Af::setMetering(controls::AfMeteringEnum metering)
diff --git a/src/ipa/rkisp1/algorithms/af.h b/src/ipa/rkisp1/algorithms/af.h
index eeb806c0..36d0c9b0 100644
--- a/src/ipa/rkisp1/algorithms/af.h
+++ b/src/ipa/rkisp1/algorithms/af.h
@@ -36,6 +36,8 @@ private:
Rectangle defaultWindow_;
Rectangle userWindow_;
bool updateAfwindow_ = false;
+
+ static constexpr uint32_t kFLensWaitFrames = 2;
};
} /* namespace libcamera::ipa::rkisp1::algorithms */