[libcamera-devel] [RFC PATCH 05/14] controls: Replace AwbLocked with AwbState, and add AwbLock

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Jun 28 03:08:22 CEST 2021


Hi Paul,

Thank you for the patch.

On Fri, Jun 18, 2021 at 07:33:42PM +0900, Paul Elder wrote:
> AwbLocked alone isn't sufficient for reporting the Awb state, so replace

s/Awb state/AWB state/

> it with AwbState. Add an AwbLock control for instructing the camera to
> lock the AWB values.

The discussion of patch 03/14 applies to these controls too, so I'll
skip the review for now.

> Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
> ---
>  src/libcamera/control_ids.yaml | 82 ++++++++++++++++++++--------------
>  1 file changed, 49 insertions(+), 33 deletions(-)
> 
> diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml
> index 2e62f61b..3a4f07cf 100644
> --- a/src/libcamera/control_ids.yaml
> +++ b/src/libcamera/control_ids.yaml
> @@ -161,6 +161,55 @@ controls:
>            value: 3
>            description: Custom exposure mode.
>  
> +  - AwbLock:
> +      type: bool
> +      description: |
> +        Control to lock the AWB values.
> +        When set to true, the AWB algorithm is locked to its latest parameters,
> +        and will not change exposure settings until set to false.
> +        \sa AwbState
> +
> +  - AwbState:
> +      type: int32_t
> +      description: |
> +        Control to report the current AWB algorithm state. Switching between or
> +        enabling AWB modes (AwbMode) always resets the AwbState to
> +        AwbStateInactive. The camera device can do several state transitions
> +        between two results, if it is allowed by the state transition table.
> +        For example, AwbStateInactive may never actually be seen in a result.
> +
> +        The state in the result is the state for this image (in sync with this
> +        image). If AWB state becomes AwbStateConverged, then the image data
> +        associated with the result should be good to use.
> +
> +        The state transitions mentioned below assume that AwbMode is auto.
> +
> +        \sa AwbLock
> +      enum:
> +        - name: AwbStateInactive
> +          value: 0
> +          description: |
> +            The AWB algorithm is inactive.
> +            If the camera initiates an AWB scan, the state shall go to Searching.
> +            If AwbLock is on, the state shall go to Locked.
> +        - name: AwbStateSearching
> +          value: 1
> +          description: |
> +            The AWB algorithm has not converged yet.
> +            If the camera finishes an AWB scan, the state shall go to Converged.
> +            If AwbLock is on, the state shall go to Locked.
> +        - name: AwbStateConverged
> +          value: 2
> +          description: |
> +            The AWB algorithm has converged.
> +            If the camera initiates an AWB scan, the state shall go to Searching.
> +            If AwbLock is on, the state shall go to Locked.
> +        - name: AwbStateLocked
> +          value: 3
> +          description: |
> +            The AWB algorithm is locked.
> +            If AwbLock is off, the state shall go to Searching.
> +
>    - ExposureValue:
>        type: float
>        description: |
> @@ -272,17 +321,6 @@ controls:
>            value: 10
>            description: Custom AWB mode.
>  
> -  - AwbLocked:
> -      type: bool
> -      description: |
> -        Report the lock status of a running AWB algorithm.
> -
> -        If the AWB algorithm is locked the value shall be set to true, if it's
> -        converging it shall be set to false. If the AWB algorithm is not
> -        running the control shall not be present in the metadata control list.
> -
> -        \sa AwbEnable
> -
>    - ColourGains:
>        type: float
>        description: |
> @@ -572,28 +610,6 @@ controls:
>            description: |
>              AF has completed a passive scan without finding focus.
>  
> -  - AwbState:
> -      type: int32_t
> -      draft: true
> -      description: |
> -       Control to report the current AWB algorithm state. Currently identical
> -       to ANDROID_CONTROL_AWB_STATE.
> -
> -        Current state of the AWB algorithm.
> -      enum:
> -        - name: AwbStateInactive
> -          value: 0
> -          description: The AWB algorithm is inactive.
> -        - name: AwbStateSearching
> -          value: 1
> -          description: The AWB algorithm has not converged yet.
> -        - name: AwbConverged
> -          value: 2
> -          description: The AWB algorithm has converged.
> -        - name: AwbLocked
> -          value: 3
> -          description: The AWB algorithm is locked.
> -
>    - SensorRollingShutterSkew:
>        type: int64_t
>        draft: true

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list