From 086704128cdb98b42e232ac44388826fad1199a2 Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Thu, 1 May 2025 13:49:06 +0530 Subject: [PATCH] Limit buffer queue before Bind. (#3634) * Limit buffer queue before Bind. * more generic --- pkg/sfu/buffer/buffer.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/sfu/buffer/buffer.go b/pkg/sfu/buffer/buffer.go index 0defe512c..bf2b5c0fb 100644 --- a/pkg/sfu/buffer/buffer.go +++ b/pkg/sfu/buffer/buffer.go @@ -393,10 +393,17 @@ func (b *Buffer) Write(pkt []byte) (n int, err error) { if !b.bound { packet := make([]byte, len(pkt)) copy(packet, pkt) - b.pPackets = append(b.pPackets, pendingPacket{ + + startIdx := 0 + overflow := len(b.pPackets) - max(b.maxVideoPkts, b.maxAudioPkts) + if overflow > 0 { + startIdx = overflow + } + b.pPackets = append(b.pPackets[startIdx:], pendingPacket{ packet: packet, arrivalTime: now, }) + b.readCond.Broadcast() b.Unlock() return