From 3eef869a6861ac722f2f0cd633b19eb7dfb03212 Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Fri, 5 Dec 2025 15:57:31 +0530 Subject: [PATCH] Do not pause rid in SDP (#4129) --- go.mod | 4 ++-- go.sum | 8 ++++---- pkg/rtc/transport.go | 4 ++++ pkg/sfu/buffer/buffer.go | 2 +- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 57a58017e..c293b3606 100644 --- a/go.mod +++ b/go.mod @@ -36,12 +36,12 @@ require ( github.com/pion/ice/v4 v4.0.13 github.com/pion/interceptor v0.1.42 github.com/pion/rtcp v1.2.16 - github.com/pion/rtp v1.8.25 + github.com/pion/rtp v1.8.26 github.com/pion/sctp v1.8.41 github.com/pion/sdp/v3 v3.0.16 github.com/pion/transport/v3 v3.1.1 github.com/pion/turn/v4 v4.1.3 - github.com/pion/webrtc/v4 v4.1.6 + github.com/pion/webrtc/v4 v4.1.7 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.23.0 github.com/redis/go-redis/v9 v9.17.2 diff --git a/go.sum b/go.sum index 9314e84cb..91982fbc8 100644 --- a/go.sum +++ b/go.sum @@ -254,8 +254,8 @@ github.com/pion/randutil v0.1.0 h1:CFG1UdESneORglEsnimhUjf33Rwjubwj6xfiOXBa3mA= github.com/pion/randutil v0.1.0/go.mod h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8= github.com/pion/rtcp v1.2.16 h1:fk1B1dNW4hsI78XUCljZJlC4kZOPk67mNRuQ0fcEkSo= github.com/pion/rtcp v1.2.16/go.mod h1:/as7VKfYbs5NIb4h6muQ35kQF/J0ZVNz2Z3xKoCBYOo= -github.com/pion/rtp v1.8.25 h1:b8+y44GNbwOJTYWuVan7SglX/hMlicVCAtL50ztyZHw= -github.com/pion/rtp v1.8.25/go.mod h1:rF5nS1GqbR7H/TCpKwylzeq6yDM+MM6k+On5EgeThEM= +github.com/pion/rtp v1.8.26 h1:VB+ESQFQhBXFytD+Gk8cxB6dXeVf2WQzg4aORvAvAAc= +github.com/pion/rtp v1.8.26/go.mod h1:rF5nS1GqbR7H/TCpKwylzeq6yDM+MM6k+On5EgeThEM= github.com/pion/sctp v1.8.41 h1:20R4OHAno4Vky3/iE4xccInAScAa83X6nWUfyc65MIs= github.com/pion/sctp v1.8.41/go.mod h1:2wO6HBycUH7iCssuGyc2e9+0giXVW0pyCv3ZuL8LiyY= github.com/pion/sdp/v3 v3.0.16 h1:0dKzYO6gTAvuLaAKQkC02eCPjMIi4NuAr/ibAwrGDCo= @@ -268,8 +268,8 @@ github.com/pion/transport/v3 v3.1.1 h1:Tr684+fnnKlhPceU+ICdrw6KKkTms+5qHMgw6bIkY github.com/pion/transport/v3 v3.1.1/go.mod h1:+c2eewC5WJQHiAA46fkMMzoYZSuGzA/7E2FPrOYHctQ= github.com/pion/turn/v4 v4.1.3 h1:jVNW0iR05AS94ysEtvzsrk3gKs9Zqxf6HmnsLfRvlzA= github.com/pion/turn/v4 v4.1.3/go.mod h1:TD/eiBUf5f5LwXbCJa35T7dPtTpCHRJ9oJWmyPLVT3A= -github.com/pion/webrtc/v4 v4.1.6 h1:srHH2HwvCGwPba25EYJgUzgLqCQoXl1VCUnrGQMSzUw= -github.com/pion/webrtc/v4 v4.1.6/go.mod h1:wKecGRlkl3ox/As/MYghJL+b/cVXMEhoPMJWPuGQFhU= +github.com/pion/webrtc/v4 v4.1.7 h1:sl3vFuVHa1u/7DcFbud7e1zk3sG3RjBS5GI2ckltROg= +github.com/pion/webrtc/v4 v4.1.7/go.mod h1:y3mRk8wpmOVkTTEGYB/eXAg0DPEfTEdC/Y021zRiOiM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/pkg/rtc/transport.go b/pkg/rtc/transport.go index dbcc96267..6bc2cc566 100644 --- a/pkg/rtc/transport.go +++ b/pkg/rtc/transport.go @@ -328,6 +328,9 @@ func newPeerConnection(params TransportParams, onBandwidthEstimator func(estimat se := params.Config.SettingEngine se.DisableMediaEngineCopy(true) + // simulcast layer disable/enable signalled via signalling channel, + // so disable rid pause in SDP + se.SetIgnoreRidPauseForRecv(true) // Change elliptic curve to improve connectivity // https://github.com/pion/dtls/pull/474 @@ -2033,6 +2036,7 @@ func (t *PCTransport) preparePC(previousAnswer webrtc.SessionDescription) error // se := webrtc.SettingEngine{} _ = se.SetAnsweringDTLSRole(lksdp.ExtractDTLSRole(parsed)) + se.SetIgnoreRidPauseForRecv(true) api := webrtc.NewAPI( webrtc.WithSettingEngine(se), webrtc.WithMediaEngine(t.me), diff --git a/pkg/sfu/buffer/buffer.go b/pkg/sfu/buffer/buffer.go index bce33890d..cf6f809bd 100644 --- a/pkg/sfu/buffer/buffer.go +++ b/pkg/sfu/buffer/buffer.go @@ -335,7 +335,7 @@ func (b *Buffer) Bind(params webrtc.RTPParameters, codec webrtc.RTPCodecCapabili } if len(b.pPackets) != 0 { - b.logger.Debugw("releasing queued packets on bind") + b.logger.Debugw("releasing queued packets on bind", "count", len(b.pPackets)) } for _, pp := range b.pPackets { b.calc(pp.packet, nil, pp.arrivalTime, false, true)