[libcamera-devel,v3,2/3] android: camera_device: Fix sensor frame duration
diff mbox series

Message ID 20210525091812.1225580-2-paul.elder@ideasonboard.com
State Superseded
Headers show
Series
  • [libcamera-devel,v3,1/3] controls: Split FrameDurations into FrameDuration and FrameDurationLimits
Related show

Commit Message

Paul Elder May 25, 2021, 9:18 a.m. UTC
The sensor frame duration should be set by IPA. Get the information for
the result metadata from libcamera.

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/android/camera_device.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Jacopo Mondi May 25, 2021, 10:24 a.m. UTC | #1
Hi Paul,

On Tue, May 25, 2021 at 06:18:11PM +0900, Paul Elder wrote:
> The sensor frame duration should be set by IPA. Get the information for
> the result metadata from libcamera.
>
> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>

Thanks
  j

> ---
>  src/android/camera_device.cpp | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
> index 0eea2b95..70173424 100644
> --- a/src/android/camera_device.cpp
> +++ b/src/android/camera_device.cpp
> @@ -2252,6 +2252,12 @@ CameraDevice::getResultMetadata(const Camera3RequestDescriptor &descriptor) cons
>  		resultMetadata->addEntry(ANDROID_SENSOR_EXPOSURE_TIME, exposure);
>  	}
>
> +	if (metadata.contains(controls::FrameDuration)) {
> +		int64_t duration = metadata.get(controls::FrameDuration) * 1000;
> +		resultMetadata->addEntry(ANDROID_SENSOR_FRAME_DURATION,
> +					 duration);
> +	}
> +
>  	if (metadata.contains(controls::ScalerCrop)) {
>  		Rectangle crop = metadata.get(controls::ScalerCrop);
>  		int32_t cropRect[] = {
> --
> 2.27.0
>
Hirokazu Honda May 26, 2021, 6:51 a.m. UTC | #2
Hi Paul, thank you for the patch.

On Tue, May 25, 2021 at 7:23 PM Jacopo Mondi <jacopo@jmondi.org> wrote:

> Hi Paul,
>
> On Tue, May 25, 2021 at 06:18:11PM +0900, Paul Elder wrote:
> > The sensor frame duration should be set by IPA. Get the information for
> > the result metadata from libcamera.
> >
> > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>
> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
>
>
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>


> Thanks
>   j
>
> > ---
> >  src/android/camera_device.cpp | 6 ++++++
> >  1 file changed, 6 insertions(+)
> >
> > diff --git a/src/android/camera_device.cpp
> b/src/android/camera_device.cpp
> > index 0eea2b95..70173424 100644
> > --- a/src/android/camera_device.cpp
> > +++ b/src/android/camera_device.cpp
> > @@ -2252,6 +2252,12 @@ CameraDevice::getResultMetadata(const
> Camera3RequestDescriptor &descriptor) cons
> >               resultMetadata->addEntry(ANDROID_SENSOR_EXPOSURE_TIME,
> exposure);
> >       }
> >
> > +     if (metadata.contains(controls::FrameDuration)) {
> > +             int64_t duration = metadata.get(controls::FrameDuration) *
> 1000;
> > +             resultMetadata->addEntry(ANDROID_SENSOR_FRAME_DURATION,
> > +                                      duration);
> > +     }
> > +
> >       if (metadata.contains(controls::ScalerCrop)) {
> >               Rectangle crop = metadata.get(controls::ScalerCrop);
> >               int32_t cropRect[] = {
> > --
> > 2.27.0
> >
>

Patch
diff mbox series

diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index 0eea2b95..70173424 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -2252,6 +2252,12 @@  CameraDevice::getResultMetadata(const Camera3RequestDescriptor &descriptor) cons
 		resultMetadata->addEntry(ANDROID_SENSOR_EXPOSURE_TIME, exposure);
 	}
 
+	if (metadata.contains(controls::FrameDuration)) {
+		int64_t duration = metadata.get(controls::FrameDuration) * 1000;
+		resultMetadata->addEntry(ANDROID_SENSOR_FRAME_DURATION,
+					 duration);
+	}
+
 	if (metadata.contains(controls::ScalerCrop)) {
 		Rectangle crop = metadata.get(controls::ScalerCrop);
 		int32_t cropRect[] = {