[libcamera-devel] [PATCH v3 3/3] android: camera_device: Report sensor physical size
Jacopo Mondi
jacopo at jmondi.org
Thu Mar 25 14:51:16 CET 2021
Calculate the value of the ANDROID_SENSOR_INFO_PHYSICAL_SIZE property
multiplying the number of sensor's readable pixels with the pixel unit
cell size if provided by the Camera.
Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
src/android/camera_device.cpp | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index 5fbf6f82ee9a..1d94e3a0b6ab 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -931,15 +931,23 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
staticMetadata_->addEntry(ANDROID_JPEG_MAX_SIZE, &maxJpegBufferSize_, 1);
/* Sensor static metadata. */
+ int32_t pixelArraySize[2];
{
const Size &size =
properties.get(properties::PixelArraySize);
- std::vector<int32_t> data{
- static_cast<int32_t>(size.width),
- static_cast<int32_t>(size.height),
- };
+ pixelArraySize[0] = size.width;
+ pixelArraySize[1] = size.height;
staticMetadata_->addEntry(ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE,
- data.data(), data.size());
+ pixelArraySize, 2);
+ }
+
+ if (properties.contains(properties::UnitCellSize)) {
+ std::vector<float> physicalSize(2);
+ const Size &size = properties.get<Size>(properties::UnitCellSize);
+ physicalSize[0] = size.width * pixelArraySize[0] / 1e6f;
+ physicalSize[1] = size.height * pixelArraySize[1] / 1e6f;
+ staticMetadata_->addEntry(ANDROID_SENSOR_INFO_PHYSICAL_SIZE,
+ physicalSize.data(), physicalSize.size());
}
{
@@ -987,13 +995,6 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
testPatterModes.data(),
testPatterModes.size());
- std::vector<float> physicalSize = {
- 2592, 1944,
- };
- staticMetadata_->addEntry(ANDROID_SENSOR_INFO_PHYSICAL_SIZE,
- physicalSize.data(),
- physicalSize.size());
-
uint8_t timestampSource = ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_UNKNOWN;
staticMetadata_->addEntry(ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE,
×tampSource, 1);
--
2.30.0
More information about the libcamera-devel
mailing list