From fee300985362ad324df92c6e5e09cea6bcef9e81 Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Tue, 8 Feb 2022 17:19:59 +0530 Subject: [PATCH] Use buffer channel for all RTCP messages (#418) RTCP messages are going through two channel hops now. Maybe we don't need that anymore now that the original problem is diagnosed. But, pushing all RTCP via the callbackOps channel for now to make it consistent. --- pkg/sfu/buffer/buffer.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/sfu/buffer/buffer.go b/pkg/sfu/buffer/buffer.go index 4f6068b9f..95b1b4957 100644 --- a/pkg/sfu/buffer/buffer.go +++ b/pkg/sfu/buffer/buffer.go @@ -287,7 +287,9 @@ func (b *Buffer) SendPLI() { &rtcp.PictureLossIndication{SenderSSRC: rand.Uint32(), MediaSSRC: b.mediaSSRC}, } - b.feedbackCB(pli) + b.callbackOps <- func() { + b.feedbackCB(pli) + } } func (b *Buffer) SetRTT(rtt uint32) { @@ -501,7 +503,9 @@ func (b *Buffer) doNACKs() { } if r, numSeqNumsNacked := b.buildNACKPacket(); r != nil { - go b.feedbackCB(r) + b.callbackOps <- func() { + b.feedbackCB(r) + } b.stats.TotalNACKs += uint32(numSeqNumsNacked) } }