Perfecting Audio on Linux with ALSA and WebRTC

At Jitsi Linux has been one of our target platforms and that’s something very important to us. Lately however we have been somewhat unhappy with the audio quality there. We would therefore like to improve things a bit there.

Currently Jitsi has support for a number of backends for audio, two of which are targeting linux: PortAudio and Pulse Audio.

PortAudio was our first non-Java implementation. Originally we were happy with it but it then turned out to be suboptimal in certain situations and we would get 100% CPU surges for no reason. That’s why we added support for Pulse Audio. Pulse performs rather well on systems that have it. Many don’t however and installing it could be an issue in a number of situations. We have therefore decided that adding a third backend might be necessary for such situations: one that directly uses the Advanced Linux Sound Architecture: ALSA. We would like that audio system to be available in cases where pulse isn’t.

Secondly, we would like you to implement Acoustic Echo Cancellation (AEC) features for Jitsi on Linux for both PulseAudio and the new ALSA backend. We think the best way to achieve this would be through the WebRTC native library, which we are already using for the same purpose on Mac OS X.

Contact:

gsoc@jitsi.org
Subscribe | View archive



References:

PortAudio, Portable Cross-platform Audio I/O
http://www.portaudio.com

Pulse Audio, a sound system for POSIX OSes
http://www.pulseaudio.org

WebRTC Native APIs
http://www.webrtc.org/

Other Jitsi GSoC Projects
http://gsoc.jitsi.org

Jitsi Developer Documentation
http://www.jitsi.org/index.php/Documentation/DeveloperDocumentation

The official Jitsi website
http://www.jitsi.org