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 4 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 RTCC do RTCPeerConnection:

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


partial dictionary RTCConfiguration {
   SdpSemantics sdpSemantics;
}

A configuração RTCC 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

O Plano Unificado está sendo desenvolvido atualmente, e a bandeira para experimentação está disponível no M65. Até a fase 2, é mais sensato testar com o Canary. Se você executar o Chrome com “–enable-blink-features = RTCUnifiedPlan”, terá acesso ao recurso “sdpSemantics” descrito acima e poderá começar a testar com o Plano Unificado.

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 é “plan-b”. Na Fase 2, esperamos que as pessoas com implementações que dependem do formato SDP executem 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 troca será definida em consulta com os usuários, após testes extensivos. Nosso plano atual é o M72 (beta em dezembro de 2018, estável em janeiro de 2019).

Nesta fase, vamos alterar o valor padrão do sinalizador sdpSemantics para “plano unificado”. Os aplicativos que descobrem que precisam de mais tempo para converter podem definir o sinalizador sdpSemantics explicitamente como “plan-b” para recuperar o comportamento anterior.

Como parte dos testes, esperamos tentar alterar o valor padrão do sinalizador no Canary várias vezes ao longo do ciclo de desenvolvimento do M71 e M72.

Estaremos monitorando o uso da bandeira e a quantidade de SDP que está sendo recebida com semântica “Plano B”, a fim de definir a data para a fase 4

Fase 4: Remova o “plano B”

Nesta fase, o sinalizador sdpSemantics e todos os códigos para suportar o Plano B serão removidos do Chrome. Definir o sinalizador sdpSemantics não será um erro, mas não terá efeito.

Preparando seu aplicativo para o plano unificado

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

Para aplicativos nativos (C ++), consulte o documento “Migrando seu aplicativo nativo / móvel para o Plano Unificado”