[libcamera-devel] [PATCH 3/3] android: camera_device: Use reference to settings
Niklas Söderlund
niklas.soderlund at ragnatech.se
Sat Jan 30 00:16:49 CET 2021
Hi Jacopo,
Thanks for your work.
On 2021-01-29 15:26:15 +0100, Jacopo Mondi wrote:
> In preparation to use the keys part of a capture request to
> fill in the result metadata, instantiate a reference to
> descriptor_->settings_ and use it.
s/instantiate/create/
s/and use it//
>
> While at it, move the 'ret' variable declaration to the beginning of
> the function and rename it in 'found', as it will be used in many
> places and move the \todo comment up as it applies to all metadata
> whose value is copied from settings.
>
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> src/android/camera_device.cpp | 16 +++++++++++-----
> 1 file changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
> index b66e7c71884a..0c424978838d 100644
> --- a/src/android/camera_device.cpp
> +++ b/src/android/camera_device.cpp
> @@ -1936,7 +1936,9 @@ CameraDevice::getResultMetadata(Camera3RequestDescriptor *descriptor,
> int64_t timestamp)
> {
> const ControlList &metadata = descriptor->request_->metadata();
> + const CameraMetadata &settings = descriptor->settings_;
> camera_metadata_ro_entry_t entry;
> + bool found;
>
> /*
> * \todo Keep this in sync with the actual number of entries.
> @@ -1961,6 +1963,12 @@ CameraDevice::getResultMetadata(Camera3RequestDescriptor *descriptor,
> return nullptr;
> }
>
> + /*
> + * \todo The value of the results metadata copied from the settings
> + * will have to be passed to the libcamera::Camera and extracted
> + * from libcamera::Request::metadata.
> + */
> +
> uint8_t value = ANDROID_CONTROL_AE_ANTIBANDING_MODE_OFF;
> resultMetadata->addEntry(ANDROID_CONTROL_AE_ANTIBANDING_MODE, &value, 1);
>
> @@ -1975,10 +1983,9 @@ CameraDevice::getResultMetadata(Camera3RequestDescriptor *descriptor,
> aeFpsTarget.data(), aeFpsTarget.size());
>
> value = ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE;
> - /* \todo Handle IPA appropriately */
> - bool ret = descriptor->settings_.getEntry(ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER, &entry);
> + found = settings.getEntry(ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER, &entry);
> resultMetadata->addEntry(ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER,
> - ret ? entry.data.u8 : &value, 1);
> + found ? entry.data.u8 : &value, 1);
>
> value = ANDROID_CONTROL_AE_STATE_CONVERGED;
> resultMetadata->addEntry(ANDROID_CONTROL_AE_STATE, &value, 1);
> @@ -2022,8 +2029,7 @@ CameraDevice::getResultMetadata(Camera3RequestDescriptor *descriptor,
> value = ANDROID_FLASH_STATE_UNAVAILABLE;
> resultMetadata->addEntry(ANDROID_FLASH_STATE, &value, 1);
>
> - ret = descriptor->settings_.getEntry(ANDROID_LENS_APERTURE, &entry);
> - if (ret)
> + if (settings.getEntry(ANDROID_LENS_APERTURE, &entry))
> resultMetadata->addEntry(ANDROID_LENS_APERTURE, entry.data.f, 1);
>
> float focal_length = 1.0;
> --
> 2.30.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