I'm now using the entire audio processing module from WebRTC as opposed to individual DSP algorithms pulled from there before. Seems to work better this way.
- Added tests (using xcode)
- Added a define to enable callback-based audio I/O instead of using actual audio devices
- Fixed a crash on Windows when there's no access to the microphone
- Misc fixes
- Probable fix for a mysterious crash in WASAPI
- Hopefully fixes telegramdesktop/tdesktop/4219 by setting PA stream role and bypassing filters
- Outgoing packet queue now uses Buffer instead of BufferPool
- Refactored audio I/O to allow sharing a common context between input and output, for those OSes that require this
- Rewritten periodic operation handling to use a "run loop" thingy instead of an ugly loop formerly known as tick thread
- Fixed a bunch of compiler warnings (closes#13)
- Added automake so you no longer need to use the GYP file for standalone builds (closes#43)
- Enabled delay-agnostic AEC on Windows & Linux, it seems to make a difference after all (telegramdesktop/tdesktop#4881)
- Fixed PulseAudio crashes, at least I hope so (closes#42)
- Fixed parsing of floating-point server config values in some locales in Linux
Moved public API classes into namespace tgvoip (CVoIPController -> tgvoip::VoIPController, CVoIPServerConfig -> tgvoip::ServerConfig)
Endpoint is now a class instead of a struct; also, IP addresses are now wrapped into objects instead of relying on in_addr and in6_addr
Full Windows port (Win32 threading + Winsock + WaveOut/WaveIn)
Added support for ALSA audio I/O on Linux (closes#2)
Abstracted away low-level networking to make it more portable
Minor bugfixes