Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 51d1f5cf authored by Vadim Caen's avatar Vadim Caen
Browse files

Add required use cases keys

All camera must support and declare the following use cases:
 ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT,
 ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW,
 ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE,
 ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_RECORD,
 ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW_VIDEO_STILL,
 ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL

This is enforce in VTS hardware/interfaces/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp

Test: atest android.virtualdevice.cts.camera.VirtualCameraTest#virtualCamera_supports_mandatory_capture_use_cases
Fixes: 333527797
Change-Id: I15f13cb45f9e3d8c092676e0948f13dc9f88770d
parent 9f179836
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -244,6 +244,13 @@ std::optional<CameraMetadata> initCameraCharacteristics(
              {ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF})
          .setAvailableNoiseReductionModes({ANDROID_NOISE_REDUCTION_MODE_OFF})
          .setAvailableFaceDetectModes({ANDROID_STATISTICS_FACE_DETECT_MODE_OFF})
          .setAvailableStreamUseCases(
              {ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT,
               ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW,
               ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE,
               ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_RECORD,
               ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW_VIDEO_STILL,
               ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL})
          .setAvailableTestPatternModes({ANDROID_SENSOR_TEST_PATTERN_MODE_OFF})
          .setAvailableMaxDigitalZoom(1.0)
          .setControlAvailableModes({ANDROID_CONTROL_MODE_AUTO})
+9 −0
Original line number Diff line number Diff line
@@ -152,6 +152,15 @@ MetadataBuilder& MetadataBuilder::setAvailableTestPatternModes(
  return *this;
}

MetadataBuilder& MetadataBuilder::setAvailableStreamUseCases(
    const std::vector<
        camera_metadata_enum_android_scaler_available_stream_use_cases>&
        availableUseCases) {
  mEntryMap[ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES] =
      convertTo<int64_t>(availableUseCases);
  return *this;
}

MetadataBuilder& MetadataBuilder::setFaceDetectMode(
    const camera_metadata_enum_android_statistics_face_detect_mode_t
        faceDetectMode) {
+5 −0
Original line number Diff line number Diff line
@@ -129,6 +129,11 @@ class MetadataBuilder {
      const std::vector<camera_metadata_enum_android_sensor_test_pattern_mode>&
          testPatternModes);

  // See ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES in CameraCharacteristics.java
  MetadataBuilder& setAvailableStreamUseCases(
      const std::vector<
          camera_metadata_enum_android_scaler_available_stream_use_cases>& availableUseCases);

  // See ANDROID_STATISTICS_FACE_DETECT_MODE in CaptureRequest.java.
  MetadataBuilder& setFaceDetectMode(
      camera_metadata_enum_android_statistics_face_detect_mode_t faceDetectMode);