input testing
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include "InputFrameMailbox.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <chrono>
|
||||
#include <cstring>
|
||||
|
||||
namespace
|
||||
@@ -102,6 +103,8 @@ bool InputFrameMailbox::SubmitFrame(const void* bytes, unsigned rowBytes, uint64
|
||||
mReadyIndices.push_back(slotIndex);
|
||||
++mCounters.submittedFrames;
|
||||
mCounters.latestFrameIndex = frameIndex;
|
||||
mCounters.hasSubmittedFrame = true;
|
||||
mLatestSubmitTime = std::chrono::steady_clock::now();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -170,6 +173,11 @@ InputFrameMailboxMetrics InputFrameMailbox::Metrics() const
|
||||
std::lock_guard<std::mutex> lock(mMutex);
|
||||
InputFrameMailboxMetrics metrics = mCounters;
|
||||
metrics.capacity = mSlots.size();
|
||||
if (metrics.hasSubmittedFrame)
|
||||
{
|
||||
metrics.latestFrameAgeMilliseconds = std::chrono::duration_cast<std::chrono::duration<double, std::milli>>(
|
||||
std::chrono::steady_clock::now() - mLatestSubmitTime).count();
|
||||
}
|
||||
|
||||
for (const Slot& slot : mSlots)
|
||||
{
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
#include <chrono>
|
||||
#include <deque>
|
||||
#include <mutex>
|
||||
#include <vector>
|
||||
@@ -48,6 +49,8 @@ struct InputFrameMailboxMetrics
|
||||
uint64_t submitMisses = 0;
|
||||
uint64_t consumeMisses = 0;
|
||||
uint64_t latestFrameIndex = 0;
|
||||
bool hasSubmittedFrame = false;
|
||||
double latestFrameAgeMilliseconds = 0.0;
|
||||
};
|
||||
|
||||
class InputFrameMailbox
|
||||
@@ -84,4 +87,5 @@ private:
|
||||
std::vector<Slot> mSlots;
|
||||
std::deque<std::size_t> mReadyIndices;
|
||||
InputFrameMailboxMetrics mCounters;
|
||||
std::chrono::steady_clock::time_point mLatestSubmitTime;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user