Phase 7 step 1
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user