State of Linux Audio in 2009 Linux Plumbers Conference 2009
Total Page:16
File Type:pdf, Size:1020Kb
State of Linux Audio in 2009 Linux Plumbers Conference 2009 Lennart Poettering [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 Software projects http://0pointer.de/lennart/ [email protected] 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 (at least on Fedora) RIP: OSS 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 Audio API Guide http://0pointer.de/blog/projects/guide-to-sound-apis Lennart Poettering State of Linux Audio in 2009 We also make use of high-resolution timers on the desktop by default. We now use realtime scheduling on the desktop by default. Lennart Poettering State of Linux Audio in 2009 We now use realtime scheduling on the desktop by default. We also 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 Mixer abstraction? Due to user-friendliness, i18n, meta data (icons, ...) We moved a couple of things into the audio server: Timer-based audio scheduling; mixing; flat volume/volume range and granularity extension; integration of volume sliders; mixer abstraction; monitoring 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 range and 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 consumer hardware, 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 Any questions? That's all, folks. Lennart Poettering State of Linux Audio in 2009 That's all, folks. Any questions? Lennart Poettering State of Linux Audio in 2009.