From b82f77eb87a5e6164e263ca8baf6a396ace83e31 Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Wed, 15 Jan 2025 20:45:37 +0530 Subject: [PATCH] Check for Firefox in rtc config. (#3336) --- pkg/rtc/config.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkg/rtc/config.go b/pkg/rtc/config.go index a9b0aae28..7c9a34153 100644 --- a/pkg/rtc/config.go +++ b/pkg/rtc/config.go @@ -118,12 +118,13 @@ func NewWebRTCConfig(conf *config.Config) (*WebRTCConfig, error) { PacketBufferSizeAudio: rtcConf.PacketBufferSizeAudio, }, Publisher: publisherConfig, - Subscriber: getSubscriberConfig(rtcConf.CongestionControl), + Subscriber: getSubscriberConfig(rtcConf.CongestionControl.UseSendSideBWEInterceptor || rtcConf.CongestionControl.UseSendSideBWE), }, nil } -func (c *WebRTCConfig) UpdateCongestionControl(ccConf config.CongestionControlConfig) { - c.Subscriber = getSubscriberConfig(ccConf) +func (c *WebRTCConfig) UpdateCongestionControl(ccConf config.CongestionControlConfig, clientInfo ClientInfo) { + enableTWCC := (ccConf.UseSendSideBWEInterceptor || ccConf.UseSendSideBWE) && !clientInfo.isFirefox() + c.Subscriber = getSubscriberConfig(enableTWCC) } func (c *WebRTCConfig) SetBufferFactory(factory *buffer.Factory) { @@ -131,7 +132,7 @@ func (c *WebRTCConfig) SetBufferFactory(factory *buffer.Factory) { c.SettingEngine.BufferFactory = factory.GetOrNew } -func getSubscriberConfig(ccConf config.CongestionControlConfig) DirectionConfig { +func getSubscriberConfig(enableTWCC bool) DirectionConfig { subscriberConfig := DirectionConfig{ RTPHeaderExtension: RTPHeaderExtensionConfig{ Video: []string{ @@ -154,7 +155,7 @@ func getSubscriberConfig(ccConf config.CongestionControlConfig) DirectionConfig }, }, } - if ccConf.UseSendSideBWEInterceptor || ccConf.UseSendSideBWE { + if enableTWCC { subscriberConfig.RTPHeaderExtension.Video = append(subscriberConfig.RTPHeaderExtension.Video, sdp.TransportCCURI) subscriberConfig.RTCPFeedback.Video = append(subscriberConfig.RTCPFeedback.Video, webrtc.RTCPFeedback{Type: webrtc.TypeRTCPFBTransportCC}) } else {