Se ha publicado la versión del servidor multimedia PipeWire 1.0.0, que se considera como el primer lanzamiento estable, marcando la madurez del proyecto. En términos de API y ABI, la versión 1.0 es compatible con la rama 0.3. PipeWire se posiciona como un servidor que reemplaza al servidor de sonido PulseAudio y se distingue por la adición de herramientas para el manejo de flujos de video, la capacidad de procesar audio con mínimas latencias y un nuevo modelo de seguridad para gestionar el acceso a nivel de dispositivos individuales y flujos. El proyecto es soportado en GNOME y ya se utiliza por defecto en Fedora Linux, RHEL, Ubuntu, Debian, SUSE/openSUSE y muchas otras distribuciones de Linux. El código del proyecto está escrito en lenguaje C y se distribuye bajo la licencia LGPLv2.1.
PipeWire proporciona capacidades para el procesamiento de cualquier flujo multimedia, puede mezclar y redirigir flujos de video, y puede utilizarse para gestionar fuentes de video, como dispositivos de captura de video, cámaras web o contenido de pantalla proporcionado por aplicaciones. Por ejemplo, PipeWire permite la colaboración entre varias aplicaciones con una cámara web y resuelve problemas de captura segura de contenido de pantalla y acceso remoto a la pantalla en un entorno de Wayland.
PipeWire también puede actuar como servidor de sonido servidores, proporcionando mínimas latencias y ofreciendo funcionalidades que combinan las capacidades de PulseAudio y JACK, teniendo en cuenta las necesidades de sistemas de procesamiento de sonido profesional que PulseAudio no podía satisfacer. Además, PipeWire ofrece un modelo de seguridad avanzado que permite gestionar el acceso a nivel de dispositivos individuales y flujos específicos, facilitando la organización del flujo de audio y video desde y hacia contenedores aislados. Uno de los principales objetivos es dar soporte a aplicaciones autosuficientes en formato Flatpak y funcionar en un stack gráfico basado en Wayland.
Principales características:
- Captura y reproducción de sonido y video con mínimas latencias;
- Herramientas para el procesamiento de video y sonido en tiempo real;
- Arquitectura multiprocesada que permite el acceso compartido al contenido entre varias aplicaciones;
- Modelo de procesamiento basado en un gráfico de nodos multimedia con soporte para ciclos de retroalimentación y actualizaciones atómicas del gráfico. Se permite la conexión de controladores tanto dentro del servidor como de complementos externos;
- Interfaz eficiente de acceso a flujos de video a través de la transmisión de descriptores de archivo y acceso al sonido mediante búferes de anillo compartidos;
- Capacidad de procesamiento de datos multimedia de cualquier proceso;
- Disponibilidad de un complemento para GStreamer que facilita la integración con aplicaciones existentes;
- Soporte para entornos aislados y Flatpak;
- Soporte para complementos en formato SPA (Simple Plugin API) y posibilidad de crear complementos que operen en modo de tiempo real estricto;
- Sistema flexible de conciliación de formatos multimedia utilizados y asignación de búferes;
- Uso de un proceso de fondo único para la enrutación de sonido y video. Posibilidad de funcionar como un servidor de sonido, hub para proporcionar aplicaciones de video (por ejemplo, para la API de captura de pantalla de gnome-shell) y servidor para gestionar el acceso a dispositivos de captura de video.
Entre los cambios en comparación con la rama 0.3 se incluye la activación por defecto del soporte de jackdbus, que permite utilizar PipeWire como un cliente completo del sistema de sonido JACK. Para ALSA, se ha implementado la programación basada en IRQ en el perfil Pro-Audio, lo que permite alcanzar latencias a nivel de JACK. Se ha añadido soporte tanto para la versión antigua como para la nueva de webrtc-audio-processing. En pw-cat, se ha añadido soporte para archivos DFF DSD. Se ha añadido soporte para la plataforma GNU/Hurd.
Fuente: opennet.ru
