@@ -46,7 +46,6 @@ use crate::peer_connection::operation::{Operation, Operations};
4646use crate :: peer_connection:: peer_connection_state:: {
4747 NegotiationNeededState , RTCPeerConnectionState ,
4848} ;
49- use crate :: peer_connection:: policy:: sdp_semantics:: RTCSdpSemantics ;
5049use crate :: peer_connection:: sdp:: sdp_type:: RTCSdpType ;
5150use crate :: peer_connection:: sdp:: session_description:: RTCSessionDescription ;
5251use crate :: peer_connection:: sdp:: * ;
@@ -772,70 +771,54 @@ impl RTCPeerConnection {
772771 rtp_transceivers. clone ( )
773772 } ;
774773
775- // in-parallel steps to create an offer
776- // https://w3c.github.io/webrtc-pc/#dfn-in-parallel-steps-to-create-an-offer
777- let is_plan_b = {
774+ // include unmatched local transceivers
775+ // update the greater mid if the remote description provides a greater one
776+ {
778777 let current_remote_description =
779778 self . internal . current_remote_description . lock ( ) . await ;
780- if current_remote_description. is_some ( ) {
781- description_is_plan_b ( current_remote_description. as_ref ( ) ) ?
782- } else {
783- self . configuration . sdp_semantics == RTCSdpSemantics :: PlanB
784- }
785- } ;
786-
787- // include unmatched local transceivers
788- if !is_plan_b {
789- // update the greater mid if the remote description provides a greater one
790- {
791- let current_remote_description =
792- self . internal . current_remote_description . lock ( ) . await ;
793- if let Some ( d) = & * current_remote_description {
794- if let Some ( parsed) = & d. parsed {
795- for media in & parsed. media_descriptions {
796- if let Some ( mid) = get_mid_value ( media) {
797- if mid. is_empty ( ) {
798- continue ;
799- }
800- let numeric_mid = match mid. parse :: < isize > ( ) {
801- Ok ( n) => n,
802- Err ( _) => continue ,
803- } ;
804- if numeric_mid
805- > self . internal . greater_mid . load ( Ordering :: SeqCst )
806- {
807- self . internal
808- . greater_mid
809- . store ( numeric_mid, Ordering :: SeqCst ) ;
810- }
779+ if let Some ( d) = & * current_remote_description {
780+ if let Some ( parsed) = & d. parsed {
781+ for media in & parsed. media_descriptions {
782+ if let Some ( mid) = get_mid_value ( media) {
783+ if mid. is_empty ( ) {
784+ continue ;
785+ }
786+ let numeric_mid = match mid. parse :: < isize > ( ) {
787+ Ok ( n) => n,
788+ Err ( _) => continue ,
789+ } ;
790+ if numeric_mid > self . internal . greater_mid . load ( Ordering :: SeqCst ) {
791+ self . internal
792+ . greater_mid
793+ . store ( numeric_mid, Ordering :: SeqCst ) ;
811794 }
812795 }
813796 }
814797 }
815798 }
816- for t in & current_transceivers {
817- if !t. mid ( ) . await . is_empty ( ) {
818- continue ;
819- }
799+ }
800+ for t in & current_transceivers {
801+ if !t. mid ( ) . await . is_empty ( ) {
802+ continue ;
803+ }
820804
821- if let Some ( gen) = & self . internal . setting_engine . mid_generator {
822- let current_greatest = self . internal . greater_mid . load ( Ordering :: SeqCst ) ;
823- let mid = ( gen) ( current_greatest) ;
805+ if let Some ( gen) = & self . internal . setting_engine . mid_generator {
806+ let current_greatest = self . internal . greater_mid . load ( Ordering :: SeqCst ) ;
807+ let mid = ( gen) ( current_greatest) ;
824808
825- // If it's possible to parse the returned mid as numeric, we will update the greater_mid field.
826- if let Ok ( numeric_mid) = mid. parse :: < isize > ( ) {
827- if numeric_mid > self . internal . greater_mid . load ( Ordering :: SeqCst ) {
828- self . internal
829- . greater_mid
830- . store ( numeric_mid, Ordering :: SeqCst ) ;
831- }
809+ // If it's possible to parse the returned mid as numeric, we will update the greater_mid field.
810+ if let Ok ( numeric_mid) = mid. parse :: < isize > ( ) {
811+ if numeric_mid > self . internal . greater_mid . load ( Ordering :: SeqCst ) {
812+ self . internal
813+ . greater_mid
814+ . store ( numeric_mid, Ordering :: SeqCst ) ;
832815 }
833-
834- t. set_mid ( mid) . await ?;
835- } else {
836- let greater_mid = self . internal . greater_mid . fetch_add ( 1 , Ordering :: SeqCst ) ;
837- t. set_mid ( format ! ( "{}" , greater_mid + 1 ) ) . await ?;
838816 }
817+
818+ t. set_mid ( mid) . await ?;
819+ } else {
820+ let greater_mid = self . internal . greater_mid . fetch_add ( 1 , Ordering :: SeqCst ) ;
821+ t. set_mid ( format ! ( "{}" , greater_mid + 1 ) ) . await ?;
839822 }
840823 }
841824
@@ -847,11 +830,7 @@ impl RTCPeerConnection {
847830
848831 let mut d = if current_remote_description_is_none {
849832 self . internal
850- . generate_unmatched_sdp (
851- current_transceivers,
852- use_identity,
853- self . configuration . sdp_semantics ,
854- )
833+ . generate_unmatched_sdp ( current_transceivers, use_identity)
855834 . await ?
856835 } else {
857836 self . internal
@@ -860,7 +839,6 @@ impl RTCPeerConnection {
860839 use_identity,
861840 true , /*includeUnmatched */
862841 DEFAULT_DTLS_ROLE_OFFER . to_connection_role ( ) ,
863- self . configuration . sdp_semantics ,
864842 )
865843 . await ?
866844 } ;
@@ -879,7 +857,7 @@ impl RTCPeerConnection {
879857
880858 // Verify local media hasn't changed during offer
881859 // generation. Recompute if necessary
882- if is_plan_b || !self . internal . has_local_description_changed ( & offer) . await {
860+ if !self . internal . has_local_description_changed ( & offer) . await {
883861 break ;
884862 }
885863 count += 1 ;
@@ -978,7 +956,6 @@ impl RTCPeerConnection {
978956 use_identity,
979957 false , /*includeUnmatched */
980958 connection_role,
981- self . configuration . sdp_semantics ,
982959 )
983960 . await ?;
984961
@@ -1303,7 +1280,6 @@ impl RTCPeerConnection {
13031280 self . start_rtp_senders ( ) . await ?;
13041281
13051282 let pci = Arc :: clone ( & self . internal ) ;
1306- let sdp_semantics = self . configuration . sdp_semantics ;
13071283 let remote_desc = Arc :: new ( remote_desc) ;
13081284 self . internal
13091285 . ops
@@ -1312,9 +1288,7 @@ impl RTCPeerConnection {
13121288 let pc = Arc :: clone ( & pci) ;
13131289 let rd = Arc :: clone ( & remote_desc) ;
13141290 Box :: pin ( async move {
1315- let _ = pc
1316- . start_rtp ( have_local_description, rd, sdp_semantics)
1317- . await ;
1291+ let _ = pc. start_rtp ( have_local_description, rd) . await ;
13181292 false
13191293 } )
13201294 } ,
@@ -1365,10 +1339,9 @@ impl RTCPeerConnection {
13651339
13661340 let mut local_transceivers = self . get_transceivers ( ) . await ;
13671341 let remote_description = self . remote_description ( ) . await ;
1368- let detected_plan_b = description_is_plan_b ( remote_description. as_ref ( ) ) ?;
13691342 let we_offer = desc. sdp_type == RTCSdpType :: Answer ;
13701343
1371- if !we_offer && !detected_plan_b {
1344+ if !we_offer {
13721345 if let Some ( parsed) = remote_description. as_ref ( ) . and_then ( |r| r. parsed . as_ref ( ) ) {
13731346 for media in & parsed. media_descriptions {
13741347 let mid_value = match get_mid_value ( media) {
@@ -1529,7 +1502,6 @@ impl RTCPeerConnection {
15291502 self . start_rtp_senders ( ) . await ?;
15301503
15311504 let pci = Arc :: clone ( & self . internal ) ;
1532- let sdp_semantics = self . configuration . sdp_semantics ;
15331505 let remote_desc = Arc :: new ( desc) ;
15341506 self . internal
15351507 . ops
@@ -1538,7 +1510,7 @@ impl RTCPeerConnection {
15381510 let pc = Arc :: clone ( & pci) ;
15391511 let rd = Arc :: clone ( & remote_desc) ;
15401512 Box :: pin ( async move {
1541- let _ = pc. start_rtp ( true , rd, sdp_semantics ) . await ;
1513+ let _ = pc. start_rtp ( true , rd) . await ;
15421514 false
15431515 } )
15441516 } ,
@@ -1580,7 +1552,6 @@ impl RTCPeerConnection {
15801552 //log::trace!("start_transports: parsed={:?}", parsed);
15811553
15821554 let pci = Arc :: clone ( & self . internal ) ;
1583- let sdp_semantics = self . configuration . sdp_semantics ;
15841555 let dtls_role = DTLSRole :: from ( parsed) ;
15851556 let remote_desc = Arc :: new ( desc) ;
15861557 self . internal
@@ -1603,7 +1574,7 @@ impl RTCPeerConnection {
16031574 . await ;
16041575
16051576 if we_offer {
1606- let _ = pc. start_rtp ( false , rd, sdp_semantics ) . await ;
1577+ let _ = pc. start_rtp ( false , rd) . await ;
16071578 }
16081579 false
16091580 } )
0 commit comments