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

paul.elder at ideasonboard.com paul.elder at ideasonboard.com
Thu Sep 23 09:33:26 CEST 2021


Hi Umang,

On Thu, Sep 23, 2021 at 12:54:52PM +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>
> ---
>  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..238b44db 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 to resize the container on the fly, if the

s/to resize/of resizing/

s/the$/adding a new entry will exceed its capacity./


Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>

> +	 * number of entries get exceeded.
>  	 */
>  	auto requestTemplate = std::make_unique<CameraMetadata>(21, 36);
>  	if (!requestTemplate->isValid()) {
> -- 
> 2.31.0
> 


More information about the libcamera-devel mailing list