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

Commit d9be04dd authored by Biswarup Pal's avatar Biswarup Pal
Browse files

Set additional metadata for virtual camera

- focal length
- sensor physical size
- sensor pixel array size

Bug: 322965201
Test: atest virtual_camera_tests
Change-Id: I11d84a4473bd944529e65e090547c3de31369dba
parent b187ec98
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -151,9 +151,11 @@ std::optional<CameraMetadata> initCameraCharacteristics(
          .setFlashAvailable(false)
          .setLensFacing(
              static_cast<camera_metadata_enum_android_lens_facing>(lensFacing))
          .setFocalLength(43.0)
          .setSensorOrientation(static_cast<int32_t>(sensorOrientation))
          .setSensorReadoutTimestamp(
              ANDROID_SENSOR_READOUT_TIMESTAMP_NOT_SUPPORTED)
          .setSensorPhysicalSize(36.0, 24.0)
          .setAvailableFaceDetectModes({ANDROID_STATISTICS_FACE_DETECT_MODE_OFF})
          .setAvailableMaxDigitalZoom(1.0)
          .setControlAvailableModes({ANDROID_CONTROL_MODE_AUTO})
@@ -188,6 +190,7 @@ std::optional<CameraMetadata> initCameraCharacteristics(
  }
  builder.setSensorActiveArraySize(0, 0, maxResolution->width,
                                   maxResolution->height);
  builder.setSensorPixelArraySize(maxResolution->width, maxResolution->height);

  std::vector<MetadataBuilder::StreamConfiguration> outputConfigurations;

+21 −0
Original line number Diff line number Diff line
@@ -82,6 +82,13 @@ MetadataBuilder& MetadataBuilder::setSensorReadoutTimestamp(
  return *this;
}

MetadataBuilder& MetadataBuilder::setFocalLength(float focalLength) {
  std::vector<float> focalLengths({focalLength});
  mEntryMap[ANDROID_LENS_FOCAL_LENGTH] = focalLengths;
  mEntryMap[ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS] = focalLengths;
  return *this;
}

MetadataBuilder& MetadataBuilder::setSensorOrientation(int32_t sensorOrientation) {
  mEntryMap[ANDROID_SENSOR_ORIENTATION] =
      std::vector<int32_t>({sensorOrientation});
@@ -310,6 +317,20 @@ MetadataBuilder& MetadataBuilder::setSensorActiveArraySize(int x0, int y0,
  return *this;
}

MetadataBuilder& MetadataBuilder::setSensorPixelArraySize(int width,
                                                          int height) {
  mEntryMap[ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE] =
      std::vector<int32_t>({width, height});
  return *this;
}

MetadataBuilder& MetadataBuilder::setSensorPhysicalSize(float width,
                                                        float height) {
  mEntryMap[ANDROID_SENSOR_INFO_PHYSICAL_SIZE] =
      std::vector<float>({width, height});
  return *this;
}

MetadataBuilder& MetadataBuilder::setControlAeCompensationRange(int32_t min,
                                                                int32_t max) {
  mEntryMap[ANDROID_CONTROL_AE_COMPENSATION_RANGE] =
+10 −0
Original line number Diff line number Diff line
@@ -78,6 +78,10 @@ class MetadataBuilder {
      camera_metadata_enum_android_sensor_readout_timestamp_t
          sensorReadoutTimestamp);

  // See ANDROID_LENS_FOCAL_LENGTH and ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS
  // in CameraMetadataTag.aidl.
  MetadataBuilder& setFocalLength(float focalLength);

  // See ANDROID_SENSOR_ORIENTATION in CameraMetadataTag.aidl.
  MetadataBuilder& setSensorOrientation(int32_t sensorOrientation);

@@ -90,6 +94,12 @@ class MetadataBuilder {
  // See ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE in CameraMetadataTag.aidl.
  MetadataBuilder& setSensorActiveArraySize(int x0, int y0, int x1, int y1);

  // See ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE in CameraMetadataTag.aidl.
  MetadataBuilder& setSensorPixelArraySize(int width, int height);

  // See ANDROID_SENSOR_INFO_PHYSICAL_SIZE in CameraMetadataTag.aidl.
  MetadataBuilder& setSensorPhysicalSize(float width, float height);

  // See ANDROID_STATISTICS_FACE_DETECT_MODE in CameraMetadataTag.aidl.
  MetadataBuilder& setAvailableFaceDetectModes(
      const std::vector<camera_metadata_enum_android_statistics_face_detect_mode_t>&