[libcamera-devel] [PATCH v4 1/2] android: camera_capabilities: Clarify CameraMetadata allocation

Jacopo Mondi jacopo at jmondi.org
Mon Sep 27 21:40:18 CEST 2021


Hi Umang,

On Thu, Sep 23, 2021 at 02:07:47PM +0530, Umang Jain wrote:
> CameraMetadata's constructor take in number of entries and number of
> bytes to be allocated for those entries. However, CameraMetadata is
> already capable of resizing its container on the fly, in case more
> entries are added to it. Hence, the numbers passed in during the
> construction acts as hint values for initialization.
>
> Clarify this in CameraCapabilities::requestTemplatePreview() and
> remove the \todo, as the arguments and the \todo gives the perspective
> that we need to be quite accurate with the numbers of entries / bytes,
> which is not the case.
>
> Signed-off-by: Umang Jain <umang.jain at ideasonboard.com>
> Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>

Indeed, I got you to worry about a non-issue here, sorry about that

Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
> ---
>  src/android/camera_capabilities.cpp | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/src/android/camera_capabilities.cpp b/src/android/camera_capabilities.cpp
> index e92bca42..edeb6943 100644
> --- a/src/android/camera_capabilities.cpp
> +++ b/src/android/camera_capabilities.cpp
> @@ -1340,8 +1340,12 @@ std::unique_ptr<CameraMetadata> CameraCapabilities::requestTemplateManual() cons
>  std::unique_ptr<CameraMetadata> CameraCapabilities::requestTemplatePreview() const
>  {
>  	/*
> -	 * \todo Keep this in sync with the actual number of entries.
> -	 * Currently: 20 entries, 35 bytes
> +	 * Give initial hint of entries and number of bytes to be allocated.
> +	 * It is deliberate that the hint is slightly larger than required, to
> +	 * avoid resizing the container.
> +	 *
> +	 * CameraMetadata is capable of resizing the container on the fly, if
> +	 * adding a new entry will exceed its capacity.
>  	 */
>  	auto requestTemplate = std::make_unique<CameraMetadata>(21, 36);
>  	if (!requestTemplate->isValid()) {
> --
> 2.31.1
>


More information about the libcamera-devel mailing list