diff --git a/openVulkanoCpp/AR/ArFrameMetadata.cpp b/openVulkanoCpp/AR/ArFrameMetadata.cpp index 0367305..36300f3 100644 --- a/openVulkanoCpp/AR/ArFrameMetadata.cpp +++ b/openVulkanoCpp/AR/ArFrameMetadata.cpp @@ -112,6 +112,7 @@ namespace OpenVulkano::AR camNode["ExposureOffset"] >> frameData.exposureOffset; if (camNode["FocalLength"].readable()) camNode["FocalLength"] >> frameData.focalLength; if (camNode["FNumber"].readable()) camNode["FNumber"] >> frameData.fNumber; + if (camNode["ISO"].readable()) camNode["ISO"] >> frameData.isoSpeed; uint64_t nanos; root["Timestamp"] >> nanos; frameData.timestamp = nanos; @@ -150,6 +151,7 @@ namespace OpenVulkano::AR ExposureOffset: {} FocalLength: {} FNumber: {} + ISO: {} Timestamp: {} TimestampDepth: {} TrackingState: @@ -170,7 +172,7 @@ Light: camMat[0][0], camMat[1][0], camMat[2][0], camMat[0][1], camMat[1][1], camMat[2][1], camMat[0][2], camMat[1][2], camMat[2][2], - exposureTime, exposureOffset, focalLength, fNumber, + exposureTime, exposureOffset, focalLength, fNumber, isoSpeed, timestamp.GetNanos(), timestampDepth.GetNanos(), trackingState.GetName(), lightIntensity, lightColorTemp ); diff --git a/openVulkanoCpp/AR/ArFrameMetadata.hpp b/openVulkanoCpp/AR/ArFrameMetadata.hpp index 5a1d58b..a6c8185 100644 --- a/openVulkanoCpp/AR/ArFrameMetadata.hpp +++ b/openVulkanoCpp/AR/ArFrameMetadata.hpp @@ -20,6 +20,7 @@ namespace OpenVulkano::AR Math::Timestamp timestamp, timestampDepth; ArTrackingState trackingState; float physicalPixelSize = 0, focalLength = 0, fNumber = 0; + int isoSpeed = 0; [[nodiscard]] std::string ToYaml() const; diff --git a/openVulkanoCpp/AR/Provider/ArKit/ArFrameArKit.mm b/openVulkanoCpp/AR/Provider/ArKit/ArFrameArKit.mm index 7f439f1..3c2daa6 100644 --- a/openVulkanoCpp/AR/Provider/ArKit/ArFrameArKit.mm +++ b/openVulkanoCpp/AR/Provider/ArKit/ArFrameArKit.mm @@ -93,6 +93,8 @@ namespace OpenVulkano::AR::ArKit { frameData.focalLength = [(NSNumber*)[arFrame.exifData valueForKey:(__bridge NSString*)kCGImagePropertyExifFocalLength] floatValue]; frameData.fNumber = [(NSNumber*)[arFrame.exifData valueForKey:(__bridge NSString*)kCGImagePropertyExifFNumber] floatValue]; + auto isos = (NSArray*)[arFrame.exifData valueForKey:(__bridge NSString*)kCGImagePropertyExifISOSpeedRatings]; + frameData.isoSpeed = [(NSNumber*)[isos firstObject] intValue]; } return frameData;