SpeexComm
SpeexComm is a Speex based multiplatform voice communication engine meant mainly for gaming. It is written in C99. The engine itself depends only on libc but e.g. ALSA and Speex libraries are recommended for audio input/output and voice encoding/decoding. The engine is accompanied with some reference UIs.
Features
- Free: libre and gratis
- Portable: the engine itself depends only in (uc)libc
- Lightweight: engine does little work (no mallocs, not many memcpys), audio encoding/preprocessing can be heavy
Documentation
- #speexcomm at freenode
- Prototype README
- Server-Client handshake
- Server-Client control-stream messages
- Coding guidelines
- ALSA related stuff
- Speex related stuff
- Buffering
- Using the engine
- Testing
- Building and releasing
Developer Howtos
- Howto create frontend
- Howto create audio device plugin?
- Howto create codec plugin?
- Howto create preprocessor plugin?
Open Issues
- Add new parameter for audio_read/write calls to obtain information about getting behind/going ahead?
- Should client_version be given to engine_alloc as a mandatory parameter?
- If server uses struct sample for downmixing the stream from clients, there will be nothing but cache misses with smaller CPU cache. It should be easy enough to work this over by changing the way we receive data.
- Fix USE_POOL in list.c (wnd)
- Solved issues
Bugs and TODOs
Requirements
- Requirements sorted per version
