[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