videoIO seperation
This commit is contained in:
@@ -25,7 +25,7 @@ Primary source areas:
|
||||
- `src/render/thread`: render thread lifecycle, cadence loop, metrics, and runtime shader commit mailbox
|
||||
- `src/render/runtime`: render-thread-owned runtime shader scene, renderer, text texture upload cache, and shared-context shader prepare worker
|
||||
- `src/frames`: system-memory frame exchange
|
||||
- `src/video`: DeckLink input/output edges and scheduling
|
||||
- `src/video`: generic video IO edge contracts, DeckLink input/output edges, and scheduling
|
||||
- `src/runtime/catalog`: supported shader catalog and package filtering
|
||||
- `src/runtime/layers`: app-side runtime layer model, restore, reload, and render snapshot construction
|
||||
- `src/runtime/shader`: background Slang build bridge and prepared shader artifact types
|
||||
@@ -47,7 +47,7 @@ Startup broadly proceeds as:
|
||||
6. Start the render thread.
|
||||
7. Queue background Slang builds for every pending active layer.
|
||||
8. Build a small completed-frame reserve.
|
||||
9. Start optional preview, optional DeckLink output, telemetry, and HTTP control.
|
||||
9. Start optional preview, optional video output, telemetry, and HTTP control.
|
||||
|
||||
The runtime-state restore is intentionally app/control side work. The render thread does not read JSON, inspect the shader library, or decide what to compile.
|
||||
|
||||
@@ -130,11 +130,11 @@ When a runtime shader build completes, the app publishes a render-layer artifact
|
||||
|
||||
## Video And Preview
|
||||
|
||||
DeckLink input and output are optional edges.
|
||||
Video input and output are optional edges. DeckLink is the current concrete backend.
|
||||
|
||||
Input captures BGRA8 directly where possible, or raw UYVY8 into `InputFrameMailbox` for render-thread GPU decode. The input edge does not call GL, render, preview, screenshot, shader, or output scheduling code.
|
||||
The input edge writes CPU frames into `InputFrameMailbox`. The current DeckLink backend captures BGRA8 directly where possible, or raw UYVY8 for render-thread GPU decode. The input edge does not call GL, render, preview, screenshot, shader, or output scheduling code.
|
||||
|
||||
Output consumes completed system-memory frames from `SystemFrameExchange` and schedules them to DeckLink. If DeckLink output is unavailable, the app continues running render cadence, control, preview, telemetry, and logging.
|
||||
The output edge consumes completed system-memory frames from `SystemFrameExchange`. The current DeckLink backend schedules those frames to DeckLink. If video output is unavailable, the app continues running render cadence, control, preview, telemetry, and logging.
|
||||
|
||||
`PreviewWindowThread` is optional and uses a non-consuming system-memory tap. It paints with Win32/GDI on its own thread and skips preview ticks instead of blocking the frame exchange.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user