Основные изменения в PipeWire 0.3:
- Полностью переработан планировщик обработки потоков. Изменения позволили добиться возможность запуска прослойки для обеспечения совмстимости со звуковым сервером JACK, производительность которой сравнима с JACK2.
- Переработан и объявлен стабильным API. Все дальнейшие изменения в API планируется производить без нарушения обратной совместимости c существующими приложениями.
- В состав включён менеджер сеанcов, позволяющий управлять графом мультимедийных узлов в PipeWire, а также добавлять новые потоки. Пока менеджер лишь предоставляет простейший набор базовых функций и в будущем будет расширен или заменён на более функциональный и гибкий вариант, такой как WirePlumber.
- Улучшены входящие в состав библиотеки для обеспечения совместимости с PulseAudio, JACK и ALSA, позволяющие использовать PipeWire с существующими приложениями, рассчитанными на работу с другими звуковыми системами. Библиотека для ALSA уже почти доведена до полной готовности, но библиотеки для JACK и PulseAudio ещё требуют доработки. PipeWire пока не готов для полной замены PulseAudio и JACK, но в следующих выпусках вопросам совместимости будет уделено первоочерёдное внимание.
- В состав включены некоторые плагины GStreamer для взаимодействия с PipeWire. Плагин pipewiresrc, использующий PipeWire в качестве источника звука, большинстве ситуация работает без проблем. Плагин pipewiresink для вывода звука через PipeWire пока не лишён отдельных известных проблем.
- Поддержка PipeWire 0.3 интегрирована в оконный менеджер Mutter, развиваемый проектом GNOME.
Напомним, что изначально проект развивался одним из создателей фреймворка GStreamer под именами PulseVideo и Pinos. PipeWire расширяет область применения PulseAudio обработкой любых мультимедийных потоков и способен смешивать и перенаправлять потоки с видео. PipeWire также предоставляет возможности для управления источниками видео, такими как устройства захвата видео, web-камеры или выводимое приложениями содержимое экрана. Например, PipeWire даёт возможность организовать совместную работу нескольких приложений с веб-камерой и решает проблемы с безопасным захватом содержимого экрана и удалённым доступом к экрану в окружении Wayland.
PipeWire также может выступать в роли звукового сервера, обеспечивающего минимальные задержки и предоставляющего функциональность комбинирующую возможности PulseAudio и JACK, в том числе учитывающую потребности систем профессиональной обработки звука, на которую не мог претендовать PulseAudio. Кроме того, PipeWire предлагает расширенную модель безопасности, позволяющую управлять доступом на уровне отдельных устройств и конкретных потоков, и упрощающую организацию проброса звука и видео из изолированных контейнеров и в них. Одной из главных целей является поддержка самодостаточных приложений в формате Flatpak и работа в графическом стеке на базе Wayland.
- Захват и воспроизведение звука и видео с минимальными задержками;
- Средства для обработки видео и звука в режиме реального времени;
- Многопроцессная архитектура, позволяющая организовать совместный доступ к контенту нескольких приложений;
- Модель обработки на основании графа мультимедийных узлов с поддержкой циклов обратной связи и атомарных обновлений графа. Допускается подключение обработчиков как внутри сервера, так и внешних плагинов;
- Эффективный интерфейс доступа к видеопотокам через передачу файловых дескрипторов и доступа к звуку через совместно используемые кольцевые буферы (shared ringbuffer);
- Возможность обработки мультимедийных данных от любых процессов;
- Наличие плагина к GStreamer для упрощения интеграции с существующими приложениями;
- Поддержка изолированных окружений и Flatpak;
- Поддержка плагинов в формате SPA (Simple Plugin API) и возможность создания плагинов, работающих в режиме жесткого реального времени;
- Гибкая система согласования используемых мультимедийных форматов и выделения буферов;
- Использование одного фонового процесса для маршрутизации звука и видео. Возможность работы в форме звукового сервера, хаба для предоставления видео приложениям (например, для gnome-shell screencast API) и сервера для управления доступом к аппаратным устройствам захвата видео.
Источник: http://www.opennet.ru/opennews/art.shtml?num=52406