[libcamera-devel] [PATCH v6 02/12] libcamera: geometry: Add Size structure

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Apr 2 18:38:19 CEST 2019


Hi Jacopo,

Thank you for the patch.

On Tue, Apr 02, 2019 at 06:21:24PM +0200, Jacopo Mondi wrote:
> Add a simple Size structure that contains an image width and height.
> 
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> ---
>  src/libcamera/geometry.cpp       | 29 +++++++++++++++++++++++++++++
>  src/libcamera/include/geometry.h | 15 +++++++++++++++
>  2 files changed, 44 insertions(+)
> 
> diff --git a/src/libcamera/geometry.cpp b/src/libcamera/geometry.cpp
> index f76001d94562..30531d0c678a 100644
> --- a/src/libcamera/geometry.cpp
> +++ b/src/libcamera/geometry.cpp
> @@ -105,4 +105,33 @@ const std::string Rectangle::toString() const
>   * \brief The maximum image height
>   */
>  
> +/**
> + * \struct Size
> + * \brief Describe an image size
> + *
> + * Size describes the vertical and horizontal sizes of an image.

How about "The Size structure defines a two-dimensional size with integer precision" ?

> + */
> +
> +/**
> + * \fn Size::Size()
> + * \brief Construct a size initialized to 0

Construct a Size with width and height set to 0

> + */
> +
> +/**
> + * \fn Size::Size(unsigned int w, unsigned int h)

I'd name the arguments width and height, at least in the documentation.

> + * \brief Construct an initialized size

Construct a Size with the given \a width and \a height

> + * \param w The image width
> + * \param h The image height

This could represent the size of something else than an image, I
wouldn't mention image. Same for the two doxygen comments below.

> + */
> +
> +/**
> + * \var Size::width
> + * \brief The image width
> + */
> +
> +/**
> + * \var Size::height
> + * \brief The image height
> + */
> +
>  } /* namespace libcamera */
> diff --git a/src/libcamera/include/geometry.h b/src/libcamera/include/geometry.h
> index 567a54299b24..24be5e2f6f78 100644
> --- a/src/libcamera/include/geometry.h
> +++ b/src/libcamera/include/geometry.h
> @@ -40,6 +40,21 @@ struct SizeRange {
>  	unsigned int maxHeight;
>  };
>  
> +struct Size {
> +	Size(void)

No need for void.

> +		: Size(0, 0)
> +	{
> +	}
> +
> +	Size(unsigned int w, unsigned int h)
> +		: width(w), height(h)
> +	{
> +	}
> +
> +	unsigned int width;
> +	unsigned int height;

Do we want to support negative dimensions that would denote an invalid
or uninitialized size ? The default constructor could set width and
height to -1, and we could provide an isValid() function to test for
that. Maybe something for later, or is it simple enough that we should
do it now ?

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> +};
> +
>  } /* namespace libcamera */
>  
>  #endif /* __LIBCAMERA_GEOMETRY_H__ */

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list