[libcamera-devel] [PATCH 10/10] android: camera_device: Handle LENS_SHADING_MAP_MODES
Kieran Bingham
kieran.bingham at ideasonboard.com
Fri Oct 9 14:52:50 CEST 2020
Hi Jacopo,
On 09/10/2020 13:21, Jacopo Mondi wrote:
> Register the ANDROID_STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES
> static metadata property inspecting the values retuned by the pipeline
> handler through the properties::draft::AvailableLensShadingMapModes
> libcamera property.
>
> Reserve in static metadata pack enough space to support all the 2
> available lens shading map modes Android defines.
>
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> ---
> src/android/camera_device.cpp | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
> index 172676f98059..d776b61c07e6 100644
> --- a/src/android/camera_device.cpp
> +++ b/src/android/camera_device.cpp
> @@ -537,8 +537,8 @@ std::tuple<uint32_t, uint32_t> CameraDevice::calculateStaticMetadataSize()
> * \todo Keep this in sync with the actual number of entries.
> * Currently: 51 entries, 687 bytes of static metadata
> */
> - uint32_t numEntries = 51;
> - uint32_t byteSize = 693;
> + uint32_t numEntries = 52;
> + uint32_t byteSize = 694;
693+2=695 ... but possibly needs update from previous too.
With correct sizings:
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>
> /*
> * Calculate space occupation in bytes for dynamically built metadata
> @@ -766,6 +766,18 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
> staticMetadata_->addEntry(ANDROID_STATISTICS_INFO_MAX_FACE_COUNT,
> &maxFaceCount, 1);
>
> + if (cameraProperties.contains(properties::draft::AvailableLensShadingMapModes)) {
> + Span<const int32_t> pipelineLensShadingMapModes =
> + cameraProperties.get<Span<const int32_t>>
> + (properties::draft::AvailableLensShadingMapModes);
> +
> + std::vector<uint8_t> lensMapModes;
> + for (int32_t mode : pipelineLensShadingMapModes)
> + lensMapModes.push_back(mode);
> + staticMetadata_->addEntry(ANDROID_STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES,
> + lensMapModes.data(), lensMapModes.size());
> + }
> +
> /* Sync static metadata. */
> int32_t maxLatency = ANDROID_SYNC_MAX_LATENCY_UNKNOWN;
> staticMetadata_->addEntry(ANDROID_SYNC_MAX_LATENCY, &maxLatency, 1);
>
--
Regards
--
Kieran
More information about the libcamera-devel
mailing list