Branding flash monetization: full-frame 'made with ytLlive!' every 300s replaces the always-on watermark

This commit is contained in:
2026-08-06 09:04:20 -07:00
parent 3a2c87f518
commit 4ef11ef5ac
4 changed files with 125 additions and 11 deletions
+7 -2
View File
@@ -139,7 +139,12 @@ Preview shows the transition too (WYSIWYG). No wipes/slides/LUTs beyond the four
4. **Chat box** — rendered from the live chat poll (right panel is the same feed, raw)
5. **Scene compositing** — per-scene source layering (z-order = sources list order, top-to-bottom
back-to-front), preview rendered via D3DImage or MediaElement
6. **Drag/drop placement & reorder** — intuitive, visual (per design principle):
6. **Branding flash** — the topmost full-frame "made with ytLlive!" layer at ~25% opacity, ~1s on /
300s off (see Monetization in `ai.md`), gated on `BrandFlashEnabled` + live/recording. Lives in the
preview compositor now (`BrandFlashLayer` in `MainWindow.xaml` CanvasGrid, driven by
`BrandFlashActive`/`BrandFlashTimer` in `MainViewModel`); the encoder output renders the same layer,
and v0.2 local recordings carry it too
7. **Drag/drop placement & reorder** — intuitive, visual (per design principle):
- **Preview:** click-drag a source in the center panel to reposition it; resize via handles
- **Scenes list:** drag rows to reorder scenes
- **Sources list:** drag rows to reorder sources (this *is* the z-order) — implemented
@@ -231,6 +236,6 @@ Preview shows the transition too (WYSIWYG). No wipes/slides/LUTs beyond the four
## Backlog (future versions)
- v0.2 — Recording to local file
- v0.2 — Recording to local file (recordings carry the branding flash — see TASK 3 / `ai.md` Monetization)
- v0.3 — Stream scheduling
- v0.4 — Multi-destination restreaming