ALSA: Audio Compression Offloading, Power Savings
Posted by Michael Larabel on August 29, 2012
Besides lots of graphics talks at the GStreamer 2012 Conference, the Advanced Linux Sound Architecture (ALSA) was talked about with a status report and mentions of some features soon to be landing in future Linux kernel releases.
The ALSA project status update at the GStreamer Conference in San Diego was shared by Takashi Iwai of SUSE.
One of the new ALSA features is support for audio compression offloading where the DSP handling of compressed audio formats can be offloaded from the CPU to a DSP, which can be more efficient and lower the CPU usage. The kernel core API for this audio compression offloading was pushed into the Linux 3.3 kernel while with the Linux 3.7 kernel there will be ASoC integration support as well as support for compression offloading with the Intel Medfield audio driver. The ALSA library code for this support is currently in a separate Git tree and not in mainline ALSA at this point.
Jack detection for ALSA has been another hot topic. There isn't any ALSA library API yet for audio jack detection and there's jack detection support being looked at via input device, via a control API, or possibly via extcon.
The Advanced Linux Sound Architecture is also seeing more PCM time adjustments coming, wallclock timestamp support is coming for precise hardware sample times, and there's an open development topic about embedding timestamps in the stream. The embedded timestamps were requested by Video 4 Linux.
Power savings for ALSA and its supported audio kernel drivers is also being expanded upon. The HD audio driver saw power-savings work in the Linux 3.5 kernel while an explicit power-saving trigger by a Linux kernel parameter will come in the Linux 3.7 kernel. Run-time power management integration is also coming to the Linux 3.7 kernel for dynamically turning off the HD audio controller and codec automatically.
Other recent ALSA work includes improving the BIOS auto-parser, robust and accurate position reporting, firmware patch loading, debug/QA work with an emulator, and a non-snoop mode. A channel mapping API was also proposed.