diff --git a/pkg/rtc/participant.go b/pkg/rtc/participant.go index 6e45fcef9..cd2fe7f39 100644 --- a/pkg/rtc/participant.go +++ b/pkg/rtc/participant.go @@ -1486,7 +1486,11 @@ func (p *ParticipantImpl) subscriberRTCPWorker() { pkts = append(pkts, sr) sd = append(sd, chunks...) - batchSize = batchSize + 1 + len(chunks) + numItems := 0 + for _, chunk := range chunks { + numItems += len(chunk.Items) + } + batchSize = batchSize + 1 + numItems if batchSize >= sdBatchSize { if len(sd) != 0 { pkts = append(pkts, &rtcp.SourceDescription{Chunks: sd}) diff --git a/pkg/sfu/downtrack.go b/pkg/sfu/downtrack.go index c15e68dde..30bf71d20 100644 --- a/pkg/sfu/downtrack.go +++ b/pkg/sfu/downtrack.go @@ -1266,22 +1266,23 @@ func (d *DownTrack) Resync() { } func (d *DownTrack) CreateSourceDescriptionChunks() []rtcp.SourceDescriptionChunk { - if !d.bound.Load() || d.transceiver.Load() == nil { + transceiver := d.transceiver.Load() + if !d.bound.Load() || transceiver == nil { return nil } return []rtcp.SourceDescriptionChunk{ { Source: d.ssrc, - Items: []rtcp.SourceDescriptionItem{{ - Type: rtcp.SDESCNAME, - Text: d.params.StreamID, - }}, - }, { - Source: d.ssrc, - Items: []rtcp.SourceDescriptionItem{{ - Type: rtcp.SDESType(15), - Text: d.transceiver.Load().Mid(), - }}, + Items: []rtcp.SourceDescriptionItem{ + { + Type: rtcp.SDESCNAME, + Text: d.params.StreamID, + }, + { + Type: rtcp.SDESType(15), + Text: transceiver.Mid(), + }, + }, }, } }