[RFC 1/4] libcamera: swstats_cpu: Update statsProcessFn() / processLine0() documentation

Milan Zamazal mzamazal at redhat.com
Tue Oct 15 17:30:17 CEST 2024


Hans de Goede <hdegoede at redhat.com> writes:

> Update the documentation of the statsProcessFn() / processLine0() src[]
> pointer argument to take into account that swstats_cpu may also be used
> with planar input data or with non Bayer single plane input data.
>
> The statsProcessFn typedef is private, so no documentation is generated
> for it. Move the new updated src[] pointer argument documentation to
> processLine0() so that it gets included in the generated docs.
>
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> ---
>  src/libcamera/software_isp/swstats_cpu.cpp | 27 +++++++++++-----------
>  1 file changed, 13 insertions(+), 14 deletions(-)
>
> diff --git a/src/libcamera/software_isp/swstats_cpu.cpp b/src/libcamera/software_isp/swstats_cpu.cpp
> index c520c806..a9a3e77a 100644
> --- a/src/libcamera/software_isp/swstats_cpu.cpp
> +++ b/src/libcamera/software_isp/swstats_cpu.cpp
> @@ -71,6 +71,19 @@ namespace libcamera {
>   * patternSize height == 1.
>   * It'll process line 0 and 1 for input formats with patternSize height >= 2.
>   * This function may only be called after a successful setWindow() call.
> + *
> + * This function takes an array of src pointers each pointing to a line in
> + * the source image.
> + *
> + * Bayer input data requires (patternSize_.height + 1) src pointers, with
> + * the middle element of the array pointing to the actual line being processed.
> + * Earlier element(s) will point to the previous line(s) and later element(s)
> + * to the next line(s). See the DebayerCpu::debayerFn documentation for details.
> + *
> + * Planar input data requires a src pointer for each plane, with src[0] pointing
> + * to the line in plane 0, etc.

I'm having trouble to be comfortable with the overloading.  It's true
that the method implementation doesn't really care about the meaning of
`src' contents and stats0_ signature is satisfied.  I'm just nervous
about making something that's already not very clear even more
complicated.

Since I don't have a better suggestion at the moment:

Reviewed-by: Milan Zamazal <mzamazal at redhat.com>

> + *
> + * For non Bayer single plane input data only a single src pointer is required.
>   */
>  
>  /**
> @@ -89,20 +102,6 @@ namespace libcamera {
>   * \brief Signals that the statistics are ready
>   */
>  
> -/**
> - * \typedef SwStatsCpu::statsProcessFn
> - * \brief Called when there is data to get statistics from
> - * \param[in] src The input data
> - *
> - * These functions take an array of (patternSize_.height + 1) src
> - * pointers each pointing to a line in the source image. The middle
> - * element of the array will point to the actual line being processed.
> - * Earlier element(s) will point to the previous line(s) and later
> - * element(s) to the next line(s).
> - *
> - * See the documentation of DebayerCpu::debayerFn for more details.
> - */
> -
>  /**
>   * \var unsigned int SwStatsCpu::ySkipMask_
>   * \brief Skip lines where this bitmask is set in y



More information about the libcamera-devel mailing list