[libcamera-devel] [PATCH v3 3/3] ipa: rpi: Set lens position to hyperfocal on startup
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Tue Jun 6 17:22:15 CEST 2023
Hi Naush,
Thank you for the patch.
On Mon, Jun 05, 2023 at 10:14:06AM +0100, Naushir Patuck via libcamera-devel wrote:
> On the first ipa->configure() call, set the lens position (if a lens is
> present) to the default position. Typically this would be the hyperfocal
> position based on the tuning data.
>
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> ---
> src/ipa/rpi/common/ipa_base.cpp | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp
> index 599ad146a863..dbb95311ba51 100644
> --- a/src/ipa/rpi/common/ipa_base.cpp
> +++ b/src/ipa/rpi/common/ipa_base.cpp
> @@ -199,6 +199,23 @@ int32_t IpaBase::configure(const IPACameraSensorInfo &sensorInfo, const ConfigPa
> agcStatus.shutterTime = defaultExposureTime;
> agcStatus.analogueGain = defaultAnalogueGain;
> applyAGC(&agcStatus, ctrls);
> +
> + /* Set the lens to the default (typically hyperfocal) position on first start. */
I'll reflow the commit message.
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> + if (lensPresent_) {
> + RPiController::AfAlgorithm *af =
> + dynamic_cast<RPiController::AfAlgorithm *>(controller_.getAlgorithm("af"));
> +
> + if (af) {
> + float defaultPos =
> + ipaAfControls.at(&controls::LensPosition).def().get<float>();
> + ControlList lensCtrl(lensCtrls_);
> + int32_t hwpos;
> +
> + af->setLensPosition(defaultPos, &hwpos);
> + lensCtrl.set(V4L2_CID_FOCUS_ABSOLUTE, hwpos);
> + result->lensControls = std::move(lensCtrl);
> + }
> + }
> }
>
> result->sensorControls = std::move(ctrls);
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list