[libcamera-devel] [PATCH v5 11/33] ipa: ipu3: Pass controls to algorithm's queueRequest() handler
Jacopo Mondi
jacopo at jmondi.org
Tue Sep 27 11:13:56 CEST 2022
Hi Laurent
On Tue, Sep 27, 2022 at 05:36:20AM +0300, Laurent Pinchart via libcamera-devel wrote:
> Call the Algorithm::queueRequest() function of all algorithms when a
> request is queued, to pass the request controls to the algorithms. We
> can now drop the copy of the control list stored in IPAFrameContext as
> it isn't used anymore.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
Thanks
j
> ---
> Changes since v4:
>
> - Drop todo comment
> ---
> src/ipa/ipu3/ipa_context.cpp | 3 ---
> src/ipa/ipu3/ipa_context.h | 3 ---
> src/ipa/ipu3/ipu3.cpp | 5 ++---
> 3 files changed, 2 insertions(+), 9 deletions(-)
>
> diff --git a/src/ipa/ipu3/ipa_context.cpp b/src/ipa/ipu3/ipa_context.cpp
> index 6904ccbbdf8b..bd71b615365d 100644
> --- a/src/ipa/ipu3/ipa_context.cpp
> +++ b/src/ipa/ipu3/ipa_context.cpp
> @@ -168,9 +168,6 @@ namespace libcamera::ipa::ipu3 {
> * \struct IPAFrameContext
> * \brief IPU3-specific FrameContext
> *
> - * \var IPAFrameContext::frameControls
> - * \brief Controls sent in by the application while queuing the request
> - *
> * \var IPAFrameContext::sensor
> * \brief Effective sensor values that were applied for the frame
> *
> diff --git a/src/ipa/ipu3/ipa_context.h b/src/ipa/ipu3/ipa_context.h
> index bfc0196e098a..36099353e9f2 100644
> --- a/src/ipa/ipu3/ipa_context.h
> +++ b/src/ipa/ipu3/ipa_context.h
> @@ -12,7 +12,6 @@
>
> #include <libcamera/base/utils.h>
>
> -#include <libcamera/controls.h>
> #include <libcamera/geometry.h>
>
> #include <libipa/fc_queue.h>
> @@ -78,8 +77,6 @@ struct IPAFrameContext : public FrameContext {
> uint32_t exposure;
> double gain;
> } sensor;
> -
> - ControlList frameControls;
> };
>
> struct IPAContext {
> diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
> index 96dc2af2cb73..d1ea081d595d 100644
> --- a/src/ipa/ipu3/ipu3.cpp
> +++ b/src/ipa/ipu3/ipu3.cpp
> @@ -663,11 +663,10 @@ void IPAIPU3::processStatsBuffer(const uint32_t frame,
> */
> void IPAIPU3::queueRequest(const uint32_t frame, const ControlList &controls)
> {
> - /* \todo Start processing for 'frame' based on 'controls'. */
> IPAFrameContext &frameContext = context_.frameContexts.alloc(frame);
>
> - /* \todo Implement queueRequest to each algorithm. */
> - frameContext.frameControls = controls;
> + for (auto const &algo : algorithms())
> + algo->queueRequest(context_, frame, frameContext, controls);
> }
>
> /**
> --
> Regards,
>
> Laurent Pinchart
>
More information about the libcamera-devel
mailing list