[libcamera-devel] [PATCH 1/5] android: camera_device: Report more control modes
Niklas Söderlund
niklas.soderlund at ragnatech.se
Wed Jul 29 01:51:24 CEST 2020
Hi Jacopo,
Thanks for your patch.
On 2020-07-25 18:42:39 +0200, Jacopo Mondi wrote:
> In order to prepare to construct the request template for the manual
> mode use case, which requires all automatic controls of the pipeline to
> be disabled, advertise support for the AE, AWB and AF algorithms on/off
> modes to the static camera characteristics metadata pack,
>
> While at it, change the type of the supported control modes from char to
> uint8_t, as it's the type used for all other 'byte' controls.
>
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> ---
> src/android/camera_device.cpp | 13 ++++++++++---
> 1 file changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
> index d667c4f126f3..fa4570fabdd7 100644
> --- a/src/android/camera_device.cpp
> +++ b/src/android/camera_device.cpp
> @@ -377,7 +377,7 @@ std::tuple<uint32_t, uint32_t> CameraDevice::calculateStaticMetadataSize()
> * Currently: 50 entries, 647 bytes of static metadata
> */
> uint32_t numEntries = 50;
> - uint32_t byteSize = 667;
> + uint32_t byteSize = 671;
>
> /*
> * Calculate space occupation in bytes for dynamically built metadata
> @@ -438,6 +438,7 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
>
> std::vector<uint8_t> aeAvailableModes = {
> ANDROID_CONTROL_AE_MODE_ON,
> + ANDROID_CONTROL_AE_MODE_OFF,
> };
Mostly for my education, should we not query the libcamera Camera on
what it supports regarding AE here and other below before advertising
support for something?
> staticMetadata_->addEntry(ANDROID_CONTROL_AE_AVAILABLE_MODES,
> aeAvailableModes.data(),
> @@ -464,6 +465,7 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
> aeCompensationStep, 1);
>
> std::vector<uint8_t> availableAfModes = {
> + ANDROID_CONTROL_AF_MODE_AUTO,
> ANDROID_CONTROL_AF_MODE_OFF,
> };
> staticMetadata_->addEntry(ANDROID_CONTROL_AF_AVAILABLE_MODES,
> @@ -492,6 +494,7 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
> availableStabilizationModes.size());
>
> std::vector<uint8_t> availableAwbModes = {
> + ANDROID_CONTROL_AWB_MODE_AUTO,
> ANDROID_CONTROL_AWB_MODE_OFF,
> };
> staticMetadata_->addEntry(ANDROID_CONTROL_AWB_AVAILABLE_MODES,
> @@ -522,9 +525,13 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
> staticMetadata_->addEntry(ANDROID_CONTROL_AWB_LOCK_AVAILABLE,
> &awbLockAvailable, 1);
>
> - char availableControlModes = ANDROID_CONTROL_MODE_AUTO;
> + std::vector<uint8_t> availableControlModes = {
> + ANDROID_CONTROL_MODE_AUTO,
> + ANDROID_CONTROL_MODE_OFF,
> + };
> staticMetadata_->addEntry(ANDROID_CONTROL_AVAILABLE_MODES,
> - &availableControlModes, 1);
> + availableControlModes.data(),
> + availableControlModes.size());
>
> /* JPEG static metadata. */
> std::vector<int32_t> availableThumbnailSizes = {
> --
> 2.27.0
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
--
Regards,
Niklas Söderlund
More information about the libcamera-devel
mailing list