[libcamera-devel] [PATCH 1/3] ipu3: Registering AF controls
Jacopo Mondi
jacopo at jmondi.org
Wed Sep 28 08:52:05 CEST 2022
Hi Kate
On Fri, Sep 16, 2022 at 06:37:11PM +0800, Kate Hsuan via libcamera-devel wrote:
> Regitering AF controls, including AF_MODE and LENS_POSITION.
Registering
>
> Signed-off-by: Kate Hsuan <hpa at redhat.com>
> ---
> src/ipa/ipu3/ipu3.cpp | 4 ++++
> src/libcamera/pipeline/ipu3/ipu3.cpp | 2 ++
> 2 files changed, 6 insertions(+)
>
> diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
> index e37b2fa0..ac0c42a7 100644
> --- a/src/ipa/ipu3/ipu3.cpp
> +++ b/src/ipa/ipu3/ipu3.cpp
> @@ -277,6 +277,10 @@ void IPAIPU3::updateControls(const IPACameraSensorInfo &sensorInfo,
> frameDurations[1],
> frameDurations[2]);
>
> + /* Af controls */
> + controls[&controls::AfMode] = ControlInfo(controls::AfModeValues);
> + controls[&controls::LensPosition] = ControlInfo(0.0f, 1.0f, 0.5f);
> +
> *ipaControls = ControlInfoMap(std::move(controls), controls::controls);
> }
>
> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> index 93219a6c..2e35b9bc 100644
> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> @@ -43,6 +43,8 @@ LOG_DEFINE_CATEGORY(IPU3)
>
> static const ControlInfoMap::Map IPU3Controls = {
> { &controls::draft::PipelineDepth, ControlInfo(2, 3) },
> + { &controls::AfMode, ControlInfo(controls::AfModeValues) },
> + { &controls::LensPosition, ControlInfo(0.0f, 1.0f, 0.5f) }
Isn't this a duplicate ?
The pipeline handler takes the ipa registered controls and adds them
to the camera's controls
int PipelineHandlerIPU3::updateControls(IPU3CameraData *data)
{
..
/* Add the IPA registered controls to list of camera controls. */
for (const auto &ipaControl : data->ipaControls_)
controls[ipaControl.first] = ipaControl.second;
}
I think it's enough to register the controls on the IPA side maybe ?
Thanks
j
> };
>
> class IPU3CameraData : public Camera::Private
> --
> 2.37.3
>
More information about the libcamera-devel
mailing list