Sound Policy
Sound Policy — поведение по-умолчанию для приложений работающих со звуком.
Общие соображения
Данное полиси является отправной точкой для маинтейнеров собирающих звуковые приложения в ALT Linux. Оно растолковывает общие принципы сборки приложений для работы со звуком. Оно затрагивает приложения для проигрывания звука (mpg123, mpg321, rhythmbox, amarok, xmms и etc), приложения для проигрывания видео (mplayer, totem и etc), записи звука и видео в общем.
Теория
В текущий момент в среде GNU/Linux существует достаточное количество звуковых серверов, звуковых библиотек и интерфейсов для ввода/вывода звука.
Начнём с интерфейсов:
- ALSA
- OSSv3
- OSSv4
Звуковые серверы:
- PulseAudio
- ESD
- aRts
- NAS
- JACK
Библиотеки:
- libao
ALSA
ALSA это набор драйверов и библиотек для ввода/вывода звука. Является низкоуровневым интерфейсом по-умолчанию. Поддерживает кучу звуковых карт. Нет поддержки сети. Имеет регулярные проблемы с микшированием звука из различных приложений (dmix).
OSSv3 и OSSv4
OSSv3 это старый набор драйверов для звука и API для работы с ним. В текущее время практически не используется. Появился после того как 4Front Technologies выложили не нужные драйвера под GPL в ядро Linux. В тоже время продолжая продавать драйвера для более топовых моделей. Со временем в ядре появились и другие драйвера написанные сообществом с таким же API.
OSSv4 это более современный вариант OSSv3. Разработчик выложил драйвера под тремя лицензиями: BSD/GPL/CDDL и про проприетарной. Имеется прослойка для эмуляции ALSA API.
PulseAudio
Современный звуковой аудио сервер.
ESD
Старый звуковой сервер который использовался в GNOME. Не поддерживается. В GNOME он был заменём на PulseAudio.
aRts
Звуковой сервер который использовался в KDE3. В KDE4 выкинут и больше не поддерживается.
NAS
TODO
JACK
Звуковой сервер для профессионалов. Нет поддержки сети. Очень низкая задержка ввода и вывода звука.
Как это всё должно работать
В общем случае, для обычного пользователя всё должно работать незаметно и сразу после установки из дистрибутива. Пользователь не должен настраивать каждое приложение после установки.
Технически, сейчас это лучше всего реализовывается через PulseAudio.