Увидел свет релиз звукового сервера PulseAudio 1.0. По сравнению с прошлым выпуском внесено около тысячи исправлений. Тем не менее, версия 1.0 не позиционируется как какой-то знаковый этап, сигнализирующий достижение определенного уровня стабильности или функциональности. Это скорее смена подхода в нумерации релизов и следствие реструктуризации процесса разработки.
В соответствии с новой схемой нумерации релизов, первая цифра версии будет увеличиваться для каждого значительного выпуска, а вторая цифра будет иметь значение только для корректирующих релизов. Например, следующий значительный релиз выйдет по номером 2.0, а если в PulseAudio 1.0 будет найдена критическая ошибка, то будет выпущен корректирующий релиз 1.1.
Большие изменения коснулись и процесса управления проектом. Как известно Леннарт Поттеринг (Lennart Poettering), основатель и лидер проекта PulseAudio, последнее время отстранился от работы над PulseAudio и уделяет все свое внимание развитию системного менеджера systemd. За выпуск релизов теперь отвечает Colin Guthrie, который одновременно будет выполнять роль лидера сообщества и арбитра при решении спорных вопросов и приеме новых патчей. Инфраструктура проекта перемещена под крыло freedesktop.org, где теперь будут размещены Git-репозитории, списки рассылки и система отслеживания ошибок.
PulseAudio выступает в роли промежуточного звена, выполняющего роль посредника между приложениями и различными низкоуровневыми звуковыми подсистемами, абстрагируя доступ работу с оборудованием. PulseAudio позволяет управлять громкостью и смешиванием звука на уровне отдельных приложений, организовывать поступление, смешивание и вывод звука при наличии нескольких входных и выходных каналов или звуковых карт, позволяет менять формат звукового потока и использовать плагины, дает возможность перенаправлять звуковой поток на другую машину. Кроме Linux, PulseAudio поддерживает работу в таких системах, как Solaris, FreeBSD, NetBSD, Mac OS X и Windows. Код PulseAudio распространяется в рамках лицензии LGPL 2.1+.
Ключевые улучшения PulseAudio 1.0:
- Реализация экспериментального протокола управления, базирующегося на использовании D-Bus. Отныне все действия, кроме передачи звуковых потоков и управления громкостью на уровне источника вывода (source-outputs), могут производиться через D-Bus. Стабильность API пока не гарантируется, так как интерфейс проходит тестирование и доработку.
- Управление громкостью на стороне : если ранее в PulseAudio можно было регулировать громкость устройств воспроизведения, устройств захвата звука и принимаемых звуковых потоков, то теперь управлять громкостью также можно для принимающих звук приложений (source-outputs или capture streams). Например, можно регулировать громкость отдельно для каждого записывающего приложения (например, для VoIP-клиентов), примерно также как ранее делалось для приложений, занимающихся воспроизведением;
- Поддержка прямого проброса звука. Приложения могут отправить сжатый звуковой поток непосредственно на оборудование, поддерживающее данный формат (Например, A/V ресиверы или поддерживающие расширенные форматы Bluetooth-гарнитуры), минуя обработку силами PulseAudio;
- Добавлен новый модуль для подавления эха. Из коробки данный модуль уже используется в Empathy 3.2, для других приложений требуется ручная загрузка модуля module-echo-cancel;
- Возобновлена поддержка платформы Windows. Возможность сборки для Windows была нарушена в в версиях старше 0.9.6;
- В модуле module-rtp-receive реализован новый алгоритм определения частоты дискретизации для RTP-потоков, что позволило решить проблемы с искажением звука из-за неправильного определения частоты дискретизации;
- Удалены устаревшие компоненты pabrowse и libpulse-browse, функциональность которых теперь обеспечивается через avahi-browse и libavahi;
- Поддержка синхронизации изменения громкости для flat-режима, выделяющего самое громкое приложение;
- Новый модуль с реализацией эквалайзера;
- Автоматическое подсоединение к Jack-серверу, если он запущен в системе (ранее требовалось исправление файлов конфигурации).