Доступен звуковой сервер PulseAudio 5.0
Анонсирован выпуск звукового сервера PulseAudio 5.0, который выступает в роли посредника между приложениями и различными низкоуровневыми звуковыми подсистемами, абстрагируя работу с оборудованием. Код PulseAudio распространяется в рамках лицензии LGPL 2.1+. Поддерживается работа в Linux, Solaris, FreeBSD, DragonFlyBSD, NetBSD, Mac OS X и Windows.
PulseAudio позволяет управлять громкостью и смешиванием звука на уровне отдельных приложений, организовывать поступление, смешивание и вывод звука при наличии нескольких входных и выходных каналов или звуковых карт, позволяет на лету менять формат звукового потока и использовать плагины, дает возможность прозрачно перенаправлять звуковой поток на другую машину.
Ключевые улучшения PulseAudio 5.0:
- Поддержка использования Bluetooth-стека BlueZ 5 для организации передачи звука на внешние устройства в соответствии с профилем A2DP. Поддерживается только вывод звука, ввод с микрофона или другого источник пока не реализован, так как в BlueZ 5 прекращена поддержка профилей HSP и HFP. Для полноценного использования Bluetooth-гарнитур следует собрать PulseAudio с поддержкой BlueZ 4, которая сохранена в полном объёме (BlueZ 4 и BlueZ 5 имеют несовместимый клиентский API, поэтому программа, написанная с API BlueZ 4 не будет работать с BlueZ 5). Так как некоторые дистрибутивы уже мигрировали на BlueZ 5 без предоставления BlueZ 4, а также поддержка BlueZ 4 прекращена в конфигураторе GNOME, в будущем выпуске PulseAudio поддержку профилей HSP и HFP планируется реализовать через телефонный стек oFono;
- Новая реализация туннельных модулей. В старых модулях module-tunnel-sink и module-tunnel-source использовались отдельные реализации клиентского протокола PulseAudio, не пересекающиеся с реализацией клиентского протокола в библиотеке libpulse, используемого для организации взаимодействия с сервером PulseAudio. Для устранения дублирования кода и упрощения сопровождения туннельные модули переведены на использование libpulse. Новые варианты модулей пока поставляются под отдельными именами module-tunnel-sink-new и module-tunnel-source-new, так как реализация пока полностью не завершена, хотя уже работоспособна и протестирована. После доведения работы до конца новые модули заменят собой старые;
- Опциональная возможность использования systemd-journal для ведения лога. Для перенаправления лога в systemd-journal следует указать "journal" в качестве источника в директиве log-target, при сборке с поддержкой systemd-journal данное значение используется по умолчанию;
- В утилиты parecord и parec добавлена опция "--monitor-stream" для организации записи из одного потока воспроизведения;
- Добавлена поддержка определения подключения разъёма в гнездо линейного выхода. Состояние подключения разъёма линейного выхода теперь должным образом отображается в интерфейсах пользователя;
- Для ноутбуков с поддержкой объёмного звука (surround) добавлена корректная поддержка управления громкостью дополнительных динамиков;
- В модуль module-rtp-recv добавлена поддержка аргумента "latency_msec" (по умолчанию 500 ms), который можно использовать для управления размером локального буфера;
- В модуль module-rtp-send добавлена поддержка аргумента "inhibit_auto_suspend" для управления логикой автоматической приостановки источника при отсутствии связанного с ним потока;
- В модули module-tunnel-sink и module-tunnel-source добавлена поддержка аргумента "auto" для установки параметров соединения в зависимости от окружения;
- В модуле module-alsa-card обеспечена корректировка уровня громкости захвата звука через ALSA mixer, что позволило снизить уровень шума на некотором оборудовании;
- В модуль module-alsa-card добавлены опции "PlaybackRate" и "CaptureRate";
- Максимальное настраиваемое время задержки в module-loopback увеличено с 2 до 30 секунд;
- Удалён модуль module-bluetooth-proximity, так как он практически не востребован, но требует привязки к устаревшей версии BlueZ;
- Из числа зависимостей убрана библиотека libbluetooth. Вместо варианта gettext из состава GLib задействован обособленный пакет gettext, версии не ниже 0.18.1. Требования к минимальной версии alsa-lib понижены с 1.0.24 до 1.0.19.