[libcamera-devel] [PATCH v3 1/5] ipa: rkisp1: Use frame counter for the request queued

Umang Jain umang.jain at ideasonboard.com
Tue Mar 8 09:51:12 CET 2022


Hi JM

Thank you for the patch.

On 2/24/22 17:03, Jean-Michel Hautbois wrote:
> Introduce a frameCount variable in the IPAFrameContext which increments
> each time a request is queued. It is reset at configure call, when the
> camera is started.
>
> This will allow the frameCount to be used by other algorithms, without
> having to keep multiple private frame counters.
>
> Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.com>


Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>

>
> ---
> v3: - replace frameId by a frame counter
>      - Change the date of the copyright
> ---
>   src/ipa/rkisp1/ipa_context.cpp | 9 ++++++++-
>   src/ipa/rkisp1/ipa_context.h   | 4 +++-
>   src/ipa/rkisp1/rkisp1.cpp      | 3 +++
>   3 files changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp
> index 9cb2a9fd..664f572f 100644
> --- a/src/ipa/rkisp1/ipa_context.cpp
> +++ b/src/ipa/rkisp1/ipa_context.cpp
> @@ -1,6 +1,6 @@
>   /* SPDX-License-Identifier: LGPL-2.1-or-later */
>   /*
> - * Copyright (C) 2021, Ideas On Board
> + * Copyright (C) 2021-2022, Ideas On Board
>    *
>    * ipa_context.cpp - RkISP1 IPA Context
>    */
> @@ -113,4 +113,11 @@ namespace libcamera::ipa::rkisp1 {
>    * \brief Analogue gain multiplier
>    */
>   
> +/**
> + * \var IPAFrameContext::frameCount
> + * \brief Number of queued requests for this frame context
> + *
> + * It restarts from 0 when the camera is started.
> + */
> +
>   } /* namespace libcamera::ipa::rkisp1 */
> diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h
> index b94ade0c..212fa052 100644
> --- a/src/ipa/rkisp1/ipa_context.h
> +++ b/src/ipa/rkisp1/ipa_context.h
> @@ -1,6 +1,6 @@
>   /* SPDX-License-Identifier: LGPL-2.1-or-later */
>   /*
> - * Copyright (C) 2021, Ideas On Board
> + * Copyright (C) 2021-2022, Ideas On Board
>    *
>    * ipa_context.h - RkISP1 IPA Context
>    *
> @@ -43,6 +43,8 @@ struct IPAFrameContext {
>   		uint32_t exposure;
>   		double gain;
>   	} sensor;
> +
> +	unsigned int frameCount;
>   };
>   
>   struct IPAContext {
> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> index 2d79f15f..f119b3f3 100644
> --- a/src/ipa/rkisp1/rkisp1.cpp
> +++ b/src/ipa/rkisp1/rkisp1.cpp
> @@ -196,6 +196,8 @@ int IPARkISP1::configure([[maybe_unused]] const IPACameraSensorInfo &info,
>   	context_.configuration.agc.minAnalogueGain = camHelper_->gain(minGain_);
>   	context_.configuration.agc.maxAnalogueGain = camHelper_->gain(maxGain_);
>   
> +	context_.frameContext.frameCount = 0;
> +
>   	for (auto const &algo : algorithms_) {
>   		int ret = algo->configure(context_, info);
>   		if (ret)
> @@ -284,6 +286,7 @@ void IPARkISP1::queueRequest(unsigned int frame, rkisp1_params_cfg *params,
>   	op.op = ActionParamFilled;
>   
>   	queueFrameAction.emit(frame, op);
> +	context_.frameContext.frameCount++;
>   }
>   
>   void IPARkISP1::updateStatistics(unsigned int frame,


More information about the libcamera-devel mailing list