State of Linux Audio in 2009
Linux Plumbers Conference 2009
Lennart [email protected]
September 2009
Lennart Poettering State of Linux Audio in 2009
Who Am I?
Software Engineer at Red Hat, Inc.
Developer of PulseAudio, Avahi and a few other Free Softwareprojects
http://0pointer.de/lennart/
IRC: mezcalero
Lennart Poettering State of Linux Audio in 2009
Perspective
Lennart Poettering State of Linux Audio in 2009
So, what happened since last LPC?
Lennart Poettering State of Linux Audio in 2009
RIP: EsounD is officially gone.
Lennart Poettering State of Linux Audio in 2009
RIP: OSS is officially gone.
(at least on Fedora)
Lennart Poettering State of Linux Audio in 2009
RIP: OSS is officially gone. (at least on Fedora)
Lennart Poettering State of Linux Audio in 2009
Audio API Guide
http://0pointer.de/blog/projects/guide-to-sound-apis
Lennart Poettering State of Linux Audio in 2009
We now use realtime scheduling on the desktop by default.
Wealso make use of high-resolution timers on the desktop by default.
Lennart Poettering State of Linux Audio in 2009
We now use realtime scheduling on the desktop by default. Wealso make use of high-resolution timers on the desktop by default.
Lennart Poettering State of Linux Audio in 2009
2s Buffers
Lennart Poettering State of Linux Audio in 2009
We moved a couple of things into the audio server:
Timer-based audio scheduling; mixing; flat volume/volume rangeand granularity extension; integration of volume sliders; mixer
abstraction; monitoring
Mixer abstraction? Due to user-friendliness, i18n, meta data(icons, ...)
Lennart Poettering State of Linux Audio in 2009
We moved a couple of things into the audio server:
Timer-based audio scheduling; mixing; flat volume/volume rangeand granularity extension; integration of volume sliders; mixer
abstraction; monitoring
Mixer abstraction? Due to user-friendliness, i18n, meta data(icons, ...)
Lennart Poettering State of Linux Audio in 2009
udev integration: meta data, by-path/by-id/...
Lennart Poettering State of Linux Audio in 2009
Bluetooth Audio, A2DP, HSP/HFP, Lip-Sync!
Lennart Poettering State of Linux Audio in 2009
ALSA mixer initialization database
Lennart Poettering State of Linux Audio in 2009
Other: Drivers for X-Fi, LSB work
Lennart Poettering State of Linux Audio in 2009
What are the challenges to tackle until next LPC?
Lennart Poettering State of Linux Audio in 2009
Drivers: Power saving distortions
Lennart Poettering State of Linux Audio in 2009
Drivers: Incorrect dB information
Lennart Poettering State of Linux Audio in 2009
Drivers: Wrong mixer element names
Lennart Poettering State of Linux Audio in 2009
Drivers: Missing/broken device strings
Lennart Poettering State of Linux Audio in 2009
Drivers: Non-standard negotiation logic
Lennart Poettering State of Linux Audio in 2009
Drivers: Missing from mixer initialization database
Lennart Poettering State of Linux Audio in 2009
Drivers: Broken timing
snd pcm delay(), snd pcm avail()
Lennart Poettering State of Linux Audio in 2009
ALSA API addition:
Multi-PCM clock synchronization
Lennart Poettering State of Linux Audio in 2009
ALSA API addition:
Routing/PCM-to-mixer-element mapping/auto discovery
Current system depends on assumptions made based on consumerhardware, which doesn’t scale to professional and embedded
hardware
Lennart Poettering State of Linux Audio in 2009
ALSA API addition:
Jack sensing, labelling, colouring, matching
Mixed HW/SW switching
Lennart Poettering State of Linux Audio in 2009
ALSA API addition:
Timing/data transfer granularity
Lennart Poettering State of Linux Audio in 2009
ALSA API addition:
Channel mapping, current system does not scale
Lennart Poettering State of Linux Audio in 2009
ALSA API addition:
Latency control, Hifi DSP
Lennart Poettering State of Linux Audio in 2009
ALSA:
HDMI negotiation
Lennart Poettering State of Linux Audio in 2009
ALSA:
Atomic status updates
Lennart Poettering State of Linux Audio in 2009
ALSA:
Atomic mixer updates?
PCM synchronized mixer updates?
Lennart Poettering State of Linux Audio in 2009
General:
Codec pass-through for A2DP, SPDIF, HDMI, embedded
Lennart Poettering State of Linux Audio in 2009
General:
Simpler, high-level PCM API
Lennart Poettering State of Linux Audio in 2009
General:
20s Buffering
Lennart Poettering State of Linux Audio in 2009
General:
Revoking, synchronous session switching
Lennart Poettering State of Linux Audio in 2009
That’s all, folks.
Any questions?
Lennart Poettering State of Linux Audio in 2009
That’s all, folks.
Any questions?
Lennart Poettering State of Linux Audio in 2009