generic telemetry

This commit is contained in:
2026-05-22 15:53:56 +10:00
parent 6e8f18e24c
commit 2058f94193
4 changed files with 45 additions and 39 deletions

View File

@@ -18,6 +18,20 @@
class OpenGLComposite;
struct DeckLinkSessionTelemetry
{
bool actualBufferedFramesAvailable = false;
uint64_t actualBufferedFrames = 0;
double scheduleCallMilliseconds = 0.0;
uint64_t scheduleFailureCount = 0;
bool scheduleLeadAvailable = false;
int64_t playbackStreamTime = 0;
uint64_t playbackFrameIndex = 0;
uint64_t nextScheduleFrameIndex = 0;
int64_t scheduleLeadFrames = 0;
uint64_t scheduleRealignmentCount = 0;
};
class DeckLinkSession
{
public:
@@ -63,6 +77,7 @@ public:
void SetStatusMessage(const std::string& message) { mState.statusMessage = message; }
const VideoIOState& State() const { return mState; }
VideoIOState& MutableState() { return mState; }
const DeckLinkSessionTelemetry& Telemetry() const { return mTelemetry; }
double FrameBudgetMilliseconds() const;
VideoPlayoutRecoveryDecision AccountForCompletionResult(VideoIOCompletionResult completionResult, uint64_t readyQueueDepth);
bool BeginOutputFrame(VideoIOOutputFrame& frame);
@@ -89,6 +104,7 @@ private:
std::mutex mScheduledSystemFrameMutex;
std::unordered_map<IDeckLinkVideoFrame*, void*> mScheduledSystemFrameBuffers;
VideoIOState mState;
DeckLinkSessionTelemetry mTelemetry;
VideoPlayoutPolicy mPlayoutPolicy;
VideoPlayoutScheduler mScheduler;
bool mScheduleRealignmentPending = false;