[libcamera-devel] [PATCH] android: camera_device: Add pipeline max depth static metadata

Jacopo Mondi jacopo at jmondi.org
Wed Aug 28 16:13:43 CEST 2019


The ANDROID_REQUEST_PIPELINE_MAX_DEPTH metadata tag was wrongly
reported in the capture settings template, while it is actually a static
camera metadata.

As of Chromium R78 the absence of this specific metadata tag causes a
system crash. Fix this by reporting the maximum pipeline depth in the
static metadata pack and set its value to 1 as currently no control is
applied to the image capture pipeline.

Reported-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Suggested-by: Ren-Pei Zeng <kamesan at google.com>
Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>

---
Laurent, as you're running R78 and first reported the crash, could you please
give this a spin and report if the issue is still present?

---
 src/android/camera_device.cpp | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index c27175ac090d..7c69d0810eee 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -281,6 +281,13 @@ camera_metadata_t *CameraDevice::getStaticMetadata()
 			ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL,
 			&supportedHWLevel, 1);

+	/* Request static metadata. */
+	uint8_t maxPipelineDepth = 1;
+	ret = add_camera_metadata_entry(staticMetadata_,
+			ANDROID_REQUEST_PIPELINE_MAX_DEPTH,
+			&maxPipelineDepth, 1);
+	METADATA_ASSERT(ret);
+
 	return staticMetadata_;
 }

@@ -340,12 +347,6 @@ const camera_metadata_t *CameraDevice::constructDefaultRequestSettings(int type)
 			maxOutStream, 3);
 	METADATA_ASSERT(ret);

-	uint8_t maxPipelineDepth = 5;
-	ret = add_camera_metadata_entry(requestTemplate_,
-			ANDROID_REQUEST_PIPELINE_MAX_DEPTH,
-			&maxPipelineDepth, 1);
-	METADATA_ASSERT(ret);
-
 	int32_t inputStreams = 0;
 	ret = add_camera_metadata_entry(requestTemplate_,
 			ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS,
--
2.23.0



More information about the libcamera-devel mailing list