diff --git a/go.mod b/go.mod index 6dd0b65c4..3757a944d 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/mitchellh/go-homedir v1.1.0 github.com/olekukonko/tablewriter v0.0.5 github.com/pion/ice/v2 v2.1.18 - github.com/pion/interceptor v0.1.4 + github.com/pion/interceptor v0.1.6 github.com/pion/logging v0.2.2 github.com/pion/rtcp v1.2.9 github.com/pion/rtp v1.7.4 diff --git a/go.sum b/go.sum index ccb0a696d..bf43e78d3 100644 --- a/go.sum +++ b/go.sum @@ -175,8 +175,9 @@ github.com/pion/dtls/v2 v2.1.0 h1:g6gtKVNLp6URDkv9OijFJl16kqGHzVzZG+Fa4A38GTY= github.com/pion/dtls/v2 v2.1.0/go.mod h1:qG3gA7ZPZemBqpEFqRKyURYdKEwFZQCGb7gv9T3ON3Y= github.com/pion/ice/v2 v2.1.18 h1:mDzd+iPKJmU30p4Kb+RPjK9olORLqJmQdiTUnVba50g= github.com/pion/ice/v2 v2.1.18/go.mod h1:9jDr0iIUg8P6+0Jq8QJ/eFSkX3JnsPd293TjCdkfpTs= -github.com/pion/interceptor v0.1.4 h1:qL2xrdR6taLkVxEQj39btwEPRO3i9yd/olEw6+20dag= github.com/pion/interceptor v0.1.4/go.mod h1:Lh3JSl/cbJ2wP8I3ccrjh1K/deRGRn3UlSPuOTiHb6U= +github.com/pion/interceptor v0.1.6 h1:ZTXN9fApUDmFqifG64g+ar57XY7vlnXUs7/0DjHVtLo= +github.com/pion/interceptor v0.1.6/go.mod h1:Lh3JSl/cbJ2wP8I3ccrjh1K/deRGRn3UlSPuOTiHb6U= github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= github.com/pion/mdns v0.0.5 h1:Q2oj/JB3NqfzY9xGZ1fPzZzK7sDSD8rZPOvcIQ10BCw= diff --git a/pkg/rtc/transport.go b/pkg/rtc/transport.go index 56c410039..74384ef32 100644 --- a/pkg/rtc/transport.go +++ b/pkg/rtc/transport.go @@ -11,6 +11,9 @@ import ( "github.com/livekit/protocol/livekit" "github.com/livekit/protocol/logger" "github.com/pion/interceptor" + "github.com/pion/interceptor/pkg/cc" + "github.com/pion/interceptor/pkg/gcc" + "github.com/pion/interceptor/pkg/twcc" "github.com/pion/sdp/v3" "github.com/pion/webrtc/v3" @@ -71,8 +74,7 @@ type TransportParams struct { SimTracks map[uint32]SimulcastTrackInfo } -// LK-TODO-SSBWE func newPeerConnection(params TransportParams, onBandwidthEstimator func(estimator cc.BandwidthEstimator)) (*webrtc.PeerConnection, *webrtc.MediaEngine, error) { -func newPeerConnection(params TransportParams) (*webrtc.PeerConnection, *webrtc.MediaEngine, error) { +func newPeerConnection(params TransportParams, onBandwidthEstimator func(estimator cc.BandwidthEstimator)) (*webrtc.PeerConnection, *webrtc.MediaEngine, error) { var directionConfig DirectionConfig if params.Target == livekit.SignalTarget_PUBLISHER { directionConfig = params.Config.Publisher @@ -108,7 +110,6 @@ func newPeerConnection(params TransportParams) (*webrtc.PeerConnection, *webrtc. } if isSendSideBWE { - /* LK-TODO-SSBWE gf, err := cc.NewInterceptor(func() (cc.BandwidthEstimator, error) { return gcc.NewSendSideBWE( gcc.SendSideBWEInitialBitrate(1*1000*1000), @@ -128,7 +129,6 @@ func newPeerConnection(params TransportParams) (*webrtc.PeerConnection, *webrtc. ir.Add(tf) } } - */ } } if len(params.SimTracks) > 0 { @@ -149,13 +149,10 @@ func newPeerConnection(params TransportParams) (*webrtc.PeerConnection, *webrtc. } func NewPCTransport(params TransportParams) (*PCTransport, error) { - /* LK-TODO-SSBWE var bwe cc.BandwidthEstimator pc, me, err := newPeerConnection(params, func(estimator cc.BandwidthEstimator) { bwe = estimator }) - */ - pc, me, err := newPeerConnection(params) if err != nil { return nil, err } @@ -173,11 +170,9 @@ func NewPCTransport(params TransportParams) (*PCTransport, error) { Logger: params.Logger, }) t.streamAllocator.Start() - /* LK-TODO-SSBWE if bwe != nil { t.streamAllocator.SetBandwidthEstimator(bwe) } - */ } t.pc.OnICEGatheringStateChange(func(state webrtc.ICEGathererState) { if state == webrtc.ICEGathererStateComplete { diff --git a/pkg/sfu/streamallocator.go b/pkg/sfu/streamallocator.go index 017df97b3..4bf5f692a 100644 --- a/pkg/sfu/streamallocator.go +++ b/pkg/sfu/streamallocator.go @@ -9,6 +9,7 @@ import ( "github.com/livekit/protocol/livekit" "github.com/livekit/protocol/logger" + "github.com/pion/interceptor/pkg/cc" "github.com/pion/rtcp" "github.com/pion/webrtc/v3" @@ -121,7 +122,7 @@ type StreamAllocator struct { rembTrackingSSRC uint32 - // LK-TODO-SSBWE bwe cc.BandwidthEstimator + bwe cc.BandwidthEstimator committedChannelCapacity int64 lastCommitTime time.Time @@ -183,14 +184,12 @@ func (s *StreamAllocator) OnStreamStateChange(f func(update *StreamStateUpdate) s.onStreamStateChange = f } -/* LK-TODO-SSBWE func (s *StreamAllocator) SetBandwidthEstimator(bwe cc.BandwidthEstimator) { if bwe != nil { bwe.OnTargetBitrateChange(s.onTargetBitrateChange) } s.bwe = bwe } -*/ type AddTrackParams struct { Source livekit.TrackSource @@ -242,11 +241,9 @@ func (s *StreamAllocator) onREMB(downTrack *DownTrack, remb *rtcp.ReceiverEstima // called when a new transport-cc feedback is received func (s *StreamAllocator) onTransportCCFeedback(downTrack *DownTrack, fb *rtcp.TransportLayerCC) { - /* LK-TODO-SSBWE if s.bwe != nil { s.bwe.WriteRTCP([]rtcp.Packet{fb}, nil) } - */ } // called when target bitrate changes