Skip to content

Capptivo v1.0.3

Latest

Choose a tag to compare

@github-actions github-actions released this 05 Aug 05:24

This release is focused on making Windows export actually work, cutting recorder/editor overhead, and fixing a handful of ways the app could freeze or eat your desktop clicks.

Export

  • Fixed MP4 export hanging on Windows. WebView2's hardware H.264 encoder would accept frames and never emit any, freezing progress at ~1–7% forever. Export now probes an encoder with real frames before trusting it, and every wait has a watchdog so a wedged encoder fails the route instead of hanging the app.
  • Five encode routes cut down to two: verified Annex-B → ffmpeg stream copy, and RGBA → ffmpeg hardware encode (no WebCodecs required). MP4 muxing moved out of the WebView into Rust/ffmpeg.
  • Much faster export. Frames are read straight off the GPU instead of being copied four times, and readback is pipelined with fenced PBOs so frame N composes while the GPU copies frame N-2.
  • Recovers from GPU context loss. If the WebGL context dies under load, export reclaims the GPU and retries instead of reporting a bogus "no WebGL" error.
  • Export is now a blocking progress dialog with Cancel, so the timeline and preview can't be touched mid-export.
  • WebM without a suitable encoder now errors clearly instead of silently writing an MP4.

Recording

  • 30 or 60 fps capture picker (screen capture at 60, face-cam at 30), persisted between sessions, with a warning in the export dialog when you request a higher rate than you captured.
  • Fixed the setup overlay swallowing every desktop click — an invisible full-screen window could eat all input until the app was killed. Click-through now fails closed on every path.
  • Fixed the macOS source picker freeze.
  • Fixed Windows area-guide freezes: the fullscreen dim overlay is replaced by a crop-sized dashed border, excluded from capture, and selection resets when the recorder hides. Esc cancels area select.
  • Mic warm-up on select, so hitting Record no longer waits on Bluetooth open latency.
  • Smoother recorder bar drag and a working grip on the live HUD for repositioning it.
  • Stop is no longer blocked by a wedged encoder — the ffmpeg finalize timeout is now reachable.

Performance

  • Capture frame buffers are pooled and reused instead of allocating ~33MB per 4K frame.
  • WGC frames are dropped before the GPU readback rather than after, removing a staging copy that stalled the desktop on high-refresh displays.
  • Background jobs (proxy, camera track, thumbnails, captions) run below normal priority with bounded thread pools on Windows, so opening the editor no longer competes with the shell.

Editor & UI

  • New updater experience: an in-app toast with real download progress and Later/Update, replacing the native dialog. Shown only in editor/library.
  • Feedback dialog with contacts, plus rolling capptivo.log and a warn-level errors.log in AppData, reachable from the tray via "Open Error Log…".
  • Playback now stops when you drag the playhead or click the track, so you land on the frame you asked for.
  • App version is shown in Config under About.
  • Fixed thumbnail/poster generation failing silently (MJPEG rejected the pixel format).