diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ipa/rkisp1/algorithms/af.cpp | 5 | ||||
-rw-r--r-- | src/ipa/rkisp1/algorithms/af.h | 2 |
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 */ |