O servidor multimídia PipeWire 1.6.0 foi lançado

Após quase um ano de desenvolvimento, uma nova versão estável do servidor multimídia PipeWire 1.6.0 foi formada, sucedendo o servidor de áudio PulseAudio e se destacando por adicionar ferramentas para trabalhar com streams 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 streams individuais. O projeto é usado por padrão em Fedora Linux, RHEL, Ubuntu, Debian, SUSE/openSUSE e muitas outras distribuições Linux. O código é escrito na linguagem C e distribuído sob a licença MIT.

O PipeWire baseia-se em uma arquitetura multiprocessada, permitindo o acesso colaborativo ao conteúdo de vários aplicativos. Ele oferece recursos para processar qualquer stream multimídia, misturando e redirecionando streams de vídeo, além de gerenciar fontes de vídeo, como dispositivos de captura de vídeo, webcams ou conteúdo da tela gerado por aplicativos. O PipeWire possibilita a colaboração entre vários aplicativos usando uma webcam e resolve problemas com a captura segura do conteúdo da tela e acesso remoto à tela em um ambiente Wayland.

Ao ser utilizado como áudio servidor, o PipeWire pode garantir latências mínimas e proporcionar funcionalidades que combinam as capacidades do PulseAudio e do JACK, atendendo às necessidades de sistemas de processamento de áudio profissional que o PulseAudio não conseguia atender. O PipeWire oferece um modelo avançado de segurança, permitindo gerenciar o acesso em nível de dispositivos e streams específicos. O modelo de acesso implementado simplifica o encaminhamento de áudio e vídeo de e para contêineres isolados.

Na nova versão:

  • Foi adicionado um decodificador para o codec de áudio LDAC, utilizado para transmitir áudio de alta qualidade via Bluetooth. Para a decodificação, a biblioteca libldac é utilizada.
  • Adicionada a opção 'bluez5-plc-spandsp' para compensar a perda de pacotes ao transmitir áudio via Bluetooth, utilizando os recursos da biblioteca SpanDSP.
  • Uma implementação segura de funções de análise e criação de objetos serializados no formato POD (Plain Old Data) na memória compartilhada foi acrescentada.
  • Foi implementada a capacidade de transmitir através de metadados informações sobre o suporte que os nós PipeWire oferecem a recursos adicionais, o que pode ser usado para sincronizar o uso de funcionalidades avançadas, como o suporte à operação RELEASE.
  • Adicionada a suporte à anexação de dados personalizados adicionais nas equipes e eventos transmitidos entre os nós.
  • Implementadas funções auxiliares adicionais para criar e analisar formatos de compressão.
  • O limite padrão para o número máximo de canais foi aumentado para 128. Adicionada a capacidade de redefinir esse limite na fase de compilação.
  • Adicionada a configuração 'audio.layout' para definir o esquema de som surround multicanal (por exemplo, 'audio.layout = 5.1') sem a necessidade de listar as posições dos canais ('audio.position = [ FL, FR, FC, LFE, SL, SR ]').
  • Adicionado o mecanismo 'Capability Params' para negociar as capacidades do link na fase anterior à determinação do formato e buffers.
  • Adicionada suporte a novos tipos de representação de cor (colortype) para HDR.
  • Nos ciclos de processamento de eventos, foi implementado suporte a bloqueios com inversão de prioridades, prevenindo situações em que um fluxo de alta prioridade precisa esperar pela liberação de um bloqueio estabelecido por um fluxo de baixa prioridade. Para sincronizar o estado entre os fluxos, ao invés de epoll e eventfd, são utilizadas bloqueios leves.
  • Adicionada suporte para determinar a posição dos canais por meio da análise de dados EDID.
  • Assegurada a transmissão para a subsistema ALSA do mapeamento dos canais de som surround (qual canal é à direita, qual é à esquerda, etc.).
  • Realizadas diversas melhorias relacionadas ao Bluetooth, RTP (Real-time Transport Protocol) e AVB (Audio Video Bridging).
  • Continuou-se o trabalho na implementação do protocolo de rede Milan para transmitir dados multimídia em tempo real.
  • No sistema de mudança de frequência de amostragem (resampler), foi adicionada suporte a funções personalizáveis de supressão de distorções, como Blackman e Kaiser. Para aumentar a precisão do cálculo de fases, foram utilizados cálculos de ponto fixo.
  • Fornecida a capacidade de aplicar no grafo de nós filtros de som do FFmpeg e modelos de IA para processamento de áudio baseados em ONNX, como o detector de voz Silero.
  • O suporte a clientes que utilizam o protocolo v0, que foi utilizado em versões anteriores do PipeWire, foi descontinuado.
  • O módulo jack-tunnel agora suporta a conexão automática de portas.
  • Para o sistema de streaming ROC, foi implementado suporte para arranjos multicanal.
  • Agora é possível alterar os limites de recursos (rlimit) através do arquivo de configuração.
  • Adicionada a propriedade "thread.reset-on-fork" para gerenciar a reinicialização das threads ao chamar o fork. Para clientes JACK, o comportamento padrão do JACK pode ser desativado definindo "thread.reset-on-fork=false".
  • Adicionado o flag node.exclusive, que garante que a porta tenha apenas uma fonte e um consumidor, essencial para implementar o mecanismo Explicit Sync.
  • Adicionado o flag node.reliable para o modo de entrega garantida.
  • A ferramenta pw-cat agora suporta mensagens MIDI SysEx (System Exclusive, para configuração de sintetizadores), o contêiner midiclip e formatos de áudio não comprimidos. Foram adicionadas opções para definir formatos de contêiner de áudio e codecs, assim como visualizar a lista de contêineres, codecs, arranjos de som surround e nomes de canais suportados.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster