Phase 7 step 1
All checks were successful
CI / React UI Build (push) Successful in 10s
CI / Native Windows Build And Tests (push) Successful in 2m47s
CI / Windows Release Package (push) Successful in 2m53s

This commit is contained in:
Aiden
2026-05-11 20:39:01 +10:00
parent 0da6ad6802
commit 6b0638336a
7 changed files with 374 additions and 16 deletions

View File

@@ -9,8 +9,8 @@ Phase 5 clarified that live parameter layering stops at final render-state compo
## Status
- Phase 7 design package: proposed.
- Phase 7 implementation: not started.
- Current alignment: `VideoBackend`, `VideoIODevice`, `DeckLinkSession`, and `VideoPlayoutScheduler` exist. Phase 4 removed callback-thread GL ownership, but the DeckLink completion path still waits for render-thread output production.
- Phase 7 implementation: Step 1 complete.
- Current alignment: `VideoBackend`, `VideoIODevice`, `DeckLinkSession`, `VideoBackendLifecycle`, and `VideoPlayoutScheduler` exist. Phase 4 removed callback-thread GL ownership, but the DeckLink completion path still waits for render-thread output production.
Current backend footholds:
@@ -206,9 +206,16 @@ Introduce backend state enum and transition reporting without changing schedulin
Initial target:
- state changes are explicit
- invalid transitions are detectable
- tests cover allowed transitions
- [x] state changes are explicit
- [x] invalid transitions are detectable
- [x] tests cover allowed transitions
Current implementation:
- `VideoBackendLifecycle` names backend states and validates allowed transitions.
- `VideoBackend` applies lifecycle transitions around discovery, configuration, start, stop, degradation, failure, and resource release.
- Existing `BackendStateChangedEvent` publication now uses lifecycle state names for backend lifecycle observations.
- `VideoBackendLifecycleTests` cover allowed transitions, rejected invalid transitions, failure reasons, retry, and stable state names.
### Step 2. Create Playout Policy Object
@@ -313,7 +320,7 @@ Backend lifecycle and playout queue are related, but either can grow large. Impl
Phase 7 can be considered complete once the project can say:
- [ ] backend lifecycle states and transitions are explicit
- [x] backend lifecycle states and transitions are explicit
- [ ] playout policy owns preroll, pool size, headroom, and underrun behavior
- [ ] output callbacks no longer synchronously wait for render production
- [ ] render produces completed output frames into a bounded queue