Observed behaviour
I've tested on both the official canary server and self hosted desktop client (I compiled it myself and just updated
Constants.ts on fluxer_desktop to point to my server) , and to make matters weirder, screenshare on the person's side that recorded my screen works absolutely fine, we have the same exact systems (Kubuntu 26.04)
The issues are random, sometimes audio skips/stutters, sometimes out of sync/sped up, and sometimes sync is fine and no stutters but it sounds like the speakers are busted.
The app also randomly decides whether HEVC is available or not, sometimes it only works if I disable-restart/enable-restart hardware acceleration, but just in case I tested screensharing on both situations and the result is the same (both official canary and my own host).
I spent hours trying to pinpoint the issue to no avail so I'm trully sorry I can't give better details.
Screen record on OBS by my friend:
643091456-fddd6233-ebe5-4c6a-91b6-0c205fe2c1eb.mp4Reproduction steps
- Download the canary appimage
- Log in to any server
- Start screenshare with audio (doesn't matter if entire system or only firefox)
Build information
Canary Desktop 2026.828.171905, Web 2026.829.14014, Linux 7.0.0-30-generic (x64), Electron 42.10.0, Chrome 148.0.7778.280, Node 24.18.1, Locale en-US
Platform
macOS, Windows, Linux
Evidence
I've dropped the evidence on the observed behavior.
5 comments
Comment by @wagnerfs
Comment by @wagnerfs
MAX_FRAME_SAMPLESpass. I set myclock.min-quantumto 1024 to prevent some audio crackles due to small buffers, this directly affects: https://github.com/fluxerapp/fluxer/blob/baa18aed5b2a28cb199d38abca151cc0b68e960b/fluxer_desktop/native/linux-audio-capture/src/pipewire/stream_ops.rs#L292 Which does a single pass of the truncated at 1920 payalod and silently drops the rest. I've updated both functions locally to decode f32 samples passing an offset as parameter to be able to decode everything until the end of the payload or until scratch is full, then loop through the entire payload until the payload is fully drained instead of a single pass. This completely fixed the audio quality issues I had.Comment by Hampus
Comment by @wagnerfs
Comment by Hampus