Update ArSessionMetadata

This commit is contained in:
Georg Hagen
2024-12-06 16:08:51 +01:00
parent 79f87747db
commit 18fe7eb544
2 changed files with 56 additions and 16 deletions

View File

@@ -10,11 +10,16 @@
#include "AR/ArDepthFormat.hpp"
#include "Math/Range.hpp"
#include "Math/Math.hpp"
#include <filesystem>
namespace OpenVulkano::AR
{
struct ArSessionMetadata
{
static constexpr std::string_view RECORDING_METADATA_FILENAME = "ArRecording.yml";
static constexpr std::string_view RECORDING_METADATA_FILENAME_XML = "ArRecording.xml";
static constexpr std::string_view RECORDING_METADATA_FILENAME_INFO = "arType.info";
ArType type;
ArDepthFormat depthFormat;
Math::Range<uint8_t> confidenceRange;
@@ -22,6 +27,9 @@ namespace OpenVulkano::AR
float frameRate;
uint32_t version;
std::string device, os;
// Recording info
int64_t recFrameCount;
int32_t recDuration, recSkippedFrames;
bool playback = false;
@@ -30,22 +38,28 @@ namespace OpenVulkano::AR
ArSessionMetadata(ArType type, ArDepthFormat format, Math::Range<uint8_t> confRange, Math::Vector2ui resolution, float frameRate);
ArSessionMetadata(ArType type, ArDepthFormat format, Math::Range<uint8_t> confRange, Math::Vector2ui resolution,
float frameRate, const std::string& device, const std::string& os, uint32_t version = 2)
float frameRate, const std::string& device, const std::string& os, uint32_t version = 2,
int64_t frameCount = -1, int32_t duration = -1, int32_t skippedFrames = -1)
: type(type), depthFormat(format), confidenceRange(confRange), imageResolution(resolution)
, frameRate(frameRate), version(version), device(device), os(os)
{}
ArSessionMetadata(const std::string& dirPath);
ArSessionMetadata(const std::filesystem::path& dirPath);
[[deprecated]]
[[nodiscard]] std::string ToXML() const;
[[nodiscard]] std::string ToYaml() const;
[[nodiscard]] std::string FinishedRecordingInfoToYaml() const;
[[nodiscard]] float GetConfidenceNormalisationFactor() const
{
return 1.0f / static_cast<float>(confidenceRange.max);
}
static bool DirHasMetadata(const std::filesystem::path& dirPath);
static ArSessionMetadata FromXML(const std::string& filePath);
static ArSessionMetadata FromYaml(const std::string& filePath);