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

Developer Howtos

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

Wild ideas