O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Formato SDP do Plano Unificado - plano de transição

O Google está planejando fazer a transição da implementação WebRTC do Chrome do formato SDP atual (chamado “Plano B”) para um formato em conformidade com os padrões (“Plano Unificado”, draft-ietf-rtcweb-jsep) nos próximos trimestres.

O plano envolve 5 fases e um recurso de API temporário.

Quem será afetado

Pessoas que usam várias trilhas de áudio ou várias trilhas de vídeo em um único PeerConnection terão que testar seu produto no Plano Unificado e se adaptar de acordo. No caso em que uma chamada é iniciada a partir de um endpoint não-Chrome e respondida pelo Chrome, a forma da oferta pode ter que mudar. Pessoas que fazem análise SDP detalhada e se preocupam com atributos msid terão que verificar se seu código de análise segue o novo formato (a = msid). Os detalhes sobre se as mudanças serão necessárias e como os aplicativos precisam ser alterados dependerão do aplicativo. Acreditamos que quase todos os aplicativos que usam apenas um único áudio e uma única trilha de vídeo por RTCPeerConnection não serão afetados pela mudança.

O recurso API

Estamos adicionando um novo recurso à configuração RTCCeerConnection do RTCPeerConnection:

enum SdpSemantics {
  "plan-b",
  "unified-plan"
};


partial dictionary RTCConfiguration {
   SdpSemantics sdpSemantics;
}

A RTCConfiguration pode ser passada para o construtor de um RTCPeerConnection, e todas as ofertas e respostas construídas estarão no formato de Plano Unificado. As chamadas para setLocalDescription e setRemoteDescription também esperam que o SDP esteja no formato do Plano Unificado; se estiver no formato Chrome legado, todas, exceto a primeira trilha de áudio e a primeira trilha de vídeo, serão ignoradas.

Há também um sinalizador de linha de comando (–enable-features = RTCUnifiedPlanByDefault no Chrome M71 e superior, –enable-blink-features = RTCUnifiedPlanByDefault em versões anteriores) que permite que o valor padrão deste sinalizador seja definido como “plano unificado”.

As fases

Fase 1: Implementar Plano Unificado

Nesta fase, o Plano Unificado estava sendo desenvolvido sob uma bandeira de experimentação disponível a partir do M65. Até a fase 2, era mais sensato testar com o Chrome Canary usando “–enable-blink-features = RTCUnifiedPlan”.

Fase 2: disponibilizar o recurso API de maneira geral

Lançado no M69 (beta em agosto de 2018, estável em setembro de 2018)

Nesta fase, o valor padrão do sinalizador sdpSemantics era “plan-b”. Na Fase 2, esperava-se que as pessoas que tinham implementações que dependiam do formato SDP executassem testes para ver se seus aplicativos funcionam quando o Plano Unificado está em uso. Para aplicativos que suportam o Firefox, esperamos que este seja um exercício muito simples: basta fazer como faria para o Firefox.

O valor padrão do sinalizador sdpSemantics pode ser alterado em “chrome: // flags”; procure o recurso “WebRTC: Use Unified Plan SDP Semantics por default”.

Fase 3: Mudar o padrão

A data para a mudança era M72 (beta de dezembro de 2018, estável em janeiro de 2019).

Nesta fase, alteramos o valor padrão do sinalizador sdpSemantics para “plano unificado”. Os aplicativos que descobriram que precisavam de mais tempo para converter definem o sinalizador sdpSemantics explicitamente para “plan-b” para recuperar o comportamento anterior.

Fase 4: Faça o lançamento do “Plano B”

Nesta fase, definir o sinalizador sdpSemantics como "plan-b" resulta em uma exceção sendo lançada. Foi jogando em Canárias de M93. A partir de M96, a exceção é tanto Canary quanto Beta. O plano é fazer com que ele jogue no Estável também. Estamos monitorando o uso do Plano B.

Durante esta fase, a Deprecation teste está disponível que permite usar Plano B sem o arremesso exceção. Este teste para de funcionar em 29 de dezembro de 2021.

Fase 5: Remover “Plano B”

Após o término do teste, o Plano B será removido do Chrome. Neste ponto, o sinalizador sdpSemantics será removido. Tentar defini-lo como "plano-b" não lançará uma exceção, mas não terá mais efeito.

Preparando seu aplicativo para o plano unificado

Para obter informações detalhadas sobre o Plano B e diferenças plano unificado e como seu aplicativo pode precisar ser atualizado em preparação para o plano unificado, consulte o “Plano Unificado de” Guia de Transição (JavaScript)

Para aplicações nativas (C ++), consulte o documento “A migração de seu aplicativo nativo / móvel para Plano Unificado”