[libcamera-devel] [PATCH v3 1/5] ipa: rkisp1: Use frame counter for the request queued
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Sun Mar 27 22:21:55 CEST 2022
Hi Jean-Michel,
Thank you for the patch.
On Thu, Feb 24, 2022 at 12:33:43PM +0100, 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>
>
> ---
> 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
"Number of queued requests" sounds a bit like the number of requests
currently queued.
/**
* \var IPAFrameContext::frameCount
* \brief Counter of requests queued to the IPA module
*
* The counter is reset to 0 when the IPA module is configured, and is
* incremented for each request being queued, after calling the
* Algorithm::prepare() function of all algorithms.
*/
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> + *
> + * 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,
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list