mcap/modules/Screen_Record
Musa Mahmood 93274a2b04 [0.1.5] Video capture phase 3: Ctrl+PrintScreen records a region into the library
- record_region, a new [global_hotkeys] action on Ctrl-PrintScreen (Windows only; none on
  macOS): starts a recording, or stops the one running.
- The overlay's video mode (screen_capture_win32.jai): red outline and magnifier; the drag held
  to the screen it began on; under 240 x 180 (record_size_allowed, in Screen_Record) the outline
  is dashed, the label gives the minimum, and letting go takes nothing; a click or Enter takes
  the whole screen; no pixels copied. With immediate, no overlay at all: the screen under the
  cursor, for PrintScreen while recording.
- src/app/screen_record.jai: records with modules/Screen_Record to %TEMP%/mcap at 30 fps; a
  recording that stops by itself keeps what it has, as does quitting (the shutdown step stops it).
  The MP4 goes into the library through the stills' jobs: a video .mcap in Screen Captures, the
  MP4 its original, a frame of it its rendered image, metadata.json as a still's, capture.json
  with Duration, FrameRate, VideoCodec, PosterTime, Encoder, Capture and DroppedFrames; the MP4 is
  deleted once it is in. The catalog reads a video's keys from capture.json too.
- The capture thread makes itself aware of each monitor's DPI: ImGui makes only the main thread
  aware, and Desktop Duplication refused the app's capture thread with DXGI_ERROR_UNSUPPORTED
  (the fallback recorded with Windows.Graphics.Capture, and the log said so).
- -record SECONDS records the screen under the cursor, puts it in the library and exits;
  -record-quit quits while recording instead. Both pass on a scratch library.
- Tests: a "screen recording" group (the size rule; an MP4 from the module's encoder written as a
  recording reads back, and the catalog takes it as a video). The segment overlay test no longer
  depends on the colours chosen in the app's own data folder.
- README, the format's README and the plan describe it.
2026-10-10 07:14:35 +01:00
..
capture_gpu.jai [0.1.5] Video capture phase 3: Ctrl+PrintScreen records a region into the library 2026-10-10 07:14:35 +01:00
cursor.jai [0.1.3] Video capture phase 1: modules/Screen_Record and record-probe, Desktop Duplication to NVENC 2026-10-10 06:48:43 +01:00
dxgi_source.jai [0.1.4] Video capture phase 2: Windows.Graphics.Capture, for when Desktop Duplication cannot run 2026-10-10 07:03:47 +01:00
encoder.jai [0.1.3] Video capture phase 1: modules/Screen_Record and record-probe, Desktop Duplication to NVENC 2026-10-10 06:48:43 +01:00
module.jai [0.1.5] Video capture phase 3: Ctrl+PrintScreen records a region into the library 2026-10-10 07:14:35 +01:00
wgc_source.jai [0.1.4] Video capture phase 2: Windows.Graphics.Capture, for when Desktop Duplication cannot run 2026-10-10 07:03:47 +01:00