[libcamera-devel] [IPAIPU3 PATCH v5 5/6] ipu3: Inline fillParams() in fillParamsBuffer()
paul.elder at ideasonboard.com
paul.elder at ideasonboard.com
Fri Apr 8 09:18:17 CEST 2022
Hi Umang,
On Wed, Apr 06, 2022 at 07:47:08PM +0530, Umang Jain via libcamera-devel wrote:
> Since we have moved away from switch/case on the operation ID,
> there's little reason to split the operation in two functions.
>
> Signed-off-by: Umang Jain <umang.jain at ideasonboard.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>
> ---
> ipu3.cpp | 52 +++++++++++++++++++++++-----------------------------
> 1 file changed, 23 insertions(+), 29 deletions(-)
>
> diff --git a/ipu3.cpp b/ipu3.cpp
> index b6d2129..0543a2e 100644
> --- a/ipu3.cpp
> +++ b/ipu3.cpp
> @@ -60,7 +60,6 @@ private:
> const ControlInfoMap &sensorControls,
> ControlInfoMap *ipaControls);
> void runAiq(unsigned int frame);
> - void fillParams(unsigned int frame, ipu3_uapi_params *params);
> void parseStatistics(unsigned int frame,
> int64_t frameTimestamp,
> const ipu3_uapi_stats_3a *stats,
> @@ -342,7 +341,29 @@ void IPAIPU3::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)
> ipu3_uapi_params *params =
> reinterpret_cast<ipu3_uapi_params *>(mem.data());
>
> - fillParams(frame, params);
> + /* Prepare parameters buffer. */
> + memset(params, 0, sizeof(*params));
> +
> + /*
> + * Call into the AIQ object, and set up the library with any requested
> + * controls or settings from the incoming request.
> + *
> + * (statistics are fed into the library as a separate event
> + * when available)
> + *
> + * - Run algorithms
> + *
> + * - Fill params buffer with the results of the algorithms.
> + */
> + runAiq(frame);
> +
> + aiq::AiqResults& latestResults = resultsHistory_.latest();
> + aic_.updateRuntimeParams(latestResults);
> + aic_.run(params);
> +
> + setControls(frame);
> +
> + paramsBufferReady.emit(frame);
> }
>
> void IPAIPU3::processStatsBuffer(const uint32_t frame, const int64_t frameTimestamp,
> @@ -390,33 +411,6 @@ void IPAIPU3::runAiq([[maybe_unused]] unsigned int frame)
> lensPosition_ = latestResults.af()->next_lens_position;
> }
>
> -void IPAIPU3::fillParams(unsigned int frame, ipu3_uapi_params *params)
> -{
> - /* Prepare parameters buffer. */
> - memset(params, 0, sizeof(*params));
> -
> - /*
> - * Call into the AIQ object, and set up the library with any requested
> - * controls or settings from the incoming request.
> - *
> - * (statistics are fed into the library as a separate event
> - * when available)
> - *
> - * - Run algorithms
> - *
> - * - Fill params buffer with the results of the algorithms.
> - */
> - runAiq(frame);
> -
> - aiq::AiqResults& latestResults = resultsHistory_.latest();
> - aic_.updateRuntimeParams(latestResults);
> - aic_.run(params);
> -
> - setControls(frame);
> -
> - paramsBufferReady.emit(frame);
> -}
> -
> void IPAIPU3::parseStatistics(unsigned int frame,
> int64_t frameTimestamp,
> const ipu3_uapi_stats_3a *stats,
> --
> 2.31.0
>
More information about the libcamera-devel
mailing list