[libcamera-devel] [PATCH v2 03/14] ipa: ipu3: Use sensor controls to update frameContext

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Nov 10 22:50:15 CET 2021


Hi JM,

Quoting Jean-Michel Hautbois (2021-11-10 19:58:50)
> The pipeline handler populates the new sensorControls ControlList, to
> have the effective exposure and gain values for the current frame. This
> is done when a statistics buffer is received.
> 
> Make those values the frameContext::agc values for the frame when the
> EventStatReady event is received.
> 
> Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.com>
> ---
>  src/ipa/ipu3/ipu3.cpp | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
> index bcc3863b..1111f200 100644
> --- a/src/ipa/ipu3/ipu3.cpp
> +++ b/src/ipa/ipu3/ipu3.cpp
> @@ -549,6 +549,10 @@ void IPAIPU3::processEvent(const IPU3Event &event)
>                 const ipu3_uapi_stats_3a *stats =
>                         reinterpret_cast<ipu3_uapi_stats_3a *>(mem.data());
>  
> +               /* \todo move those into processControls ? */
> +               context_.frameContext.agc.exposure = event.sensorControls.get(V4L2_CID_EXPOSURE).get<int32_t>();
> +               context_.frameContext.agc.gain = camHelper_->gain(event.sensorControls.get(V4L2_CID_ANALOGUE_GAIN).get<int32_t>());

My only worry with this reading it now, is that we are storing the
exposure and gain of the frame that that is associated with the
statistics in what I had thought was a structure that maps the 'output'
of the algorithms.

You've explored this a bit more now - so you probably have a much better
idea than me. This is ultimately an 'input' to the algorithms. Do we
need to distinguish between the 'input' and 'output' ? (I.e. do we need
to have both values kept so that the algorithm can determine how much it
is changing? Or is that not a problem because it's all handled
internally anyway....

> +
>                 parseStatistics(event.frame, event.frameTimestamp, stats);
>                 break;
>         }
> -- 
> 2.32.0
>


More information about the libcamera-devel mailing list