[libcamera-devel] [PATCH v6 08/10] ipa: rkisp1: Add AF controls to the RkISP1 IPA
Daniel Semkowicz
dse at thaumatec.com
Tue Apr 4 11:49:59 CEST 2023
Hi Jacopo,
On Mon, Apr 3, 2023 at 11:37 AM Jacopo Mondi
<jacopo.mondi at ideasonboard.com> wrote:
>
> Hi Daniel
>
> On Fri, Mar 31, 2023 at 10:19:28AM +0200, Daniel Semkowicz via libcamera-devel wrote:
> > Add controls supported by the AF algorithm to the list of controls
> > supported by the RkISP1 IPA. This exposes the AF controls to the user
> > and allows controlling the AF algorithm using the top level API.
> >
> > Signed-off-by: Daniel Semkowicz <dse at thaumatec.com>
> > ---
> > src/ipa/rkisp1/rkisp1.cpp | 22 ++++++++++++++++++++++
> > 1 file changed, 22 insertions(+)
> >
> > diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> > index 292768cf..9c8b4a82 100644
> > --- a/src/ipa/rkisp1/rkisp1.cpp
> > +++ b/src/ipa/rkisp1/rkisp1.cpp
> > @@ -456,6 +456,28 @@ void IPARkISP1::updateControls(const IPACameraSensorInfo &sensorInfo,
> > frameDurations[1],
> > frameDurations[2]);
> >
> > + if (lensControls_) {
> > + const ControlInfo &focusAbsolute =
> > + lensControls_->at(V4L2_CID_FOCUS_ABSOLUTE);
> > +
> > + using namespace controls;
> > +
> > + ctrlMap[&AfMetering] = ControlInfo(AfMeteringValues);
> > + ctrlMap[&AfMode] = ControlInfo(AfModeValues);
> > + ctrlMap[&AfPause] = ControlInfo(
> > + Span<const ControlValue>{
> > + { static_cast<int32_t>(AfPauseImmediate),
> > + static_cast<int32_t>(AfPauseResume) } });
> > + ctrlMap[&AfTrigger] = ControlInfo(AfTriggerValues);
> > + ctrlMap[&AfWindows] = ControlInfo(
> > + Rectangle(), Rectangle(sensorInfo.outputSize),
>
> I wonder if the ISP doesn't have a minimum valid window size..
Unfortunately, I did not find any documentation on that.
Only the window margins.
>
> > + Rectangle());
> > + ctrlMap[&LensPosition] = ControlInfo(
> > + static_cast<float>(focusAbsolute.min().get<int32_t>()),
> > + static_cast<float>(focusAbsolute.max().get<int32_t>()),
> > + static_cast<float>(focusAbsolute.def().get<int32_t>()));
>
> We're here exposing the values as they come from the v4l2 control
> interface. We should get to a point where we have a CameraLensHelper
> like we have CameraSensorHelpers to translate the platform-specific
> value to a generic value. I can add a \todo when applying if you agree
> with this.
Yes, I agree. For now, let's start with something basic that works :)
>
> The rest looks good
>
> Reviewed-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
>
> Thanks
> j
>
>
> > + }
> > +
> > *ipaControls = ControlInfoMap(std::move(ctrlMap), controls::controls);
> > }
> >
> > --
> > 2.39.2
> >
Best regards
Daniel
More information about the libcamera-devel
mailing list