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

Hirokazu Honda hiroh at chromium.org
Mon Sep 27 13:10:44 CEST 2021


Hi Umang, thank you for the patch.

On Thu, Sep 23, 2021 at 5:38 PM Umang Jain <umang.jain at ideasonboard.com> 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>

Reviewed-by: Hirokazu Honda <hiroh at chromium.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