State of Linux Audio in 2009 - Linux Plumbers Conference 2009State of Linux Audio in 2009 Linux...

Post on 29-Sep-2020

8 views 0 download

Transcript of State of Linux Audio in 2009 - Linux Plumbers Conference 2009State of Linux Audio in 2009 Linux...

State of Linux Audio in 2009

Linux Plumbers Conference 2009

Lennart Poetteringlennart@poettering.net

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/

lennart@poettering.net

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