qol changes to windows build script
Shutdown write half when w_tx closes
It's not done automatically.
Refresh stats at a higher rate
and don't refresh them when not visible
Show all audio setup errors
Even the one that is encountered when negotiating the stream config
s/Output/Playback/ and s/Input/Capture/
Recover from audio setup errors
Make the ping loop have a weak ref to outgoing channel
So that the user can close it by dropping its reference to the channel.
Use alert_default and anyhow::Error's debug format
Quit when the main window is closed
Audio/timing stats
TODO I would like to add another stat related to record/output:
- timing starts when we put the first sample of a packet in resize_buf
- ends on tls flush
so it would time the time it takes to send a frame. then we add the
audio device buffer latency, the ping/2 and codec delay to have the
mic->server latency.
but it requires w_tx to change. if we change this i think it could be
used to add a way to give back the opus buffers allocated on
src/audio/mod.rs:341 or maybe not
then we could have end2end audio latency if we query the ping of others,
but it'd require to guess the size of their playback buffer and their
jitter buffer.
important change of the day: limit amount of threads spawned by tokio
otherwise it will spawn 1 thread per server in the list (because dns
lookups are run on the blocking thread pool)
we might want to use hickory-dns [0] at some point
[0] https://github.com/hickory-dns/hickory-dns
(try to) honor server's max bitrate setting
use i16::saturating_add when mixing to avoid overflow
ability to add multiple servers
Don't return an error when ctrl_tx is closed.
audio jitter buffer is not that trivial to make work
Optimize possible contention on stats and reduce cache line invalidations (this one is very important please don't revert)
audio stream config negotiation and other things
Remove unused forget_stream feature