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

Umang Jain umang.jain at ideasonboard.com
Thu Sep 23 10:37:47 CEST 2021


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>
---
 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