Clean up pass
All checks were successful
CI / React UI Build (push) Successful in 11s
CI / Native Windows Build And Tests (push) Successful in 2m55s
CI / Windows Release Package (push) Successful in 3m14s

This commit is contained in:
Aiden
2026-05-12 13:14:52 +10:00
parent 9938a6cc26
commit bc690e2a87
13 changed files with 417 additions and 220 deletions

View File

@@ -104,6 +104,13 @@ apps/RenderCadenceCompositor/
RenderCadenceApp.h
AppConfig.cpp
AppConfig.h
AppConfigProvider.cpp
AppConfigProvider.h
control/
HttpControlServer.cpp
HttpControlServer.h
RuntimeStateJson.h
platform/
ComInit.cpp
@@ -139,8 +146,16 @@ apps/RenderCadenceCompositor/
telemetry/
CadenceTelemetry.cpp
CadenceTelemetry.h
TelemetryPrinter.cpp
TelemetryPrinter.h
CadenceTelemetryJson.h
TelemetryHealthMonitor.h
logging/
Logger.cpp
Logger.h
json/
JsonWriter.cpp
JsonWriter.h
```
The new app can reuse selected existing source files from the current app at first:
@@ -355,15 +370,17 @@ Initial counters:
- free/rendering/completed/scheduled slot counts
- actual DeckLink buffered frames
### `TelemetryPrinter`
### `TelemetryHealthMonitor`
Prints one stable line per interval, matching the probe where possible.
Samples cadence telemetry once per interval and logs only health events.
Example:
Normal telemetry is available through the HTTP state endpoint. The console should not receive a healthy once-per-second cadence line.
```text
renderFps=59.9 scheduleFps=59.9 free=7 completed=1 scheduled=4 drops=0 pboMiss=0 completions=119 late=0 dropped=0 decklinkBuffered=4
```
Health events:
- warning when DeckLink late/dropped-frame counters increase
- warning when schedule failures increase
- error when app/DeckLink output buffering is starved
## Startup Sequence
@@ -371,24 +388,28 @@ Target first-version startup:
```text
main
-> parse AppConfig
-> load AppConfig through AppConfigProvider
-> initialize COM
-> DeckLinkOutput discover/select/configure output
-> DeckLinkOutput prepare output schedule
-> create SystemFrameExchange
-> start RenderThread
-> wait for completed frame warmup
-> start DeckLinkOutputThread
-> wait for scheduled depth warmup
-> DeckLinkOutput start scheduled playback
-> start TelemetryPrinter
-> optionally discover/select/configure DeckLink output
-> if DeckLink is available:
-> start DeckLinkOutputThread
-> wait for scheduled depth warmup
-> DeckLinkOutput start scheduled playback
-> if DeckLink is unavailable:
-> continue without video output
-> start TelemetryHealthMonitor
-> start HttpControlServer
-> wait for Enter
```
Shutdown:
```text
stop TelemetryPrinter
stop HttpControlServer
stop TelemetryHealthMonitor
stop DeckLinkOutputThread
DeckLinkOutput stop playback
stop RenderThread