[libcamera-devel,RFC,v2,00/12] FULL hardware level fixes
mbox series

Message ID 20210422094102.371772-1-paul.elder@ideasonboard.com
Headers show
Series
  • FULL hardware level fixes
Related show

Message

Paul Elder April 22, 2021, 9:40 a.m. UTC
This patchset switches to hardware level FULL, fixes many failures, and
sets up the infrastructure for pipeline handlers to get and set the
metadata.  The tests that this patchset fixes are (in alphabetical order):
- android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceCreateCaptureBuilder
- android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceManualTemplate
- android.hardware.camera2.cts.CameraDeviceTest#testCameraDevicePreviewTemplate
- android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceRecordingTemplate
- android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceStillTemplate
- android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceVideoSnapShotTemplate
- android.hardware.camera2.cts.CaptureRequestTest#testAeModeAndLock
- android.hardware.camera2.cts.CaptureRequestTest#testAntiBandingModes
- android.hardware.camera2.cts.CaptureRequestTest#testAwbModeAndLock
- android.hardware.camera2.cts.CaptureRequestTest#testBlackLevelLock
- android.hardware.camera2.cts.CaptureRequestTest#testEdgeModeControlFastFps
- android.hardware.camera2.cts.CaptureRequestTest#testNoiseReductionModeControlFastFps
- android.hardware.camera2.cts.CaptureRequestTest#testToneMapControl
- android.hardware.camera2.cts.CaptureResultTest#testCameraCaptureResultAllKeys
- android.hardware.camera2.cts.ImageReaderTest#testDiscardFreeBuffers
- android.hardware.camera2.cts.ImageReaderTest#testFlexibleYuv
- android.hardware.camera2.cts.ImageReaderTest#testJpeg
- android.hardware.camera2.cts.ImageReaderTest#testLongProcessingRepeatingFlexibleYuv
- android.hardware.camera2.cts.ImageReaderTest#testRepeatingJpeg
- android.hardware.camera2.cts.StaticMetadataTest#testCapabilities
- android.hardware.camera2.cts.StaticMetadataTest#testHwSupportedLevel

The following tests are mostly fixed, but fail one and only one frame
(frame duration is too short):
- android.hardware.camera2.cts.CaptureRequestTest#testEdgeModeControl
- android.hardware.camera2.cts.CaptureRequestTest#testNoiseReductionModeControl
- android.hardware.camera2.cts.SurfaceViewPreviewTest#testPreviewFpsRange

Patch 1 fixes a typo.

Patches 2 to 7 set up FULL hardware level, and hardcode values to pass
the CTS tests. Patches 8 to 12 then lay down infrastructure for the
pipeline handlers to set the metadata values, and make the ipu3 pipeline
handler do so to pass the aforementioned CTS tests.

Paul Elder (12):
  android: camera_device: Fix typo in result metadata allocation error
  android: Switch to FULL
  android: CameraDevice: Report proper min and max frame durations
  android: jpeg: get ISO from SENSOR_SENSITIVITY
  android: camera_device: Set static metadata for FULL requirements
  android: camera_device: Set templates for FULL requirements
  android: camera_device: Set result metadata for FULL requirements
  controls: Add controls necessary for FULL compliance
  pipeline: ipu3: Add controls for FULL compliance
  android: camera_device: Translate android controls to libcamera
    controls
  pipeline: ipu3: Set request metadata for FULL compliance
  android camera_device: Set result metadata from libcamera metadata

 src/android/camera_device.cpp            | 421 +++++++++++++++++++++--
 src/android/camera_device.h              |   2 +
 src/android/jpeg/post_processor_jpeg.cpp |   5 +-
 src/libcamera/control_ids.yaml           |  78 ++++-
 src/libcamera/pipeline/ipu3/ipu3.cpp     |  86 ++++-
 5 files changed, 551 insertions(+), 41 deletions(-)

Comments

