[libcamera-devel] [PATCH] ipa: rkisp1: ipa_context: Add camera data to IPAContext
Jacopo Mondi
jacopo.mondi at ideasonboard.com
Sun Apr 30 19:03:29 CEST 2023
On Wed, Apr 26, 2023 at 04:10:37AM +0300, Laurent Pinchart via libcamera-devel wrote:
> The IPARkISP1 class caches data that is immutable over the life time of
> the camera in private class members at init() time. This covers the
> current needs to the IPA module, but doesn't provide a mechanism to
> access that data from IPA algorithms. This will be needed for instance
> by the upcoming auto-focus algorithm.
>
> To prepare for such use cases, create a new IPACameraData structure that
> stores immutable camera data, and instantiate it in the IPAContext
> structure. The IPACameraData structure is currently empty, new members
> will be added as needed.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Patch looks good, should we already collect it or wait for Daniel to
take it into his AF series ?
Reviewed-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
> ---
>
> Bikeshedding on the IPACameraData and IPAContext::data names is welcome
> :-)
>
> ---
> src/ipa/rkisp1/ipa_context.cpp | 13 +++++++++++++
> src/ipa/rkisp1/ipa_context.h | 4 ++++
> src/ipa/rkisp1/rkisp1.cpp | 2 +-
> 3 files changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp
> index 9bbf368432fa..986b955ea29d 100644
> --- a/src/ipa/rkisp1/ipa_context.cpp
> +++ b/src/ipa/rkisp1/ipa_context.cpp
> @@ -14,6 +14,15 @@
>
> namespace libcamera::ipa::rkisp1 {
>
> +/**
> + * \struct IPACameraData
> + * \brief Camera data for the IPA module
> + *
> + * The camera data contains all information about the camera that remains
> + * constant for the lifetime of the IPA context. It is typically set during the
> + * init() operation of the IPA module.
> + */
> +
> /**
> * \struct IPASessionConfiguration
> * \brief Session configuration for the IPA module
> @@ -337,6 +346,10 @@ namespace libcamera::ipa::rkisp1 {
> * \struct IPAContext
> * \brief Global IPA context data shared between all algorithms
> *
> + * \var IPAContext::data
> + * \brief The IPA camera data, initialized at init time and immutable for the
> + * lifetime of the context
> + *
> * \var IPAContext::configuration
> * \brief The IPA session configuration, immutable during the session
> *
> diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h
> index b9b2065328d6..53b79110c932 100644
> --- a/src/ipa/rkisp1/ipa_context.h
> +++ b/src/ipa/rkisp1/ipa_context.h
> @@ -20,6 +20,9 @@ namespace libcamera {
>
> namespace ipa::rkisp1 {
>
> +struct IPACameraData {
> +};
> +
> struct IPASessionConfiguration {
> struct {
> struct rkisp1_cif_isp_window measureWindow;
> @@ -143,6 +146,7 @@ struct IPAFrameContext : public FrameContext {
> };
>
> struct IPAContext {
> + IPACameraData data;
> IPASessionConfiguration configuration;
> IPAActiveState activeState;
>
> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> index 6544c925ba25..2fe66d34b6d4 100644
> --- a/src/ipa/rkisp1/rkisp1.cpp
> +++ b/src/ipa/rkisp1/rkisp1.cpp
> @@ -111,7 +111,7 @@ const ControlInfoMap::Map rkisp1Controls{
> } /* namespace */
>
> IPARkISP1::IPARkISP1()
> - : context_({ {}, {}, { kMaxFrameContexts } })
> + : context_({ {}, {}, {}, { kMaxFrameContexts } })
> {
> }
>
>
> base-commit: 683c6da83f078d09fc020d2b48a4abe471853b2b
> --
> Regards,
>
> Laurent Pinchart
>
More information about the libcamera-devel
mailing list