gramps
e37215d9c4
feat(record): fragment the MP4 so a crash cannot destroy the whole take
...
TASK 32·4. A plain MP4 keeps its index (moov) at the end, so a power cut or a killed
process left the entire recording unreadable even though every video byte was on disk.
The record block now carries
`-movflags +frag_keyframe+empty_moov+default_base_moof`: index first, a playable
fragment flushed at every keyframe, so an interrupted take plays to the last fragment.
Record block only — the FLV stream output has no index and never gets the flags.
Rename-on-stop is untouched.
Test: `Args_RecordBlock_IsFragmentedMp4_SoACrashKeepsTheFile` asserts the flags on the
record block and their absence from the streaming block.
Not yet proven on a real interrupted take (kill ffmpeg mid-recording, play the result);
the args test is by construction.
Docs: task-32 slice 4 ticked with that caveat, TASKS row, output.md record note, HANDOFF.
verify.sh: 550 passed (mouse-injection test excluded, desktop in use), 0 warnings.
2026-11-05 08:58:48 -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-05 08:58:48 -08:00
2026-11-04 12:14:46 -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-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 08:05:18 -08:00
2026-11-05 08:15:32 -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-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-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-08-31 09:10:17 -07:00
2026-08-31 09:10:17 -07:00
2026-11-05 08:15:32 -08:00
2026-11-05 08:15:32 -08:00
2026-11-05 08:15:32 -08:00
2026-11-05 08:20:33 -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 08:15:32 -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-08-31 18:57:29 -07:00
2026-09-27 15:37:46 -07:00
2026-10-16 18:23:20 -07:00
2026-09-14 18:40:20 -07:00
2026-11-02 18:17:18 -08:00
2026-09-22 07:00:47 -07:00
2026-08-22 18:10:59 -07:00
2026-08-16 17:48:37 -07: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 08:15:32 -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-10-30 14:42:40 -07:00
2026-11-05 08:39:46 -08:00
2026-11-02 18:17:18 -08:00
2026-09-23 16:45:56 -07:00