Paul Elder April 22, 2021, 9:51 a.m. UTC | #1
On Thu, Apr 22, 2021 at 06:40:50PM +0900, Paul Elder wrote:
> This patchset switches to hardware level FULL, fixes many failures, and
> sets up the infrastructure for pipeline handlers to get and set the
> metadata.  The tests that this patchset fixes are (in alphabetical order):
> - android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceCreateCaptureBuilder
> - android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceManualTemplate
> - android.hardware.camera2.cts.CameraDeviceTest#testCameraDevicePreviewTemplate
> - android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceRecordingTemplate
> - android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceStillTemplate
> - android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceVideoSnapShotTemplate
> - android.hardware.camera2.cts.CaptureRequestTest#testAeModeAndLock
> - android.hardware.camera2.cts.CaptureRequestTest#testAntiBandingModes
> - android.hardware.camera2.cts.CaptureRequestTest#testAwbModeAndLock
> - android.hardware.camera2.cts.CaptureRequestTest#testBlackLevelLock
> - android.hardware.camera2.cts.CaptureRequestTest#testEdgeModeControlFastFps
> - android.hardware.camera2.cts.CaptureRequestTest#testNoiseReductionModeControlFastFps
> - android.hardware.camera2.cts.CaptureRequestTest#testToneMapControl
> - android.hardware.camera2.cts.CaptureResultTest#testCameraCaptureResultAllKeys
> - android.hardware.camera2.cts.ImageReaderTest#testDiscardFreeBuffers
> - android.hardware.camera2.cts.ImageReaderTest#testFlexibleYuv
> - android.hardware.camera2.cts.ImageReaderTest#testJpeg
> - android.hardware.camera2.cts.ImageReaderTest#testLongProcessingRepeatingFlexibleYuv
> - android.hardware.camera2.cts.ImageReaderTest#testRepeatingJpeg
> - android.hardware.camera2.cts.StaticMetadataTest#testCapabilities
> - android.hardware.camera2.cts.StaticMetadataTest#testHwSupportedLevel
> 
> The following tests are mostly fixed, but fail one and only one frame
> (frame duration is too short):
> - android.hardware.camera2.cts.CaptureRequestTest#testEdgeModeControl
> - android.hardware.camera2.cts.CaptureRequestTest#testNoiseReductionModeControl
> - android.hardware.camera2.cts.SurfaceViewPreviewTest#testPreviewFpsRange
> 

I forgot to mention that this patch series depends on Jacopo's patch
series: "libcamera: Add sensor timestamp support ".


Paul

> Patch 1 fixes a typo.
> 
> Patches 2 to 7 set up FULL hardware level, and hardcode values to pass
> the CTS tests. Patches 8 to 12 then lay down infrastructure for the
> pipeline handlers to set the metadata values, and make the ipu3 pipeline
> handler do so to pass the aforementioned CTS tests.
> 
> Paul Elder (12):
>   android: camera_device: Fix typo in result metadata allocation error
>   android: Switch to FULL
>   android: CameraDevice: Report proper min and max frame durations
>   android: jpeg: get ISO from SENSOR_SENSITIVITY
>   android: camera_device: Set static metadata for FULL requirements
>   android: camera_device: Set templates for FULL requirements
>   android: camera_device: Set result metadata for FULL requirements
>   controls: Add controls necessary for FULL compliance
>   pipeline: ipu3: Add controls for FULL compliance
>   android: camera_device: Translate android controls to libcamera
>     controls
>   pipeline: ipu3: Set request metadata for FULL compliance
>   android camera_device: Set result metadata from libcamera metadata
> 
>  src/android/camera_device.cpp            | 421 +++++++++++++++++++++--
>  src/android/camera_device.h              |   2 +
>  src/android/jpeg/post_processor_jpeg.cpp |   5 +-
>  src/libcamera/control_ids.yaml           |  78 ++++-
>  src/libcamera/pipeline/ipu3/ipu3.cpp     |  86 ++++-
>  5 files changed, 551 insertions(+), 41 deletions(-)
> 
> -- 
> 2.27.0
>