[libcamera-devel,v1,1/3] libcamera: controls: Define a default lens position behaviour
diff mbox series

Message ID 20230601095630.25443-2-naush@raspberrypi.com
State Superseded
Headers show
Series
  • Default lens behaviour
Related show

Commit Message

Naushir Patuck June 1, 2023, 9:56 a.m. UTC
Update the LensPosition control description to explicitly define a
startup/default behaviour.

On startup, the IPA will move the lens to the position given by the
default value of the LensPosition control. Typically this would be the
hyperfocal position of the lens.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
---
 src/libcamera/control_ids.yaml | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Laurent Pinchart June 2, 2023, 6:09 a.m. UTC | #1
Hi Naush,

Thank you for the patch.

On Thu, Jun 01, 2023 at 10:56:28AM +0100, Naushir Patuck via libcamera-devel wrote:
> Update the LensPosition control description to explicitly define a
> startup/default behaviour.
> 
> On startup, the IPA will move the lens to the position given by the
> default value of the LensPosition control. Typically this would be the
> hyperfocal position of the lens.
> 
> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
> ---
>  src/libcamera/control_ids.yaml | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml
> index adea5f90acc5..f6dbfd6c0bf0 100644
> --- a/src/libcamera/control_ids.yaml
> +++ b/src/libcamera/control_ids.yaml
> @@ -610,6 +610,11 @@ controls:
>          sharp). The minimum will often be zero (meaning infinity), and the
>          maximum value defines the closest focus position.
>  
> +        On startup, the IPA will move the lens position to the default value of

I would write "the camera", not "the IPA", as IPA modules are internal
to libcamera, and this documentation relates to the public API. Writing
this made me realize we mention "IPA" in two locations in this file
already. I'll fix it.

I would like to also document the default value for AfMode, as that also
influences the default focus lens behaviour and is related to
LensPosition. Actually, reading the whole documentation for the
LensPosition control, I think AfMode is what we need to address.
LensPosition already states

        The default value of the control should indicate a good general position
        for the lens, often corresponding to the hyperfocal distance (the
        closest position for which objects at infinity are still acceptably
        sharp). The minimum will often be zero (meaning infinity), and the
        maximum value defines the closest focus position.

There shouldn't be a need to state that the default value is the default
value :-) I'll send a proposal in reply to this e-mail.

> +        this control. This can be overridden by the application providing an
> +        alternative value though this control, or setting an appropriate AF mode
> +        with controls::AfMode.
> +
>          \todo Define a property to report the Hyperfocal distance of calibrated
>          lenses.
>

Patch
diff mbox series

diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml
index adea5f90acc5..f6dbfd6c0bf0 100644
--- a/src/libcamera/control_ids.yaml
+++ b/src/libcamera/control_ids.yaml
@@ -610,6 +610,11 @@  controls:
         sharp). The minimum will often be zero (meaning infinity), and the
         maximum value defines the closest focus position.
 
+        On startup, the IPA will move the lens position to the default value of
+        this control. This can be overridden by the application providing an
+        alternative value though this control, or setting an appropriate AF mode
+        with controls::AfMode.
+
         \todo Define a property to report the Hyperfocal distance of calibrated
         lenses.