[libcamera-devel] [PATCH v2 07/10] ipa: rkisp1: Convert to use the FCQueue
Umang Jain
umang.jain at ideasonboard.com
Thu Aug 11 08:45:13 CEST 2022
Hi Jacopo,
Thank you for the patch
On 8/5/22 19:23, Jacopo Mondi via libcamera-devel wrote:
> From: Kieran Bingham via libcamera-devel <libcamera-devel at lists.libcamera.org>
>
> Establish a queue of FrameContexts using the new FCQueue and use it to
> supply the FrameContext to the algorithms.
>
> The algorithms on the RKISP1 do not use this yet themselves, but are
> able to do so after the introduction of this patch.
>
> Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>
> ---
> src/ipa/rkisp1/ipa_context.h | 2 ++
> src/ipa/rkisp1/rkisp1.cpp | 6 +++---
> 2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h
> index c42bcd73b314..dd756f4025d1 100644
> --- a/src/ipa/rkisp1/ipa_context.h
> +++ b/src/ipa/rkisp1/ipa_context.h
> @@ -86,6 +86,8 @@ struct RKISP1FrameContext : public IPAFrameContext {
> struct IPAContext {
> IPASessionConfiguration configuration;
> IPAActiveState activeState;
> +
> + FCQueue<RKISP1FrameContext> frameContexts;
> };
>
> } /* namespace ipa::rkisp1 */
> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> index a2483f27cf52..2c7fdde55f49 100644
> --- a/src/ipa/rkisp1/rkisp1.cpp
> +++ b/src/ipa/rkisp1/rkisp1.cpp
> @@ -192,6 +192,7 @@ int IPARkISP1::start()
> void IPARkISP1::stop()
> {
> /* Clean the IPA context at the end of the streaming session. */
> + context_.frameContexts.clear();
> context_ = {};
> }
>
> @@ -318,6 +319,8 @@ void IPARkISP1::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)
> void IPARkISP1::processStatsBuffer(const uint32_t frame, const uint32_t bufferId,
> const ControlList &sensorControls)
> {
> + RKISP1FrameContext &frameContext = context_.frameContexts.get(frame);
> +
> const rkisp1_stat_buffer *stats =
> reinterpret_cast<rkisp1_stat_buffer *>(
> mappedBuffers_.at(bufferId).planes()[0].data());
> @@ -329,9 +332,6 @@ void IPARkISP1::processStatsBuffer(const uint32_t frame, const uint32_t bufferId
>
> unsigned int aeState = 0;
>
> - /* \todo Obtain the frame context to pass to process from the FCQueue */
> - RKISP1FrameContext frameContext;
> -
> for (auto const &algo : algorithms())
> algo->process(context_, frameContext, stats);
>
More information about the libcamera-devel
mailing list