Вообще, хочу странного, а именно кодировать 6-ти канальный PCM в AAC, а затем пихать это в iec958. И это даже работало, пока не пришлось сменить звуковуху с Xonar на встройку с ALC897.
Симптомы следующие, с дефолтными параметрами, звук в каждом канале идет полсекунды и пропадает:
$ speaker-test -c 6 -t wav -Da52
speaker-test 1.2.2
Устройство для проигрывания - a52
Параметры потока - 48000Гц, S16_LE, 6 каналов
WAV файл(ы)
Установлена частота в 48000Гц (запрошено 48000Гц)
Размер буфера от 3072 до 1047552
Размер периода от 1536 до 1536
Используется максимальный размер буфера 1047552
Периоды = 4
был установлен period_size = 1536
был установлен buffer_size = 1047552
0 - Front Left
4 - Front Center
1 - Front Right
3 - Rear Right
2 - Rear Left
5 - LFE
Время в периоде = 6,264622
Однако стоит задать размер буфера меньше максимального, и звук приходит в норму:
$ speaker-test -b 1024 -c 6 -t wav -Da52
speaker-test 1.2.2
Устройство для проигрывания - a52
Параметры потока - 48000Гц, S16_LE, 6 каналов
WAV файл(ы)
Установлена частота в 48000Гц (запрошено 48000Гц)
Размер буфера от 3072 до 1047552
Размер периода от 1536 до 1536
Запрошено время предзагрузки 1024 мс
Периоды = 4
был установлен period_size = 1536
был установлен buffer_size = 3072
0 - Front Left
4 - Front Center
1 - Front Right
3 - Rear Right
2 - Rear Left
5 - LFE
Время в периоде = 8,582677
Собственно, это упрощенный до предела пример, проблема проявляется в любом медиаплеере, смотреть видео стало невозможно - полсекунды звука и 10 секунд тишины. Как задать размер буфера для всех клиентов алсы? Ну или на худой конец, для vlc или mplayer?