Sound Policy

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
Stub.png
Черновик политики Sisyphus
Автор(ы) — icesik@
Обсуждение в devel@
Обсуждается с 26.01.2010


Sound Policy — поведение по-умолчанию для приложений работающих со звуком.

Общие соображения[править]

Данное полиси является отправной точкой для маинтейнеров собирающих звуковые приложения в ALT Linux. Оно растолковывает общие принципы сборки приложений для работы со звуком. Оно затрагивает приложения для проигрывания звука (mpg123, mpg321, rhythmbox, amarok, xmms и etc), приложения для проигрывания видео (mplayer, totem и etc), записи звука и видео в общем.

Теория[править]

В текущий момент в среде GNU/Linux существует достаточное количество звуковых серверов, звуковых библиотек и интерфейсов для ввода/вывода звука.

Начнём с интерфейсов:

  • ALSA
  • OSSv3
  • OSSv4

Звуковые серверы:

  • PulseAudio
  • EsounD
  • aRts
  • NAS
  • JACK

Библиотеки:

  • libao

ALSA[править]

ALSA это набор драйверов и библиотек для ввода/вывода звука. Является низкоуровневым интерфейсом по-умолчанию. Поддерживает кучу звуковых карт. Нет поддержки сети. Имеет регулярные проблемы с микшированием звука из различных приложений (dmix).

OSSv3 и OSSv4[править]

OSSv3 это старый набор драйверов для звука и API для работы с ним. В текущее время практически не используется. Появился после того как 4Front Technologies выложили не нужные драйвера под GPL в ядро Linux. В тоже время продолжая продавать драйвера для более топовых моделей. Со временем в ядре появились и другие драйвера написанные сообществом с таким же API.

OSSv4 это более современный вариант OSSv3. Разработчик выложил драйвера под тремя лицензиями: BSD/GPL/CDDL и про проприетарной. Имеется прослойка для эмуляции ALSA API.

PulseAudio[править]

Современный звуковой аудио сервер. О возможностях можно почитать в Википедии.

EsounD[править]

Старый звуковой сервер который использовался в GNOME. Не поддерживается. В GNOME он был заменём на PulseAudio.

aRts[править]

Звуковой сервер который использовался в KDE3. В KDE4 выкинут и больше не поддерживается.

NAS[править]

TODO

JACK[править]

Звуковой сервер для профессионалов. Нет поддержки сети. Очень низкая задержка ввода и вывода звука.

Как это всё должно работать[править]

В общем случае, для обычного пользователя всё должно работать незаметно и сразу после установки из дистрибутива. Пользователь не должен настраивать каждое приложение после установки.

Технически, сейчас это лучше всего реализовывается через PulseAudio.

Сборка приложений для работы со звуком[править]

Все приложения которые выводят звук должны по-умолчанию выводить его через PulseAudio. Если у приложения нет поддержки PulseAudio, то использовать ALSA. Ну и продробнее:

  • Собирать у приложения модуль вывода через ALSA
  • Собирать у приложения модуль вывода через PulseAudio (и ставить у основного приложения зависимость на этот субпакет). Тут ещё надо уточнить детали.
  • Собирать у приложения модуль вывода через JACK
  • Собирать или нет у приложения модуль для вывода звука через OSS на усмотрение маинтейнера
  • Собирать или нет у приложения модуль для вывода звука через EsounD на усмотрение маинтейнера
  • Собирать или нет у приложения модуль для вывода звука через aRts на усмотрение маинтейнера
  • Собирать или нет у приложения модуль для вывода звука через NAS на усмотрение маинтейнера
  • Собирать или нет у приложения модуль для вывода звука через libao на усмотрение маинтейнера

Если приложение не имеет поддержки модулей, а может только в себя вкомпиливать поддержку звуковых подсистем, то собирать с ALSA, PulseAudio и JACK. Остальные варианты вывода звука на усмотрение маинтейнера.

Если приложение не умеет PulseAudio, но умеет ALSA и libao то желательнее использовать ALSA. Они оба умеет играть через PulseAudio сами.

Кроме самой сборки нужно ещё поправить настройки приложения что бы оно по-умолчанию выводило звук через PulseAudio.

Поддержка со стороны DE/WM[править]

DE/WM должен при запуске запускать pulseaudio deamon если тот установлен в системе.

GNOME[править]

GNOME сейчас сам запускает pulseaudio при старте.

KDE[править]

Уточнить.

OpenBox[править]

Уточнить.

Ссылки[править]