PipeWire 1.2.7 — это стабильная версия с исправлениями ошибок, которая добавляет отложенное планирование, улучшает плагин v4l2, исправляет сбои модуля и повышает производительность повторной выборки.
Команда PipeWire объявила о выпуске PipeWire 1.2.7 — обновления с исправлениями ошибок, которое сохраняет совместимость API и ABI со всеми предыдущими версиями 1.2.x и 1.0.x.
Несмотря на отсутствие революционных новых функций, в нём есть множество улучшений, направленных на повышение надёжности, производительности и совместимости различных модулей.
PipeWire 1.2.7: что нового и улучшенного?
Одной из ключевых особенностей этого выпуска является поддержка отложенного планирования, которая помогает оптимизировать ресурсы обработки, позволяя PipeWire работать более эффективно при различных нагрузках.
Кроме того, в новой версии устранена проблема, из-за которой обработка данных останавливалась при уничтожении драйвера ALSA. Это исправление означает, что пользователи должны заметить более стабильное поведение устройств ALSA, обеспечивающее более плавный переход при удалении или замене аудиоустройств.
В PipeWire 1.2.7 также добавлена поддержка v4l2loopback в плагине v4l2, что делает его более универсальным для разработчиков и пользователей, работающих с виртуальными видеоустройствами. Кроме того, было исправлено несколько мелких ошибок и улучшено качество.
Помимо общих улучшений, в ядре PipeWire также были исправлены важные ошибки. В частности, обновление затрагивает статистику профилировщика для асинхронных узлов и пересматривает поведение EARLY_PROCESS в модуле pw-stream
, что должно обеспечить более надёжную потоковую передачу мультимедиа для тех, кто полагается на триггеры ранней обработки.
В модулях было исправлено несколько критических ошибок и оптимизировано несколько функций. В module-filter-chain
была исправлена серьёзная проблема, связанная с некорректным порядком создания узлов, которая ранее приводила к нестабильной работе.
Команда также убрала жёстко заданное ограничение в плагине sofa для цепочки фильтров и добавила ограничение скорости для JACK-туннелей, что сделало эти модули более надёжными и адаптируемыми к различным сценариям использования.
Кроме того, были внесены улучшения для работы с большими размерами MTU в module-rtp
, что должно быть полезно пользователям, работающим с потоковой передачей RTP, особенно когда необходима высокая пропускная способность. Также было исправлено несколько ошибок при синтаксическом анализе чисел с плавающей запятой в модуле эквалайзера, что обеспечивает более плавную обработку настроек эквалайзера.
В SPA, основной части экосистемы PipeWire, также были внесены важные обновления. Теперь исправлены сбои в audiotestsrc
при использовании spa-inspect
, повышающие устойчивость тестовых сред.
Другие улучшения SPA включают в себя повышение производительности в преобразователе частоты дискретизации, улучшенную проверку бесконечности при синтаксическом анализе чисел с плавающей запятой в JSON и исправление регрессии в флагах порта v4l2, которое повторно включает поддержку EXPBUF, улучшая работу с устройствами в видеоприложениях.
Pulse-сервер PipeWire, который обеспечивает совместимость с клиентами PulseAudio, теперь выдаёт более понятные сообщения об ошибках при нехватке файловых дескрипторов и обеспечивает положительную задержку — небольшая, но полезная настройка для тех, кто управляет сложными настройками маршрутизации звука.
Компоненты PipeWire, связанные с GStreamer, также были обновлены, чтобы устранить утечку памяти в deviceprovider
и улучшить обработку ошибок с помощью более надёжных механизмов блокировки при возникновении ошибок, что в целом повышает надёжность потоковой передачи мультимедиа.
Наконец, в инструментарии PipeWire было внесено небольшое исправление для меток ссылок pw-dot
в инструментах визуализации графиков, что должно улучшить результаты работы инструментов визуализации графиков и быть полезным для разработчиков, которым нужно устранять неполадки или анализировать медиаграфику.
Дополнительную информацию обо всех изменениях в новой версии см. в списке изменений.