[libcamera-devel] [PATCH v2 04/11] pipeline: rkisp1: Add basic AF controls to the supported controls list
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Jul 15 02:43:44 CEST 2022
Hello,
On Thu, Jul 14, 2022 at 11:41:29PM +0100, Kieran Bingham via libcamera-devel wrote:
> Quoting Jacopo Mondi via libcamera-devel (2022-07-14 19:30:03)
> > On Wed, Jul 13, 2022 at 10:43:10AM +0200, Daniel Semkowicz via libcamera-devel wrote:
> > > This will expose the AF controls and will allow controlling them using
> > > the top level API.
> > >
> > > Signed-off-by: Daniel Semkowicz <dse at thaumatec.com>
> > > ---
> > > src/libcamera/pipeline/rkisp1/rkisp1.cpp | 10 ++++++----
> > > 1 file changed, 6 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> > > index 7ee80192..99d66b1d 100644
> > > --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> > > +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> > > @@ -958,10 +958,12 @@ int PipelineHandlerRkISP1::createCamera(MediaEntity *sensor)
> > > std::unique_ptr<RkISP1CameraData> data =
> > > std::make_unique<RkISP1CameraData>(this, &mainPath_, &selfPath_);
> > >
> > > - ControlInfoMap::Map ctrls;
> > > - ctrls.emplace(std::piecewise_construct,
> > > - std::forward_as_tuple(&controls::AeEnable),
> > > - std::forward_as_tuple(false, true));
> > > + ControlInfoMap::Map ctrls({
> > > + { &controls::AeEnable, ControlInfo(false, true) },
> > > + { &controls::AfMode, ControlInfo(controls::AfModeValues) },
> > > + { &controls::AfTrigger, ControlInfo(controls::AfTriggerValues) },
> > > + { &controls::AfPause, ControlInfo(controls::AfPauseValues) }
> >
> > Does the algorithm support continuous auto-focus ? Has it been tested ?
> > I've been told by those who tried implement it (RPi) that without PDAF
> > statistics from the sensor it's rather hard to get it right.
> >
> > If the algorithm does not support it I would drop AfPause as it's
> > only useful for CAF (and the associated functions should probably be
> > removed along the class hierarchy as well maybe)
>
> As this algorithm implementation is going into libipa, I wonder if we
> can get it (the common algorithm implementation) to report the controls
> it supports and merge that into the ControlList of supported controls
> exposed by the IPA?
>
> That would help towards keeping the support modular, and choosing a
> different algorithm implementation (perhaps at runtime) could then
> correctly reflect the supported controls?
Yes, that would be better. The RPi IPA module has recently gone that
route, see commit 53ada24e63f4 ("pipeline: ipa: raspberrypi: Move
ControlInfoMap to the IPA").
> > > + });
> > >
> > > data->controlInfo_ = ControlInfoMap(std::move(ctrls),
> > > controls::controls);
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list