Foi publicado o lançamento do projeto PipeWire 0.3.35, que desenvolve um servidor multimídia de nova geração, substituindo o PulseAudio. O PipeWire possui recursos aprimorados em comparação ao PulseAudio para trabalhar com fluxos de vídeo, capacidade de processamento de áudio com latências mínimas e um novo modelo de segurança para gerenciar o acesso em nível de dispositivos e fluxos individuais. O projeto é suportado pelo GNOME e já é utilizado por padrão no Fedora Linux. O código do projeto é escrito em C e é distribuído sob a licença LGPLv2.1.
Principais mudanças no PipeWire 0.3.35:
- Adicionada a suporte para o protocolo S/P-DIF para transmissão de áudio digital através de conectores ópticos e HDMI.
- Os codecs para Bluetooth foram extraídos para plugins separados, que são carregados dinamicamente.
- Uma série de correções importantes relacionadas ao suporte MIDI foram implementadas.
- Melhorias no funcionamento do aplicativo skypeforlinux foram feitas, com a adição de uma vinculação que força o uso do formato S16 ao transmitir informações sobre dispositivos de entrada e saída de áudio. Essa mudança resolveu um problema que poderia resultar em ausência de áudio do assinante do outro lado da conexão.
- Aumentado o número de formatos de áudio disponíveis para mixagem.
- Adicionado uma nova interface para carregamento de módulos. Plugins podem usar essa interface para solicitar o carregamento de plugins spa.
- Aumentado o tamanho do buffer de parâmetros, que anteriormente poderia não acomodar todas as propriedades dos nós com um grande número de canais.
- Garantida a ativação de drivers ao estabelecer conexões em loopback.
- Em servidor Implementado a extensão device-restore, permitindo, através da ferramenta pavucontrol, configurar codecs IEC958 (S/P-DIF) suportados pelo dispositivo de saída de áudio.
Cabe lembrar que o PipeWire expande a aplicação do PulseAudio ao processar quaisquer fluxos multimídia e é capaz de misturar e redirecionar fluxos de vídeo. O PipeWire também oferece recursos para gerenciar fontes de vídeo, como dispositivos de captura de vídeo, webcams ou conteúdo de tela produzido por aplicativos. Por exemplo, o PipeWire permite que vários aplicativos trabalhem juntos com a webcam e resolve problemas com a captura segura de conteúdo de tela e acesso remoto à tela em um ambiente Wayland.
O PipeWire também pode atuar como um servidor de áudio servidor, proporcionando latências mínimas e oferecendo funcionalidades que combinam as capacidades do PulseAudio e JACK, levando em consideração as necessidades de sistemas profissionais de processamento de áudio, algo que o PulseAudio não poderia atender. Além disso, o PipeWire oferece um modelo de segurança aprimorado, permitindo o gerenciamento de acesso em nível de dispositivos individuais e fluxos específicos, facilitando a organização da transmissão de áudio e vídeo de e para contêineres isolados. Um dos principais objetivos é suportar aplicações autossuficientes no formato Flatpak e operar em uma pilha gráfica baseada em Wayland.
Principais funcionalidades:
- Captura e reprodução de áudio e vídeo com latências mínimas;
- Recursos para processamento de vídeo e áudio em tempo real;
- Arquitetura multiprocessada que permite o compartilhamento de conteúdo entre múltiplos aplicativos;
- Modelo de processamento baseado em um gráfico de nós multimídia com suporte a ciclos de feedback e atualizações atômicas do gráfico. É permitido conectar manipuladores tanto dentro do servidor quanto plugins externos;
- Interface de acesso eficiente a streams de vídeo através da transmissão de descritores de arquivos e acesso ao áudio através de buffers circulares compartilhados;
- Capacidade de processamento de dados multimídia de quaisquer processos;
- Disponibilidade de um plugin para GStreamer para facilitar a integração com aplicativos existentes;
- Suporte para ambientes isolados e Flatpak;
- Suporte a plugins no formato SPA (Simple Plugin API) e possibilidade de criar plugins que operam em modo de tempo real rígido;
- Sistema flexível de negociação de formatos multimídia utilizados e alocação de buffers;
- Uso de um único processo em segundo plano para roteamento de áudio e vídeo. Capacidade de operar na forma de um servidor de áudio, hub para fornecer vídeo a aplicativos (por exemplo, para a API de screencast do gnome-shell) e servidor para gerenciar o acesso a dispositivos de captura de vídeo.
Fonte: opennet.ru
