Step 3
This commit is contained in:
@@ -9,7 +9,7 @@ Phase 5 clarified that live parameter layering stops at final render-state compo
|
||||
## Status
|
||||
|
||||
- Phase 7 design package: proposed.
|
||||
- Phase 7 implementation: Step 2 complete.
|
||||
- Phase 7 implementation: Step 3 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:
|
||||
@@ -17,6 +17,7 @@ Current backend footholds:
|
||||
- `VideoBackend` wraps device discovery/configuration, start/stop, input callback handling, output completion handling, and telemetry publication.
|
||||
- `DeckLinkSession` owns DeckLink device handles, frame pool creation, preroll, keyer configuration, and scheduled playback.
|
||||
- `VideoPlayoutPolicy` names current frame pool, preroll, ready-frame, underrun, and catch-up policy defaults.
|
||||
- `RenderOutputQueue` names the future bounded ready-output-frame handoff and has pure queue tests.
|
||||
- `VideoPlayoutScheduler` owns basic schedule time generation and simple late/drop skip-ahead behavior.
|
||||
- `OpenGLVideoIOBridge` is the current adapter between `VideoBackend` and `RenderEngine`.
|
||||
- `HealthTelemetry` receives some signal, render, and pacing stats.
|
||||
@@ -241,9 +242,17 @@ Introduce a bounded queue for completed output frames.
|
||||
|
||||
Initial target:
|
||||
|
||||
- pure queue tests
|
||||
- explicit depth/underrun metrics
|
||||
- no DeckLink dependency in queue tests
|
||||
- [x] pure queue tests
|
||||
- [x] explicit depth/underrun metrics
|
||||
- [x] no DeckLink dependency in queue tests
|
||||
|
||||
Current implementation:
|
||||
|
||||
- `RenderOutputQueue` owns a bounded FIFO of `RenderOutputFrame` values.
|
||||
- The queue is configured from `VideoPlayoutPolicy::maxReadyFrames`.
|
||||
- Queue metrics report depth, capacity, pushed, popped, dropped, and underrun counts.
|
||||
- Overflow drops the oldest ready frame, preserving the newest completed output for scheduling.
|
||||
- `RenderOutputQueueTests` cover ordering, bounded overflow, underrun counting, and capacity shrink behavior without DeckLink hardware.
|
||||
|
||||
### Step 4. Move Callback Toward Dequeue/Schedule
|
||||
|
||||
|
||||
Reference in New Issue
Block a user