[libcamera-devel] [PATCH v2] android: camera_device: Fix value of orientation metadata
Jacopo Mondi
jacopo at jmondi.org
Wed Sep 9 13:01:33 CEST 2020
Hi Umang,
sorry I got late on v1
On Wed, Sep 09, 2020 at 04:17:54PM +0530, Umang Jain wrote:
> Android's orientation metadata cannot have identical numerical
> value to libcamera's rotation property. This is due to the fact
> that libcamera's rotation property specify the correction angle
specifies
> in anticlockwise direction whereas Android's orientation metadata
> specifies the value in clockwise direction. Fix that by computing
> corresponding value for clockwise direction from libcamera's rotation
> property.
>
We used 'counterclockwise', but I think it's the same
> Signed-off-by: Umang Jain <email at uajain.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
> src/android/camera_device.cpp | 15 ++++++++++-----
> 1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
> index 2582991..8be846b 100644
> --- a/src/android/camera_device.cpp
> +++ b/src/android/camera_device.cpp
> @@ -265,12 +265,17 @@ int CameraDevice::initialize()
> }
>
> /*
> - * The Android orientation metadata and libcamera rotation property are
> - * defined differently but have identical numerical values for Android
> - * devices such as phones and tablets.
> + * The Android orientation metadata specifies its rotation correction
> + * value in clockwise direction whereas libcamera specifies the
> + * rotation property in anticlockwise direction. Read the libcamera's
> + * rotation property (anticlockwise) and compute the corresponding
> + * value for clockwise direction as required by the Android orientation
> + * metadata.
> */
> - if (properties.contains(properties::Rotation))
> - orientation_ = properties.get(properties::Rotation);
> + if (properties.contains(properties::Rotation)) {
> + int rotation = properties.get(properties::Rotation);
> + orientation_ = (360 - rotation) % 360;
The % 360 'should' not be necessary, but I guess it doesn't hurt.
Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
Thanks
j
> + }
>
> int ret = camera_->acquire();
> if (ret) {
> --
> 2.26.2
>
More information about the libcamera-devel
mailing list