Improve ar frame handling if no depth image is available

This commit is contained in:
Georg Hagen
2025-03-21 19:11:18 +01:00
parent 65933edab9
commit 21efaab67d
2 changed files with 9 additions and 1 deletions

View File

@@ -160,9 +160,10 @@ namespace OpenVulkano::AR
depthWriter->AddFile(fileName.c_str(), buffers); depthWriter->AddFile(fileName.c_str(), buffers);
} }
if (depthImg.confidence.resolution.x > 1 && depthImg.confidence.resolution.y > 1)
{ {
//BlockProfiler profile("Save AR Frame - Confi"); //BlockProfiler profile("Save AR Frame - Confi");
PnmHeader confidenceHeader(static_cast<uint32_t>(depthImg.confidence.resolution.x), static_cast<uint32_t>(depthImg.confidence.resolution.y), false, 2); PnmHeader confidenceHeader(depthImg.confidence.resolution.x, depthImg.confidence.resolution.y, false, 2);
std::string header = confidenceHeader.ToString(); std::string header = confidenceHeader.ToString();
buffers[0].first = header.c_str(); buffers[0].first = header.c_str();
buffers[0].second = header.size(); buffers[0].second = header.size();

View File

@@ -137,6 +137,13 @@ namespace OpenVulkano::AR::ArKit
m_depthImage.confidence.resolution = { 1, 1 }; m_depthImage.confidence.resolution = { 1, 1 };
} }
#endif #endif
else
{
m_depthImage.depth.data = nullptr;
m_depthImage.depth.resolution = { 0, 0 };
m_depthImage.confidence.data = nullptr;
m_depthImage.confidence.resolution = { 0, 0 };
}
m_depthImage.intrinsic = frameMetadata.intrinsic.GetForResolution(m_depthImage.depth.resolution); m_depthImage.intrinsic = frameMetadata.intrinsic.GetForResolution(m_depthImage.depth.resolution);
} }