Update RTC config with congestion control config (#3262)

This commit is contained in:
Raja Subramanian
2024-12-18 00:18:13 +05:30
committed by GitHub
parent b684da380e
commit 28310b670f
+20 -1
View File
@@ -15,6 +15,8 @@
package rtc
import (
"slices"
"github.com/pion/sdp/v3"
"github.com/pion/webrtc/v4"
@@ -117,7 +119,7 @@ func NewWebRTCConfig(conf *config.Config) (*WebRTCConfig, error) {
// subscriber configuration
subscriberConfig := DirectionConfig{
StrictACKs: conf.RTC.StrictACKs,
StrictACKs: rtcConf.StrictACKs,
RTPHeaderExtension: RTPHeaderExtensionConfig{
Video: []string{
dd.ExtensionURI,
@@ -154,6 +156,23 @@ func NewWebRTCConfig(conf *config.Config) (*WebRTCConfig, error) {
}, nil
}
func (c *WebRTCConfig) UpdateCongestionControl(conf config.CongestionControlConfig) {
c.Subscriber.RTPHeaderExtension.Video = slices.DeleteFunc(c.Subscriber.RTPHeaderExtension.Video, func(ext string) bool {
return ext == sdp.TransportCCURI || ext == sdp.ABSSendTimeURI
})
c.Subscriber.RTCPFeedback.Video = slices.DeleteFunc(c.Subscriber.RTCPFeedback.Video, func(fb webrtc.RTCPFeedback) bool {
return fb.Type == webrtc.TypeRTCPFBTransportCC || fb.Type == webrtc.TypeRTCPFBGoogREMB
})
if conf.UseSendSideBWEInterceptor || conf.UseSendSideBWE {
c.Subscriber.RTPHeaderExtension.Video = append(c.Subscriber.RTPHeaderExtension.Video, sdp.TransportCCURI)
c.Subscriber.RTCPFeedback.Video = append(c.Subscriber.RTCPFeedback.Video, webrtc.RTCPFeedback{Type: webrtc.TypeRTCPFBTransportCC})
} else {
c.Subscriber.RTPHeaderExtension.Video = append(c.Subscriber.RTPHeaderExtension.Video, sdp.ABSSendTimeURI)
c.Subscriber.RTCPFeedback.Video = append(c.Subscriber.RTCPFeedback.Video, webrtc.RTCPFeedback{Type: webrtc.TypeRTCPFBGoogREMB})
}
}
func (c *WebRTCConfig) SetBufferFactory(factory *buffer.Factory) {
c.BufferFactory = factory
c.SettingEngine.BufferFactory = factory.GetOrNew