Linux Audio Output APIs
About a month ago I took a long afternoon being like "Okay whatever let's see how deep the rabbit hole of linux audio playback goes" (previously, previously). That was a mistake I guess but let's at least avoid others from doing the same and so share what I did as it's fairly complete (patches with reference/citations welcome btw).
I consider here as an Audio Output API any reused code which takes a PCM audio stream as input and which is designed to end up to the sound card at some point. In a simple system there should just be some decoders and cross-platform librairies going to the system native API (ones which are nicely desgined being SunAudio and Plan9 audio).
You'll definitely need a large screen if you want to see the whole thing at once.
Other formats
- Graphviz DOT: source, has comments and URLs
- SVG: access to URLs and can hover lines to see origin and destination
- PNG
Changelog
- 2021-09-11
-
- New paths: sox → sndio ; OpenAL → sndio
- Removed "OpenSL ES", it's pretty much Android-only, which is considered out-of-scope
- Removed "network card" target, it should be redone per-protocol, in probably a dedicated graph
- Removed "filesystem" and "null" targets, this is more for diagnostics purposes and graphviz doesn't have layers
- Removed "?" target, in favor of going nowhere
- Added Legend
Cleaned out variant
This is a variant which only contains APIs/software which is available in current distributions rather than including all the paths that are technically still present in codebases.
Other formats
- Graphviz DOT: source, has comments and URLs
- SVG: access to URLs and can hover lines to see origin and destination
- PNG
See Also
A similar kind of thing was done by an Adobe employe in 2006~2007 in an article named Welcome To The Jungle
.
Fediverse post for comments, published on 2020-06-30T07:10:20Z, last updated on 2021-09-11T04:07:00Z