GSoC/GCI Archive
Google Summer of Code 2013

PulseAudio

Web Page: http://www.freedesktop.org/wiki/Software/PulseAudio/GSoC2013

Mailing List: mailto:pulseaudio-discuss@lists.freedesktop.org

PulseAudio is the de-facto standard audio server on the Linux desktop, as well on a number of embedded devices. It is responsible for basic functionality such as playback and capture of audio, mixing streams, and managing audio hardware.

In addition, it handles a number of more advanced tasks such as network streaming, per-stream volumes, dynamic routing, passthrough audio, and more.

Projects

  • Resampling Improvements PulseAudio aims to match the sample rates supported by the hardware to the sample rates requsted by the application. This process is called resampling and is quite CPU intensive. PulseAudio resorts mostly to external code to provide resampling: speex, ffmpeg, libsamplerate. Speex seems unmaintained, ffmpeg now provides a library interface (libav) and code duplication is unnecessary (we have a copy of the ffmpeg resampler in our source tree). Lightweight, high-quality and optimized resampling code is desirable.
  • Rewrite of module-tunnel I would like to rewrite module-tunnel using libpulse as api, because libpulse and module-tunnel provide the same functionality but no code and libpulse is much better maintained as mod-tunnel.