PipeWire 0.3.68 lançado com novo módulo de sessão RTP

PipeWire 1.2 Release Candidate adiciona sincronização e suporte a snap
pipewire

O PipeWire 0.3.68 foi lançado nesta semana. Esta é uma atualização importante para essa alternativa ao JACK e ao PulseAudio. Além disso, este recurso gerencia fluxos de áudio e vídeo no desktop Linux. Em primeiro lugar, com o PipeWire 0.3.68, os links simbólicos agora são usados ??para o binário pipewire em vez de recompilar o mesmo binário várias vezes. Assim, o novo PipeWire 0.3.68 lançado com módulo de sessão RTP.

Há também um novo módulo de sessão RTP que aproveita o protocolo Apple MIDI para MIDI bidirecional de baixa latência entre sistemas, enquanto a codificação Opus foi adicionada aos formatos RTP. Também notável com o PipeWire 0.3.68 é uma série de correções de compilação do FreeBSD para melhorar o suporte de compilação do FreeBSD.

O módulo de túnel de pulso existente teve uma correspondência e sincronização de taxa aprimoradas, o coletor RAOP foi portado para novas funções OpenSSL e o código ACP foi atualizado com o novo código PulseAudio UCM.

PipeWire 0.3.68 lançado com novo módulo de sessão RTP

Esta versão contém um grande número de alterações, algumas das quais podem causar regressões. Relate qualquer coisa que pareça falhar após a atualização. Dispositivos UCM em particular podem ter nomes, perfis e portas alterados que podem exigir alterações em scripts personalizados.

Enquanto isso, o Upstream PulseAudio desativou o upmixing por padrão ao enviar arquivos de configuração que as distribuições podem instalar para habilitar o suporte ao upmixing.

O PipeWire 0.3.68 também possui uma variedade de correções diferentes, como evitar travamentos em alguns casos quando um dispositivo Bluetooth é desconectado.

PipeWire 0.3.68 lançado com novo módulo de sessão RTP

Destaques

  • Os links simbólicos para o binário pipewire agora são usados ??em vez de recompilar o mesmo binário várias vezes.
  • Alterações no agendador de gráficos relacionadas a atualizações de quantum/taxa e cálculo dos estados dos nós. As coisas devem começar e alternar entre quantum e taxas de forma mais suave agora e, especialmente, os dispositivos virtuais devem ser executados apenas quando necessário.
  • Um novo módulo de sessão RTP foi adicionado. Isso usa o protocolo MIDI da Apple para configurar MIDI bidirecional de baixa latência (e com uma extensão específica do PipeWire, também áudio) entre as máquinas. A codificação OPUS foi adicionada aos formatos RTP. O módulo SAP foi separado do módulo rtp-sink/source para torná-lo mais utilizável.
  • Uma nova propriedade de depuração de tempo de execução foi adicionada a todos os fluxos e nós para acionar o salvamento das amostras brutas em um arquivo wav. O suporte para isso também foi adicionado ao cancelador de eco para depurar possíveis problemas.
  • O túnel de pulso do módulo melhorou a correspondência de taxa e o suporte à sincronização. Também não deve mais derivar para dispositivos de captura.
  • A fábrica de links agora ignora por padrão a propriedade link.passive. Isso significa que ferramentas como pw-link ou jack clients e wireplumber não podem mais fazer links passivos. A razão é que agora há uma lógica muito mais avançada no próprio PipeWire para lidar com links passivos com base nas propriedades do nó e da porta.
  • O coletor RAOP foi portado para novas funções OpenSSL. As senhas resumidas são tratadas corretamente agora e o suporte para mais dispositivos foi adicionado.
  • O código ACP foi atualizado com o novo código PulseAudio UCM: “Criar vários perfis por verbo para dispositivos conflitantes”. Isso pode alterar os nomes de dispositivos, perfis e portas para que os scripts precisem ser atualizados.
  • A mistura é desativada novamente por padrão. Agora enviamos arquivos de configuração que as distros podem instalar para ativar a mixagem novamente. A razão é que o PipeWire não deve aplicar processamento DSP sofisticado ao áudio por padrão.
  • Muitas limpezas e correções de bugs, incluindo algumas falhas e bugs de corrupção de memória.

PipeWire

  • Várias correções de compilação do FreeBSD.
  • Não trave ao chamar _connect duas vezes no stream/filter.
  • Os links agora são instalados em vez de compilar o binário pipewire várias vezes.
  • Agora existe um novo evento principal bound_props que aumenta o evento bound_id com as propriedades globais. Isso pode ser usado para obter o global.serial entre outras propriedades globais. Também torna possível, no futuro, permitir que o servidor aloque nomes ou uuids exclusivos.
  • Correção de um bug em que o servidor poderia entrar em um loop de reconfiguração infinita quando a taxa de amostragem de um driver fosse alterada.
  • Quando uma taxa de amostragem for forçada, restaure a melhor taxa de amostragem anterior quando a taxa de amostragem não for mais forçada.
  • Refaça a forma como os estados dos nós no gráfico são calculados. Agora é usado um algoritmo mais refinado que executa apenas os nós que precisam ser executados.
  • Refaça como a mudança quântica é aplicada ao gráfico. Os motoristas agora são responsáveis ??por usar a nova taxa/quantum atualizado antes de iniciar um novo ciclo. Isso evita iniciar um ciclo com um quantum antigo primeiro.
  • pw-stream e pw-filter agora garantirão que o evento Trigger seja chamado a partir do thread principal.
  • node.force-rate=0 agora forçará o node.rate no gráfico, forçando a mudança do hardware para a nova taxa, se possível.
  • Verificações adicionais foram adicionadas ao loop de thread para verificar a ordem de bloqueio.
  • Verificações adicionais foram adicionadas a pw-stream e pw-filter para verificar se os métodos são chamados a partir do contexto de encadeamento correto.

Módulos

  • Um novo módulo de sessão RTP foi adicionado. Isso usa o protocolo Apple MIDI para configurar MIDI bidirecional (ou áudio) entre as máquinas.
  • O suporte SAP foi removido de module-rtp-source e module-rtp-sink e movido para um módulo separado. Isso torna possível usar os módulos RTP também sem suporte SAP.
  • O módulo echo-cancel agora tem suporte para salvar os sinais em um arquivo wav para fins de depuração.
  • Os módulos RTP agora têm suporte para o codec OPUS.
  • O módulo RAOP foi portado para novas funções de criptografia openssl e lida com senhas resumidas corretamente agora.
  • module-raop-discover agora tem regras de correspondência para poder selecionar os fluxos e definir propriedades.
  • O túnel de pulso do módulo melhorou a correspondência de taxa e o suporte à sincronização. ( #3093 )
  • Corrija a possível corrupção de memória e loops infinitos porque o módulo-pulso-túnel foi descarregado do encadeamento errado.
  • A fábrica de links agora ignora por padrão a propriedade link.passive. Isso significa que ferramentas como pw-link ou jack clients e wireplumber não podem mais fazer links passivos. A razão é que agora há uma lógica muito mais avançada no próprio PipeWire para lidar com links passivos com base nas propriedades do nó e da porta.
  • module-echo-cancel agora limpará seus buffers após uma suspensão para evitar a reprodução de amostras perdidas.
  • module-raop-sink agora lidará com 0 respostas de timing_port. (#3133).

Downloads e mais detalhes sobre as muitas mudanças do PipeWire 0.3.68 por meio do FreeDesktop.org GitLab.