[libcamera-devel,v4,1/2] android: camera_capabilities: Clarify CameraMetadata allocation
diff mbox series

Message ID 20210923083748.146265-2-umang.jain@ideasonboard.com
State Accepted
Delegated to: Umang Jain
Headers show
Series
  • android: Fix generation of thumbnail for EXIF data
Related show

Commit Message

Umang Jain Sept. 23, 2021, 8:37 a.m. UTC
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@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
---
 src/android/camera_capabilities.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Comments

Hirokazu Honda Sept. 27, 2021, 11:10 a.m. UTC | #1
Hi Umang, thank you for the patch.

On Thu, Sep 23, 2021 at 5:38 PM Umang Jain <umang.jain@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@ideasonboard.com>
> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>

Reviewed-by: Hirokazu Honda <hiroh@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
>
Jacopo Mondi Sept. 27, 2021, 7:40 p.m. UTC | #2
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@ideasonboard.com>
> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>

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

Reviewed-by: Jacopo Mondi <jacopo@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
>

Patch
diff mbox series

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()) {