@@ -46,7 +46,6 @@ use crate::peer_connection::operation::{Operation, Operations};
46
46
use crate :: peer_connection:: peer_connection_state:: {
47
47
NegotiationNeededState , RTCPeerConnectionState ,
48
48
} ;
49
- use crate :: peer_connection:: policy:: sdp_semantics:: RTCSdpSemantics ;
50
49
use crate :: peer_connection:: sdp:: sdp_type:: RTCSdpType ;
51
50
use crate :: peer_connection:: sdp:: session_description:: RTCSessionDescription ;
52
51
use crate :: peer_connection:: sdp:: * ;
@@ -772,70 +771,54 @@ impl RTCPeerConnection {
772
771
rtp_transceivers. clone ( )
773
772
} ;
774
773
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
+ {
778
777
let current_remote_description =
779
778
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 ) ;
811
794
}
812
795
}
813
796
}
814
797
}
815
798
}
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
+ }
820
804
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) ;
824
808
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 ) ;
832
815
}
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 ?;
838
816
}
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 ?;
839
822
}
840
823
}
841
824
@@ -847,11 +830,7 @@ impl RTCPeerConnection {
847
830
848
831
let mut d = if current_remote_description_is_none {
849
832
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)
855
834
. await ?
856
835
} else {
857
836
self . internal
@@ -860,7 +839,6 @@ impl RTCPeerConnection {
860
839
use_identity,
861
840
true , /*includeUnmatched */
862
841
DEFAULT_DTLS_ROLE_OFFER . to_connection_role ( ) ,
863
- self . configuration . sdp_semantics ,
864
842
)
865
843
. await ?
866
844
} ;
@@ -879,7 +857,7 @@ impl RTCPeerConnection {
879
857
880
858
// Verify local media hasn't changed during offer
881
859
// 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 {
883
861
break ;
884
862
}
885
863
count += 1 ;
@@ -978,7 +956,6 @@ impl RTCPeerConnection {
978
956
use_identity,
979
957
false , /*includeUnmatched */
980
958
connection_role,
981
- self . configuration . sdp_semantics ,
982
959
)
983
960
. await ?;
984
961
@@ -1303,7 +1280,6 @@ impl RTCPeerConnection {
1303
1280
self . start_rtp_senders ( ) . await ?;
1304
1281
1305
1282
let pci = Arc :: clone ( & self . internal ) ;
1306
- let sdp_semantics = self . configuration . sdp_semantics ;
1307
1283
let remote_desc = Arc :: new ( remote_desc) ;
1308
1284
self . internal
1309
1285
. ops
@@ -1312,9 +1288,7 @@ impl RTCPeerConnection {
1312
1288
let pc = Arc :: clone ( & pci) ;
1313
1289
let rd = Arc :: clone ( & remote_desc) ;
1314
1290
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 ;
1318
1292
false
1319
1293
} )
1320
1294
} ,
@@ -1365,10 +1339,9 @@ impl RTCPeerConnection {
1365
1339
1366
1340
let mut local_transceivers = self . get_transceivers ( ) . await ;
1367
1341
let remote_description = self . remote_description ( ) . await ;
1368
- let detected_plan_b = description_is_plan_b ( remote_description. as_ref ( ) ) ?;
1369
1342
let we_offer = desc. sdp_type == RTCSdpType :: Answer ;
1370
1343
1371
- if !we_offer && !detected_plan_b {
1344
+ if !we_offer {
1372
1345
if let Some ( parsed) = remote_description. as_ref ( ) . and_then ( |r| r. parsed . as_ref ( ) ) {
1373
1346
for media in & parsed. media_descriptions {
1374
1347
let mid_value = match get_mid_value ( media) {
@@ -1529,7 +1502,6 @@ impl RTCPeerConnection {
1529
1502
self . start_rtp_senders ( ) . await ?;
1530
1503
1531
1504
let pci = Arc :: clone ( & self . internal ) ;
1532
- let sdp_semantics = self . configuration . sdp_semantics ;
1533
1505
let remote_desc = Arc :: new ( desc) ;
1534
1506
self . internal
1535
1507
. ops
@@ -1538,7 +1510,7 @@ impl RTCPeerConnection {
1538
1510
let pc = Arc :: clone ( & pci) ;
1539
1511
let rd = Arc :: clone ( & remote_desc) ;
1540
1512
Box :: pin ( async move {
1541
- let _ = pc. start_rtp ( true , rd, sdp_semantics ) . await ;
1513
+ let _ = pc. start_rtp ( true , rd) . await ;
1542
1514
false
1543
1515
} )
1544
1516
} ,
@@ -1580,7 +1552,6 @@ impl RTCPeerConnection {
1580
1552
//log::trace!("start_transports: parsed={:?}", parsed);
1581
1553
1582
1554
let pci = Arc :: clone ( & self . internal ) ;
1583
- let sdp_semantics = self . configuration . sdp_semantics ;
1584
1555
let dtls_role = DTLSRole :: from ( parsed) ;
1585
1556
let remote_desc = Arc :: new ( desc) ;
1586
1557
self . internal
@@ -1603,7 +1574,7 @@ impl RTCPeerConnection {
1603
1574
. await ;
1604
1575
1605
1576
if we_offer {
1606
- let _ = pc. start_rtp ( false , rd, sdp_semantics ) . await ;
1577
+ let _ = pc. start_rtp ( false , rd) . await ;
1607
1578
}
1608
1579
false
1609
1580
} )
0 commit comments