mcap/modules
Musa Mahmood 72f2754226 [0.1.8] Video capture phase 5: sound, from the computer and the microphone, in sync
- modules/Screen_Record/audio_source.jai: WASAPI, in loopback from the default output device
  (what the computer plays) and from the default input device (the microphone), asked for as
  48 kHz stereo float, which Windows converts any device to; a device that will not convert is
  taken as it is when it gives 48 kHz float. Packets carry the time they were heard. A device
  lost (unplugged, default changed) is opened again from the new default once a second.
- An audio thread mixes them onto the video's own timeline: the same time 0, less the same
  pauses (record_pause now keeps one account of time paused for both threads). A packet within
  30 ms of where its source left off follows on exactly; a source that sends nothing is silence,
  passed 200 ms late. Each 1024 samples every source has covered become an AAC frame.
- encoder.jai: an AAC stream (FFmpeg's aac, 160 kb/s) beside the video, written from the audio
  thread; both threads' packets meet in the file under a lock. The remux keeps it.
- [video] system_audio (true) and microphone (false). capture.json: Audio, AudioSources. A toast
  when a source asked for could not be opened.
- record-probe: -audio system|mic|both, the sound read back (length, level), and -sync-test,
  which flashes a white square and beeps together every 2 s, then finds both in the file.
- Measured: 20 s, beeps 0-21 ms from their flashes, no drift; both sources mixed, 5-18 ms;
  a 6 s pause cuts the same 6 s from sound and video; 3 min, 85 of 90 beeps within 3-24 ms and
  -14 ms from first to last, with 5 outliers (53-147 ms) where two beeps went missing. Tests:
  an MP4 with sound keeps its AAC stream through the remux into the library (30 checks).
2026-10-10 08:08:47 +01:00
..
Basic [0.0.0] Capture viewer: a grid of every .mcap's preview, and one capture at full size in a window of its own 2026-10-07 11:41:38 +01:00
Capture_File [0.1.8] Video capture phase 5: sound, from the computer and the microphone, in sync 2026-10-10 08:08:47 +01:00
Capture_Text [0.0.0] .mcap version 2: OCR stored in each capture, search, a library scan, sorting by date; turned text 2026-10-07 21:51:18 +01:00
ffmpeg [0.0.9] Import: videos and animated GIFs, in .mcap version 4 2026-10-09 23:10:55 +01:00
File_Watcher [0.0.0] Capture viewer: a grid of every .mcap's preview, and one capture at full size in a window of its own 2026-10-07 11:41:38 +01:00
Image_Decode [0.0.9] Import: videos and animated GIFs, in .mcap version 4 2026-10-09 23:10:55 +01:00
imgui-dx11-win32 [0.0.0] Capture viewer: a grid of every .mcap's preview, and one capture at full size in a window of its own 2026-10-07 11:41:38 +01:00
imgui-sdl [0.0.0] Capture viewer: a grid of every .mcap's preview, and one capture at full size in a window of its own 2026-10-07 11:41:38 +01:00
imgui-source [0.0.0] Capture viewer: a grid of every .mcap's preview, and one capture at full size in a window of its own 2026-10-07 11:41:38 +01:00
jaison [0.0.8] Import: any folder of screenshots and photos into the library, a folder for each source 2026-10-09 08:15:12 +01:00
Labels [0.0.5] Labels: SigLIP 2 labels and image vectors in .mcap version 3 chunks; label: and like: search 2026-10-08 11:37:21 +01:00
OCR [0.0.10] Shutdown: say what it is waiting on, stop OCR mid-batch, no race with the frame loop 2026-10-09 23:37:35 +01:00
onnxruntime [0.0.11] Segmentation phases 1-2: Mask2Former exported to ONNX, and modules/Segment to run it 2026-10-10 03:39:28 +01:00
Screen_Record [0.1.8] Video capture phase 5: sound, from the computer and the microphone, in sync 2026-10-10 08:08:47 +01:00
sdl3 [0.0.0] Capture viewer: a grid of every .mcap's preview, and one capture at full size in a window of its own 2026-10-07 11:41:38 +01:00
Secure_Memory [0.0.0] Capture viewer: a grid of every .mcap's preview, and one capture at full size in a window of its own 2026-10-07 11:41:38 +01:00
Segment [0.0.13] Segmentation phase 4: per-folder opt-in, the segmentation scan, -segment 2026-10-10 04:13:03 +01:00
Serialization [0.0.8] Import: any folder of screenshots and photos into the library, a folder for each source 2026-10-09 08:15:12 +01:00
Shared_Memory_Channel [0.0.0] Capture viewer: a grid of every .mcap's preview, and one capture at full size in a window of its own 2026-10-07 11:41:38 +01:00
Snagx [0.0.8] Import: any folder of screenshots and photos into the library, a folder for each source 2026-10-09 08:15:12 +01:00
Thread [0.0.0] Capture viewer: a grid of every .mcap's preview, and one capture at full size in a window of its own 2026-10-07 11:41:38 +01:00
XDG [0.0.0] Capture viewer: a grid of every .mcap's preview, and one capture at full size in a window of its own 2026-10-07 11:41:38 +01:00
Hash_Table.jai [0.0.0] Capture viewer: a grid of every .mcap's preview, and one capture at full size in a window of its own 2026-10-07 11:41:38 +01:00
Runtime_Support.jai [0.0.0] OCR: an onnxruntime module and an OCR module, PP-OCRv5 mobile and server, on the GPU through CUDA when it can 2026-10-07 20:45:05 +01:00