Format SDP du plan unifié - Plan de transition

Google prévoit de faire passer l'implémentation WebRTC de Chrome du format SDP actuel (appelé "plan B") à un format conforme aux normes (le "plan unifié" brouillon-ietf-rtcweb-jsep) au cours des deux prochains trimestres.

Le forfait comprend cinq phases et une fonctionnalité temporaire d'API.

Personnes concernées

Les personnes qui utilisent plusieurs pistes audio ou plusieurs pistes vidéo au sein d'une même application PeerConnection doivent tester le produit avec le forfait unifié et l'adapter en conséquence. Lorsqu'un appel est lancé à partir d'un point de terminaison non-Chrome et auquel Chrome répond, la forme de l'offre peut changer. Les personnes qui procèdent à une analyse détaillée de SDP et s'intéressent aux attributs msid devront vérifier que leur code d'analyse récupère le nouveau format (a=msid). Les détails indiquant si des modifications seront nécessaires et la manière dont les applications doivent être modifiées dépendent de l'application. Nous pensons que la quasi-totalité des applications qui n'utilisent qu'un seul contenu audio et une seule piste vidéo par RTCPeerConnection ne seront pas concernées par ce changement.

La fonctionnalité API

Nous ajoutons une nouvelle fonctionnalité à la configuration RTCPeerConnection:

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


partial dictionary RTCConfiguration {
   SdpSemantics sdpSemantics;
}

La configuration RTCConfiguration peut être transmise au constructeur d'une classe RTCPeerConnection, et toutes les offres et réponses créées se présentent au format Plan unifié. Les appels de setLocalDescription et setRemoteDescription s'attendent également à ce que le SDP soit au format Plan unifié. S'il est dans l'ancien format Chrome, toutes les pistes audio, sauf la première, seront ignorées.

Il existe également un indicateur de ligne de commande (-enable-features=RTCUnifiedPlanByDefault dans Chrome M71 et versions ultérieures, -enable-blink-features=RTCUnifiedPlanByDefault dans les versions antérieures), qui permet de définir la valeur par défaut de cette option sur "unified-plan".

Phases

Phase 1: Implémentez le plan unifié

Au cours de cette phase, le plan unifié a été développé derrière un indicateur de test disponible à partir de M65. Jusqu'à la phase 2, il a été plus facile d'effectuer des tests avec Chrome Canary à l'aide de "-enable-blink-features=RTCUnifiedPlan".

Phase 2: Disponibilité générale de la fonctionnalité API

Version M69 (août 2018, version stable de septembre 2018)

Lors de cette phase, la valeur par défaut de l'option "sdpSemantics" était "plan-b". Lors de la phase 2, les personnes dont les implémentations dépendaient du format SDP exécutaient des tests afin de vérifier si leurs applications fonctionnaient avec le forfait unifié. Pour les applications compatibles avec Firefox, cet exercice devrait s'avérer très simple, comme vous le feriez pour Firefox.

La valeur par défaut de l'indicateur sdpSemantics peut être modifiée dans "chrome://flags". Recherchez la fonctionnalité "WebRTC: Use the Unified Plan SDP Semantics par défaut".

Phase 3: Changez d'option par défaut

La date de ce changement était M72 (bêta de décembre 2018, stable en janvier 2019).

Au cours de cette phase, nous avons remplacé la valeur par défaut du drapeau sdpSemantics par "plan unifié". Les applications ayant découvert qu'elles avaient besoin de plus de temps pour convertir l'indicateur sdpSemantics de manière explicite sur "plan-b" afin de récupérer le comportement précédent

Phase 4: Lancez le plan B

Lors de cette phase, la définition de l'indicateur sdpSemantics sur "&plant-b" entraîne la création d'une exception. Elle est lancée en version Canary depuis M93. Depuis M96, l'exception s'affichait dans toutes les versions, y compris la version stable.

Pendant cette phase, l'essai d'abandon a été autorisé et a permis d'utiliser le plan B sans générer d'exception, mais l'essai a cessé de fonctionner le 25 mai 2022.

Phase 5: Supprimez le "plan B" de Chromium

À la fin de l'essai, le forfait B sera supprimé de Chrome. À ce stade, l'indicateur sdpSemantics sera supprimé. Si vous tentez de la définir sur "plan-b&quot", aucune exception ne sera générée, mais cela n'aura plus aucun effet.

Le forfait B est toujours disponible pour les builds et les drapeaux spéciaux, mais la suppression complète du code aura lieu au deuxième semestre 2022.

Phase 6: Abandonner et supprimer le "plan B" de WebRTC

Le forfait B est déjà marqué comme obsolète dans WebRTC, mais il est toujours disponible. qui devrait être supprimée en 2023.

Préparer l'application pour le forfait unifié

Pour en savoir plus sur les différences entre le forfait B et le forfait unifié, et sur la manière dont votre application doit être mise à jour en préparation du forfait unifié, consultez le Guide de transition "Plan unifié" (JavaScript).

Pour les applications natives (C++), consultez le document Migrer votre application native/mobile vers un forfait unifié.