42 lines
1.7 KiB
Plaintext
42 lines
1.7 KiB
Plaintext
TODO:
|
|
- directsound: incomplete and somewhat broken
|
|
- osx: understand why AudioQueueGetCurrentTime can return negative mSampleTime
|
|
- test (and fix) sub-prefill size data playback
|
|
- report stream delay instead of position; leave position calculation to user
|
|
- capture support
|
|
- capture and output enumeration and configuration
|
|
- also expose default hardware config to allow decisions on speaker layout
|
|
- prefill occurs at different times in each backend:
|
|
- pulse prefills async off worker thread after init
|
|
- coreaudio prefills during init
|
|
- alsa prefills async after start
|
|
- expose configured prefill size; may differ from requested latency
|
|
- solved by exposing stream delay
|
|
- xruns may occur in user callback but also in audio hardware
|
|
may need to expose details of hardware xruns to user api
|
|
- document thread safety
|
|
- document which calls may block, and when effects take effect
|
|
- document what's permissible inside callbacks
|
|
- implement basic channel mapping for surround
|
|
- vorbis has documented mapping based on channel count (if mapping type ==
|
|
0) -- http://xiph.org/vorbis/doc/Vorbis_I_spec.html#x1-800004.3.9
|
|
1 -> M
|
|
2 -> L, R
|
|
3 -> L, C, R
|
|
4 -> L, R, RL, RR
|
|
5 -> L, C, R, RL, RR
|
|
6 -> L, C, R, RL, RR, LFE
|
|
7 -> L, C, R, SL, SR, RC, LFE
|
|
8 -> L, C, R, SL, SR, RL, RR, LFE
|
|
>8 -> application defined
|
|
- wave files with channel count only
|
|
3 -> L, R, C
|
|
4 -> L, R, RL, RR
|
|
5 -> L, R, C, RL, RR
|
|
6 -> L, R, C, LFE, RL, RR
|
|
7 -> L, R, C, LFE, RC, SL, SR
|
|
8 -> L, R, C, LFE, RL, RR, SL, SR
|
|
- wave files with WAVE_FORMAT_EXTENSIBLE have explicitly mappings, can
|
|
extract these
|
|
- implement configurable channel mapping
|