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

Commit e3512bdb authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Allow ANDROID_LENS_FOCAL_LENGTH in virtual camera capture result" into main

parents 0cf3ba11 8ad8bc58
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -152,7 +152,7 @@ std::optional<CameraMetadata> initCameraCharacteristics(
          .setFlashAvailable(false)
          .setLensFacing(
              static_cast<camera_metadata_enum_android_lens_facing>(lensFacing))
          .setFocalLength(43.0)
          .setAvailableFocalLengths({VirtualCameraDevice::kFocalLength})
          .setSensorOrientation(static_cast<int32_t>(sensorOrientation))
          .setSensorReadoutTimestamp(
              ANDROID_SENSOR_READOUT_TIMESTAMP_NOT_SUPPORTED)
@@ -198,7 +198,8 @@ std::optional<CameraMetadata> initCameraCharacteristics(
          .setAvailableResultKeys(
              {ANDROID_CONTROL_AE_MODE, ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER,
               ANDROID_CONTROL_AF_MODE, ANDROID_CONTROL_AWB_MODE,
               ANDROID_FLASH_STATE, ANDROID_SENSOR_TIMESTAMP})
               ANDROID_FLASH_STATE, ANDROID_SENSOR_TIMESTAMP,
               ANDROID_LENS_FOCAL_LENGTH})
          .setAvailableCapabilities(
              {ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE});

+3 −0
Original line number Diff line number Diff line
@@ -111,6 +111,9 @@ class VirtualCameraDevice
  // load.
  static const int32_t kMaxNumberOfStallStreams = 1;

  // Focal length for full frame sensor.
  constexpr static const float kFocalLength = 43.0;

 private:
  std::shared_ptr<VirtualCameraDevice> sharedFromThis();

+2 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
#include <thread>

#include "GLES/gl.h"
#include "VirtualCameraDevice.h"
#include "VirtualCameraSessionContext.h"
#include "aidl/android/hardware/camera/common/Status.h"
#include "aidl/android/hardware/camera/device/BufferStatus.h"
@@ -81,6 +82,7 @@ CameraMetadata createCaptureResultMetadata(
          .setControlAfMode(ANDROID_CONTROL_AF_MODE_AUTO)
          .setControlAwbMode(ANDROID_CONTROL_AWB_MODE_AUTO)
          .setFlashState(ANDROID_FLASH_STATE_UNAVAILABLE)
          .setFocalLength(VirtualCameraDevice::kFocalLength)
          .setSensorTimestamp(timestamp)
          .build();
  if (metadata == nullptr) {
+7 −3
Original line number Diff line number Diff line
@@ -99,13 +99,17 @@ MetadataBuilder& MetadataBuilder::setSensorReadoutTimestamp(
  return *this;
}

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

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

MetadataBuilder& MetadataBuilder::setSensorOrientation(int32_t sensorOrientation) {
  mEntryMap[ANDROID_SENSOR_ORIENTATION] = asVectorOf<int32_t>(sensorOrientation);
  return *this;
+4 −2
Original line number Diff line number Diff line
@@ -96,8 +96,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.
  // See ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS in CameraMetadataTag.aidl.
  MetadataBuilder& setAvailableFocalLengths(const std::vector<float>& focalLengths);

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

  // See ANDROID_SENSOR_ORIENTATION in CameraMetadataTag.aidl.