Repository navigation
vicash v0.1.5
vicash v0.1.5
Three things land in this release: a real fix for an audio sync regression that crept in around v0.1.3, the first cut of an audio+video relay (beta), and a self-updater so you never have to re-download by hand again.
Self-updater
vicash now checks https://api.github.com/repos/caaatto/vicash/releases/latest on startup, compares the tag against its compiled version, and surfaces the result in a new Update section in F1.
When a new release is out, click Install and restart now. vicash:
- downloads the new
vicash.exe, - renames the running binary out of the way (
vicash.exe.old), - drops the new one in its place,
- relaunches itself with the same arguments.
The leftover .old is cleaned up on the next startup.
The DWM hotfix in v0.1.4 would have reached every v0.1.5+ user automatically through this path.
Audio + video relay over fMP4 (beta)
Optional, off by default. Requires ffmpeg.exe on PATH (same dependency as F10 recording).
- F1 -> Relay (beta) -> "Audio im Relay aktivieren" spawns a single ffmpeg subprocess that pulls raw NV12 video and f32 audio over two TCP localhost sockets and emits a streamable fragmented MP4 to vicash. vicash parses the boxes and broadcasts to every client.
Two new endpoints:
/playeris a tiny HTML5 page with Media Source Extensions that aggressively trims its buffer so latency stays near the fragment duration (~0.5-1s) instead of the multi-second default a raw<video>tag would buffer. Use this for browser viewing./stream.mp4is the raw fMP4 stream with chunked transfer encoding. Use this in OBS Browser Source where the player chrome would get in the way.
The whole relay section is labelled "Relay (beta)" until the audio path has more hardware miles on it. Capture-card audio sync drift varies by hardware; MJPEG-only relay remains the rock-stable path.
Audio sync fix
The relay-sink hook added in the v0.1.3 line briefly held two parking_lot mutexes across two consecutive ringbuf push loops in the cpal input callback. That was just slow enough to push WASAPI past its frame deadline and cause the local speaker output to drift, even when the relay was off.
v0.1.5:
- Releases the speaker-side ringbuf lock before touching the relay lock.
- Gates the relay fan-out behind an
AtomicBoolso the callback does one atomic load and skips when the relay is disabled. Zero mutex contact in the cold path.
If you raised your audio sync delay since v0.1.3, you can probably drop it back to where it was before.
Download
Grab vicash.exe below, drop it anywhere, double-click. No installer. Existing v0.1.4 users running F1 will see the update offered automatically.