Sound Policy: различия между версиями
Нет описания правки |
SirRaorn (обсуждение | вклад) м (переименовал «SoundPolicy» в «Sound Policy») |
||
(не показано 9 промежуточных версий 1 участника) | |||
Строка 16: | Строка 16: | ||
Начнём с интерфейсов: | Начнём с интерфейсов: | ||
* ALSA | * ALSA | ||
* | * OSSv3 | ||
* OSSv4 | |||
Звуковые серверы: | Звуковые серверы: | ||
* PulseAudio | * PulseAudio | ||
* | * EsounD | ||
* aRts | * aRts | ||
* NAS | * NAS | ||
* | * JACK | ||
Библиотеки: | Библиотеки: | ||
Строка 30: | Строка 31: | ||
==== ALSA ==== | ==== ALSA ==== | ||
ALSA это набор драйверов и библиотек для ввода/вывода звука. Является низкоуровневым интерфейсом по-умолчанию. Поддерживает кучу звуковых карт. Нет поддержки сети. Имеет регулярные проблемы с микшированием звука | ALSA это набор драйверов и библиотек для ввода/вывода звука. Является низкоуровневым интерфейсом по-умолчанию. Поддерживает кучу звуковых карт. Нет поддержки сети. Имеет регулярные проблемы с микшированием звука из различных приложений (dmix). | ||
==== | ==== OSSv3 и OSSv4 ==== | ||
OSSv3 это старый набор драйверов для звука и API для работы с ним. В текущее время практически не используется. Появился после того как 4Front Technologies выложили не нужные драйвера под GPL в ядро Linux. В тоже время продолжая продавать драйвера для более топовых моделей. Со временем в ядре появились и другие драйвера написанные сообществом с таким же API. | |||
OSSv4 это более современный вариант OSSv3. Разработчик выложил драйвера под тремя лицензиями: BSD/GPL/CDDL и про проприетарной. Имеется прослойка для эмуляции ALSA API. | |||
==== PulseAudio ==== | ==== PulseAudio ==== | ||
Современный звуковой аудио сервер. | Современный звуковой аудио сервер. О возможностях можно почитать в [http://ru.wikipedia.org/wiki/PulseAudio Википедии]. | ||
==== | ==== EsounD ==== | ||
Старый звуковой сервер который использовался в GNOME. Не поддерживается. В GNOME он был заменём на PulseAudio. | Старый звуковой сервер который использовался в GNOME. Не поддерживается. В GNOME он был заменём на PulseAudio. | ||
Строка 48: | Строка 51: | ||
Звуковой сервер который использовался в KDE3. В KDE4 выкинут и больше не поддерживается. | Звуковой сервер который использовался в KDE3. В KDE4 выкинут и больше не поддерживается. | ||
=== Как это всё должно работать | ==== NAS ==== | ||
TODO | |||
==== JACK ==== | |||
Звуковой сервер для профессионалов. Нет поддержки сети. Очень низкая задержка ввода и вывода звука. | |||
== Как это всё должно работать == | |||
В общем случае, для обычного пользователя всё должно работать незаметно и сразу после установки из дистрибутива. Пользователь не должен настраивать каждое приложение после установки. | В общем случае, для обычного пользователя всё должно работать незаметно и сразу после установки из дистрибутива. Пользователь не должен настраивать каждое приложение после установки. | ||
Технически, сейчас это лучше всего реализовывается через PulseAudio. | Технически, сейчас это лучше всего реализовывается через 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 === | |||
Уточнить. | |||
== Ссылки == | == Ссылки == | ||
* [http://pulseaudio.org/ Звуковой сервер PulseAudio] | * [http://pulseaudio.org/ Звуковой сервер PulseAudio] | ||
* [http://0pointer.de/blog/projects/guide-to-sound-apis A Guide Through The Linux Sound API Jungle] | * [http://0pointer.de/blog/projects/guide-to-sound-apis A Guide Through The Linux Sound API Jungle] | ||
* [http://ru.wikipedia.org/wiki/Open_Sound_System Статья на Википедии о OSS] |
Текущая версия от 09:40, 21 июля 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
Уточнить.