@@ -64,40 +64,40 @@ func main() {
6464 panic (err )
6565 }
6666
67- // Create a Congestion Controller. This analyzes inbound and outbound data and provides
68- // suggestions on how much we should be sending.
69- //
70- // Passing `nil` means we use the default Estimation Algorithm which is Google Congestion Control.
71- // You can use the other ones that Pion provides, or write your own!
72- congestionController , err := cc .NewInterceptor (func () (cc.BandwidthEstimator , error ) {
73- return gcc .NewSendSideBWE (gcc .SendSideBWEInitialBitrate (lowBitrate ))
74- })
75- if err != nil {
67+ if err := webrtc .ConfigureTWCCHeaderExtensionSender (m , i ); err != nil {
7668 panic (err )
7769 }
7870
79- estimatorChan := make (chan cc.BandwidthEstimator , 1 )
80- congestionController .OnNewPeerConnection (func (id string , estimator cc.BandwidthEstimator ) { //nolint: revive
81- estimatorChan <- estimator
82- })
83-
84- i .Add (congestionController )
85- if err = webrtc .ConfigureTWCCHeaderExtensionSender (m , i ); err != nil {
71+ if err := webrtc .RegisterDefaultInterceptors (m , i ); err != nil {
8672 panic (err )
8773 }
8874
89- if err = webrtc .RegisterDefaultInterceptors (m , i ); err != nil {
75+ api := webrtc .NewAPI (
76+ webrtc .WithInterceptorRegistry (i ), webrtc .WithMediaEngine (m ),
77+ )
78+
79+ estimator , err := gcc .NewSendSideBWE (
80+ gcc .SendSideBWEInitialBitrate (lowBitrate ),
81+ )
82+ if err != nil {
9083 panic (err )
9184 }
92-
93- // Create a new RTCPeerConnection
94- peerConnection , err := webrtc .NewAPI (webrtc .WithInterceptorRegistry (i ), webrtc .WithMediaEngine (m )).NewPeerConnection (webrtc.Configuration {
85+ interceptor , err := cc .NewSingleInterceptor (estimator )
86+ if err != nil {
87+ panic (err )
88+ }
89+ configuration := webrtc.Configuration {
9590 ICEServers : []webrtc.ICEServer {
9691 {
9792 URLs : []string {"stun:stun.l.google.com:19302" },
9893 },
9994 },
100- })
95+ }
96+
97+ peerConnection , err := api .NewPeerConnection (
98+ configuration ,
99+ webrtc .WithInterceptor (interceptor ),
100+ )
101101 if err != nil {
102102 panic (err )
103103 }
@@ -107,9 +107,6 @@ func main() {
107107 }
108108 }()
109109
110- // Wait until our Bandwidth Estimator has been created
111- estimator := <- estimatorChan
112-
113110 // Create a video track
114111 videoTrack , err := webrtc .NewTrackLocalStaticSample (webrtc.RTPCodecCapability {MimeType : webrtc .MimeTypeVP8 }, "video" , "pion" )
115112 if err != nil {
0 commit comments