Публикувана версия на мултимедийния сървър PipeWire 1.0.0, която е отбелязана като първия стабилен релиз, ознаменуващ зрелостта на проекта. На ниво API и ABI версия 1.0 е обратно съвместима с клон 0.3. PipeWire се позиционира като сървър, заменящ звуковия сървър PulseAudio и се отличава от него с добавянето на средства за работа с видео потоци, възможност за обработка на звук с минимални забавяния и нова модел на сигурност за управление на достъпа на ниво отделни устройства и потоци. Проектът се поддържа в GNOME и вече по подразбиране се използва в Fedora Linux, RHEL, Ubuntu, Debian, SUSE/openSUSE и много други дистрибуции на Linux. Кодът на проекта е написан на C и се разпространява под лицензия LGPLv2.1.
PipeWire предоставя възможности за обработка на всякакви мултимедийни потоци, способен да смесва и пренасочва потоци с видео, може да се използва за управление на източниците на видео, като устройства за захващане на видео, уеб камери или изходно съдържание от приложенията на екрана. Например, PipeWire дава възможност за организиране на съвместна работа на няколко приложения с уеб камера и решава проблемите със сигурното захващане на съдържанието на екрана и дистанционния достъп до екрана в средата на Wayland.
PipeWire може също да играе ролята на аудио сървър, осигуряваща минимални закъснения и предоставяща функционалност, комбинираща възможностите на PulseAudio и JACK, включително вземайки предвид нуждите на системи за професионална обработка на звук, на които PulseAudio не можа да отговори. Освен това, PipeWire предлага разширен модел на сигурност, позволяващ управление на достъпа на ниво отделни устройства и конкретни потоци, и опростяващ организирането на предаване на звук и видео от изолирани контейнери и в тях. Една от основните цели е поддръжката на самодостатъчни приложения във формат Flatpak и работата в графичен стек, базиран на Wayland.
Основни възможности:
- Захват и воспроизведение звука и видео с минимальными задержками;
- Инструменты для обработки видео и звука в реальном времени;
- Многопроцессная архитектура, позволяющая обеспечить совместный доступ к контенту нескольких приложений;
- Модел на обработка на база графа на мултимедийни възли с поддръжка на цикли на обратна връзка и атомарни актуализации на графа. Позволява свързването на обработвачи както вътре в сървера, така и на външни плъгини;
- Ефективен интерфейс за достъп до видеопотоките чрез предаване на файлови дескриптори и достъп до звука чрез споделени кръгови буфери (shared ringbuffer);
- Възможност за обработка на мултимедийни данни от всякакви процеси;
- Наличието на плъгин за GStreamer за опростяване на интеграцията с съществуващите приложения;
- Поддръжка на изолирани среди и Flatpak;
- Поддръжка на плъгини във формат SPA (Simple Plugin API) и възможност за създаване на плъгини, работещи в режим на жестоко реално време;
- Гъвкава система за съгласуване на използваните мултимедийни формати и разпределяне на буферите;
- Използване на един фонов процес за маршрутизиране на звук и видео. Възможност за работа във форма на звуков сървър, хъб за предоставяне на видео приложениям (например, за gnome-shell screencast API) и сървър за управление на достъпа до хардуерни устройства за захващане на видео.
От промените в сравнение с клона 0.3 се отбелязва включването по подразбиране на поддръжката на jackdbus, позволяваща използването на PipeWire като пълноценен клиент на звуковата система JACK. За ALSA е задействано планиране на база IRQ в профила Pro-Audio, позволяващо постигане на забавяния на нивото на JACK. Добавена е поддръжка както за старата, така и за новата версия на webrtc-audio-processing. В pw-cat е добавена поддръжка за файлове DFF DSD. Добавена е поддръжка за платформата GNU/Hurd.
Източник: opennet.ru
