diff --git a/client.go b/client.go index 52b5c8f..8c70bde 100644 --- a/client.go +++ b/client.go @@ -492,14 +492,14 @@ func writeLoop(conn *upConnection, track *upTrack, ch <-chan packetIndex) { } for _, l := range local { - err := l.track.WriteRTP(&packet) + err := l.WriteRTP(&packet) if err != nil { if err != io.ErrClosedPipe { log.Printf("WriteRTP: %v", err) } continue } - l.rate.Add(uint32(bytes)) + l.Accumulate(uint32(bytes)) } } } diff --git a/conn.go b/conn.go index f15ee54..da86cb6 100644 --- a/conn.go +++ b/conn.go @@ -14,6 +14,7 @@ import ( "sfu/jitter" "sfu/packetcache" + "github.com/pion/rtp" "github.com/pion/webrtc/v2" ) @@ -247,6 +248,14 @@ type downTrack struct { stats *receiverStats } +func (down *downTrack) WriteRTP(packet *rtp.Packet) error { + return down.track.WriteRTP(packet) +} + +func (down *downTrack) Accumulate(bytes uint32) { + down.rate.Add(bytes) +} + func (down *downTrack) GetMaxBitrate(now uint64) uint64 { br1 := down.maxLossBitrate.Get(now) br2 := down.maxREMBBitrate.Get(now)