docs: Live Control Room — multiview, switcher, audio, overlays
The engineering guide still called the control room 'planned' while it ships: multiview grid (2x1-4x4/custom, 4 live HLS tiles, tap-to-focus, adaptive preview polling), broadcast switcher (PST/TAKE/CUT semantics, lock, override modes), per-slot + master audio, overlay editor (lower_third/chyron/logo/clock, layers, rendered revisions), signed previews and the transactional director behind it. User manual gets the operator walkthrough (§7.1); engineering guide documents the media- control architecture and corrects the Level-2 status section; admin guide gets permissions, PUBLIC_ORIGIN, capacity and tally notes.
This commit is contained in:
parent
b8671113f5
commit
ced5e5da63
3 changed files with 59 additions and 5 deletions
|
|
@ -205,6 +205,39 @@ The math is real: it uses the connector SDK's `capacitySnapshot` rate policy. In
|
|||
|
||||
---
|
||||
|
||||
## 7.1 Live Control Room — multiview switching on a large screen
|
||||
|
||||
**Where.** **Control Room** in the sidebar (`/control-room`). Built for a big browser window: on wide viewports you get the full switcher layout — multiview grid and switcher bar on one side, PST preview, audio monitor and overlay editor on the other. On a phone it collapses to a single focused tile.
|
||||
|
||||
**Prerequisites.** A **virtual channel** assigned to a media worker, with ingest sources and production scenes configured, and the preview bus selected. Without that the page says exactly that and shows no panels. Every panel needs `media.view`/`director.view`; switching needs `director.take`; locking needs `director.lock_program`; overriding auto-director needs `director.override_auto`; changing overlays needs `director.change_layout`.
|
||||
|
||||
**The multiview grid.** Pick a layout — **2x1, 2x2, 3x3, 4x4, or custom** (1–4 columns). Tile 1 is always **PGM** (the encoder's actual output). Every other tile is an ingest source. Behavior per tile:
|
||||
|
||||
- **Tap to focus.** A focused tile is promoted into the limited live slots (up to 4 on desktop, 1 on mobile).
|
||||
- **Upgrade live / Remove live** (3x3/4x4/custom tiers): promote a tile from thumbnail refresh to a live HLS video.
|
||||
- **Tally borders.** Red border = on program, green = on preview. Tally comes from the **worker's realized version** — until the worker confirms it applied your desired state, the header says *"Tally unknown · awaiting matching observed version"* and borders stay neutral.
|
||||
- **Bandwidth care.** Selected tiles poll previews every 1 s, the rest every 2 s; polling pauses when the tab is hidden or a tile scrolls off-screen. Live video uses native HLS; without it you get continuously refreshed thumbnails.
|
||||
- The desired/observed version strip at the top (`Desired v12 · Observed v11`) shows whether the worker has caught up.
|
||||
|
||||
**Switching.** The switcher bar works in broadcast semantics:
|
||||
|
||||
1. **PST scene** — pick the scene to prepare (layouts: `single`, `PiP`, `2x1`, `2x2`, `3x3`, `4x4`, custom).
|
||||
2. **TAKE** — PST→PGM at the *next ready frame boundary* (clean cut).
|
||||
3. **CUT** — request an *immediate* switch.
|
||||
4. Both wait for worker confirmation; nothing claims success from the click alone.
|
||||
5. **Lock program** — freezes switching (the bar shows `LOCKED`).
|
||||
6. **Operator override** — pull the channel out of automation: `Until released`, `Five minutes` (auto-expires), `Until source offline`, `Until next event`, or back to `auto`. The status word reads `AUTO`, `MANUAL`, or `LOCKED`.
|
||||
|
||||
Every switch is an idempotent, audited command (`Idempotency-Key` safe to retry); the API refuses when the preview bus is empty or the worker is not assigned.
|
||||
|
||||
**Audio.** Scenes carry per-slot audio: `off`, `on`, or `primary` (at most one primary slot per scene) with a per-slot gain in dB, plus a program **master gain**. The **Audio Monitor** panel meters the monitored taps; muted-and-polled like the video tiles.
|
||||
|
||||
**Overlays.** The **Overlay Editor** manages per-scene graphics: **lower third**, **chyron** (scrolling strip — speed and strip width are set per overlay), **logo**, and **server clock** (`HH:MM` / `HH:MM:SS`). Overlays stack in layers 0–7 at a set position; rendered overlays go through a render revision (the worker rasterizes them to PNG) and only *rendered* revisions can go live. Editing requires `director.change_layout`.
|
||||
|
||||
**Offline / fixture mode.** With the API unreachable the page still renders with fixture data, clearly marked — buttons record the request but *"Tally awaits a simulated observed frame."*
|
||||
|
||||
---
|
||||
|
||||
## 8. Team
|
||||
|
||||
**Status: live (members, invite, role change, remove) · sample data (asset library, always).**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue