Linked by Thom Holwerda on Thu 7th Jul 2011 17:36 UTC, submitted by vivainio
Linux Linux.FR has an interview with Lennart Poettering of PulseAudio and systemd fame (among others). Regarding PulseAudio: "I can understand why people were upset, but quite frankly we didn't really have another option than to push it into the distributions when we did. While PulseAudio certainly wasn't bug-free when the distributions picked it up the majority of issues were actually not in PulseAudio itself but simply in the audio drivers. PulseAudio's timer-based scheduling requires correct timing information supplied by the audio driver, and back then the drivers weren't really providing that. And that not because the drivers were really broken, but more because the hardware was, and the drivers just lacked the right set of work-arounds, quirks and fixes to compensate for it."
Permalink for comment 480053
To read all comments associated with this story, please click here.
RE: Timer ?
by _txf_ on Thu 7th Jul 2011 21:17 UTC in reply to "Timer ?"
Member since:

My guess is that every single former audio architecture dealt with CMOS/PIC/APIC timers and did just fine.

All the current (modern) audio stacks do it the same way Pulseaudio does (that is Vista+ and Coreaudio). I do recall many people with old soundcards complaining that sound was busted in Vista (I think it was some of the creative live and audigy cards).

I can't get why PulseAudio would want to mess with soundcard-specific timers while there's tried and true support for several standard x86 timers in the Linux kernel.

I am so far from an expert that this is probably a worthless point but ...

Soundcards have their own timers (mostly for sampling and audio output). Now, previously audio was done on a buffer basis along the lines of :

Cpu uploads sound output to soundcard buffer, buffer fills and sound is outputted per soundcard clock. It does this synchronously for a determined chunk size of the total sound output. So the bus is active for the entire period. Pulse, however waits for the longest period of time it possibly can and uploads it all in one go. Thus the system can sleep in much longer chunks hence saving power.

Edited 2011-07-07 21:28 UTC

Reply Parent Score: 3