gramps
5066d81aab
feat(65): the clip mux — a third output on the same ffmpeg, drained off the frame path
...
Slice 2 of TASK 65. 602 green, 0 warnings. **Clips are still off**: no `ClipBuffer` is passed, so the
ffmpeg command line is byte-for-byte what it was before this commit, and a test asserts exactly that
(the original args are a strict prefix of the new ones).
- `FfmpegArgs` appends a fragmented-MP4 output to `pipe:1` only when `ClipBuffer` is set. One-second
fragments (`-frag_duration 1000000`) rather than the 4 s GOP, so a clip can start inside the window
instead of at the last keyframe. Stats already own stderr, so stdout was free.
- `Fmp4FragmentSplitter` turns that byte stream into whole fragments: `ftyp`+`moov` is the init
segment, each `moof`+`mdat` is a fragment. It parses box headers itself, survives a box being cut
anywhere across reads, and **resyncs instead of throwing** — a clip fault must never take the stream
down.
- `FfmpegEncoder` reads it on its own task, never blocking the frame path. Any exception logs and
disables clips for the session; the broadcast is untouched.
- `IEncoderProcess` gained `StandardOutputBytes` (the seam already had the text reader for probing).
Next slices: the replay layer + retention, then the Settings switch with disabled-but-remembered controls.
2026-11-10 12:25:19 -08:00
..
2026-11-05 07:54:06 -08:00
2026-11-01 09:55:04 -08:00
2026-11-04 15:01:47 -08:00
2026-11-10 12:25:19 -08:00
2026-11-05 11:41:59 -08:00
2026-11-10 11:55:42 -08:00
2026-11-05 08:20:33 -08:00
2026-11-02 18:17:18 -08:00
2026-10-30 09:30:56 -07:00
2026-11-05 14:59:00 -08:00
2026-08-06 14:35:34 -07:00
2026-11-02 18:17:18 -08:00
Screen backdrop (schema v5/v6) + five-scene catalog + webcam polish: live desktop/game capture as a permanent non-deletable bottom layer (Source.IsBackdrop), auto full-screen game detection (Win32FullScreenDetector) else primary display, GraphicsCapturePicker re-designation, refcounted shared ScreenCaptureManager, Live-only backdrop by policy (HasBackdrop + v5-v6 backfill + EnforceBackdropPolicy, checkbox gone), SceneCatalog (Starting/Live/BRB/Chat/Ending) with + button re-adding missing scenes, webcam mid-session transparent-container fix (GetPreviewBitmap propagation), Chat half-screen-area cap, 'Add Webcam' always opens the picker (SwapWebcamIdentityAsync, no silent resurrect), WindowsRuntimeMarshal frame-read + 5s-throttled errors, docs updated, tests (65 passing)
2026-08-07 14:15:50 -07:00
2026-11-02 18:17:18 -08:00
2026-08-20 18:02:41 -07:00
2026-09-04 12:16:20 -07:00
2026-11-05 09:38:18 -08:00
2026-11-05 08:15:32 -08:00
2026-11-10 11:59:02 -08:00
Screen backdrop (schema v5/v6) + five-scene catalog + webcam polish: live desktop/game capture as a permanent non-deletable bottom layer (Source.IsBackdrop), auto full-screen game detection (Win32FullScreenDetector) else primary display, GraphicsCapturePicker re-designation, refcounted shared ScreenCaptureManager, Live-only backdrop by policy (HasBackdrop + v5-v6 backfill + EnforceBackdropPolicy, checkbox gone), SceneCatalog (Starting/Live/BRB/Chat/Ending) with + button re-adding missing scenes, webcam mid-session transparent-container fix (GetPreviewBitmap propagation), Chat half-screen-area cap, 'Add Webcam' always opens the picker (SwapWebcamIdentityAsync, no silent resurrect), WindowsRuntimeMarshal frame-read + 5s-throttled errors, docs updated, tests (65 passing)
2026-08-07 14:15:50 -07:00
2026-11-10 11:55:42 -08:00
2026-08-31 18:57:29 -07:00
2026-08-31 19:45:48 -07:00
2026-08-31 19:45:48 -07:00
2026-09-14 18:40:20 -07:00
2026-08-26 06:48:14 -07:00
2026-08-26 06:48:14 -07:00
2026-08-06 14:35:34 -07:00
2026-08-12 07:21:15 -07:00
2026-08-31 18:57:29 -07:00
2026-08-20 18:02:41 -07:00
2026-11-05 07:54:06 -08:00
2026-08-07 17:44:16 -07:00
2026-11-04 17:05:06 -08:00
2026-11-05 14:56:20 -08:00
2026-08-23 12:25:04 -07:00
Screen backdrop (schema v5/v6) + five-scene catalog + webcam polish: live desktop/game capture as a permanent non-deletable bottom layer (Source.IsBackdrop), auto full-screen game detection (Win32FullScreenDetector) else primary display, GraphicsCapturePicker re-designation, refcounted shared ScreenCaptureManager, Live-only backdrop by policy (HasBackdrop + v5-v6 backfill + EnforceBackdropPolicy, checkbox gone), SceneCatalog (Starting/Live/BRB/Chat/Ending) with + button re-adding missing scenes, webcam mid-session transparent-container fix (GetPreviewBitmap propagation), Chat half-screen-area cap, 'Add Webcam' always opens the picker (SwapWebcamIdentityAsync, no silent resurrect), WindowsRuntimeMarshal frame-read + 5s-throttled errors, docs updated, tests (65 passing)
2026-08-07 14:15:50 -07:00
2026-09-22 07:00:47 -07:00
2026-11-06 12:21:24 -08:00
2026-08-31 09:10:17 -07:00
2026-11-10 11:51:21 -08:00
2026-11-10 11:51:21 -08:00
2026-11-10 11:51:21 -08:00
2026-11-06 12:21:24 -08:00
2026-09-22 08:07:54 -07:00
2026-08-25 17:25:25 -07:00
2026-08-06 14:35:34 -07:00
2026-10-05 11:10:22 -07:00
2026-11-05 08:15:32 -08:00
2026-11-05 09:15:30 -08:00
2026-08-07 17:44:16 -07:00
2026-09-14 18:40:20 -07:00
2026-10-30 09:58:52 -07:00
2026-08-21 08:18:52 -07:00
2026-11-05 09:57:07 -08:00
2026-09-27 15:37:46 -07:00
2026-10-16 18:23:20 -07:00
2026-11-09 13:05:44 -08:00
2026-11-09 13:05:44 -08:00
2026-09-22 07:00:47 -07:00
2026-08-22 18:10:59 -07:00
2026-11-09 10:06:36 -08:00
2026-08-16 17:48:37 -07:00
2026-11-05 12:09:38 -08:00
2026-11-05 12:09:38 -08:00
2026-11-05 15:38:32 -08:00
2026-09-24 08:27:00 -07:00
2026-11-04 17:05:06 -08:00
2026-10-27 09:12:59 -07:00
2026-11-05 10:40:25 -08:00
2026-11-05 08:05:18 -08:00
2026-09-27 09:43:26 -07:00
2026-09-14 16:14:00 -07:00
2026-09-27 08:56:12 -07:00
2026-08-20 18:02:41 -07:00
2026-09-22 07:00:47 -07:00
2026-08-07 17:44:16 -07:00
2026-11-05 16:41:09 -08:00
2026-10-30 14:42:40 -07:00
2026-11-05 14:53:06 -08:00
2026-11-05 12:09:38 -08:00
2026-11-05 16:41:09 -08:00