[libcamera-devel] [PATCH v4 17/19] ipa: ipu3: Implement an empty stop() function

Kieran Bingham kieran.bingham at ideasonboard.com
Tue Oct 26 12:41:34 CEST 2021


Quoting Umang Jain (2021-10-26 11:31:33)
> Hi JM.
> 
> On 10/26/21 4:00 PM, Jean-Michel Hautbois wrote:
> > Hi Umang,
> >
> > On 26/10/2021 12:13, Umang Jain wrote:
> >> Hi JM,
> >>
> >> On 10/26/21 3:25 PM, Jean-Michel Hautbois wrote:
> >>> While the stop() function does not currently perform any action, it 
> >>> forms
> >>> part of the IPA interface and is a public function in the class.
> >>>
> >>> Promote it to a full (but basic) function implementation and begin the
> >>> documentation accordingly so that there is an appropriate stub to
> >>> perform stop operations if they come up.
> >>>
> >>> Signed-off-by: Jean-Michel Hautbois 
> >>> <jeanmichel.hautbois at ideasonboard.com>
> >>> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> >>> ---
> >>>   src/ipa/ipu3/ipu3.cpp | 9 ++++++++-
> >>>   1 file changed, 8 insertions(+), 1 deletion(-)
> >>>
> >>> diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
> >>> index a10fdd4a..5c51607d 100644
> >>> --- a/src/ipa/ipu3/ipu3.cpp
> >>> +++ b/src/ipa/ipu3/ipu3.cpp
> >>> @@ -135,7 +135,7 @@ public:
> >>>            ControlInfoMap *ipaControls) override;
> >>>       int start() override;
> >>> -    void stop() override {}
> >>> +    void stop() override;
> >>>       int configure(const IPAConfigInfo &configInfo,
> >>>                 ControlInfoMap *ipaControls) override;
> >>> @@ -323,6 +323,13 @@ int IPAIPU3::start()
> >>>       return 0;
> >>>   }
> >>> +/**
> >>> + * \brief Ensure that all processing has completed
> >>
> >>
> >> This sounds less like a \brief but more like a \todo. Since, it's a 
> >> stub function, I am not sure how well we can document it as of now.
> >
> > Indeed, but this is a reference documentation, so we are telling the 
> > purpose of the function, even if not implemented yet or empty.
> 
> 
> Ok, sounds okay to me then
> 
> Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>
> 
> >
> >>
> >> Do we have some "stopping" criteria which needs to be satisfied to 
> >> ensure we have stopped the IPA?
> >
> > Right now, no, but in the future, maybe (not really thought about it yet)

This IPA doesn't currently have any requirements to stop anything as
nothing is run asynchronously. However - the libcamera IPA interface
/requires/ that after stop() is called, the IPA is not allowed to do
anything. (Think back to those IPU3 bugs I had to fix)

So I'm quite happy that this is here as a clear statement to say "This
is where you must stop anything that has started".



> >
> >>
> >>> + */
> >>> +void IPAIPU3::stop()
> >>> +{
> >>> +}
> >>> +
> >>>   /**
> >>>    * \brief Calculate a grid for the AWB statistics
> >>>    *


More information about the libcamera-devel mailing list