diff --git a/pkg/rtc/config.go b/pkg/rtc/config.go index 8a6d5a847..0e1f551bf 100644 --- a/pkg/rtc/config.go +++ b/pkg/rtc/config.go @@ -171,6 +171,9 @@ func NewWebRTCConfig(conf *config.Config, externalIP string) (*WebRTCConfig, err {Type: webrtc.TypeRTCPFBNACK}, {Type: webrtc.TypeRTCPFBNACK, Parameter: "pli"}, }, + Audio: []webrtc.RTCPFeedback{ + {Type: webrtc.TypeRTCPFBNACK}, + }, }, } if rtcConf.CongestionControl.UseSendSideBWE { diff --git a/pkg/sfu/buffer/buffer.go b/pkg/sfu/buffer/buffer.go index 1da02567a..23a1c2b92 100644 --- a/pkg/sfu/buffer/buffer.go +++ b/pkg/sfu/buffer/buffer.go @@ -179,13 +179,13 @@ func (b *Buffer) Bind(params webrtc.RTPParameters, codec webrtc.RTPCodecCapabili } } - if b.codecType == webrtc.RTPCodecTypeVideo { - for _, fb := range codec.RTCPFeedback { - switch fb.Type { - case webrtc.TypeRTCPFBGoogREMB: - b.logger.Debugw("Setting feedback", "type", webrtc.TypeRTCPFBGoogREMB) - b.logger.Warnw("REMB not supported, RTCP feedback will not be generated", nil) - case webrtc.TypeRTCPFBTransportCC: + for _, fb := range codec.RTCPFeedback { + switch fb.Type { + case webrtc.TypeRTCPFBGoogREMB: + b.logger.Debugw("Setting feedback", "type", webrtc.TypeRTCPFBGoogREMB) + b.logger.Warnw("REMB not supported, RTCP feedback will not be generated", nil) + case webrtc.TypeRTCPFBTransportCC: + if b.codecType == webrtc.RTPCodecTypeVideo { b.logger.Debugw("Setting feedback", "type", webrtc.TypeRTCPFBTransportCC) for _, ext := range params.HeaderExtensions { if ext.URI == sdp.TransportCCURI { @@ -193,11 +193,11 @@ func (b *Buffer) Bind(params webrtc.RTPParameters, codec webrtc.RTPCodecCapabili break } } - case webrtc.TypeRTCPFBNACK: - b.logger.Debugw("Setting feedback", "type", webrtc.TypeRTCPFBNACK) - b.nacker = NewNACKQueue() - b.nacker.SetRTT(70) // default till it is updated } + case webrtc.TypeRTCPFBNACK: + b.logger.Debugw("Setting feedback", "type", webrtc.TypeRTCPFBNACK) + b.nacker = NewNACKQueue() + b.nacker.SetRTT(70) // default till it is updated } } diff --git a/pkg/sfu/buffer/factory.go b/pkg/sfu/buffer/factory.go index 4a7a1957c..3e9e715e0 100644 --- a/pkg/sfu/buffer/factory.go +++ b/pkg/sfu/buffer/factory.go @@ -25,7 +25,7 @@ func NewBufferFactory(trackingPackets int) *Factory { }, audioPool: &sync.Pool{ New: func() interface{} { - b := make([]byte, maxPktSize*25) + b := make([]byte, maxPktSize*200) return &b }, }, diff --git a/pkg/sfu/downtrack.go b/pkg/sfu/downtrack.go index b3b48a399..b79214adf 100644 --- a/pkg/sfu/downtrack.go +++ b/pkg/sfu/downtrack.go @@ -292,9 +292,7 @@ func (d *DownTrack) Bind(t webrtc.TrackLocalContext) (webrtc.RTPCodecParameters, d.handleRTCP(pkt) }) } - if strings.HasPrefix(codec.MimeType, "video/") { - d.sequencer = newSequencer(d.maxTrack, d.logger) - } + d.sequencer = newSequencer(d.maxTrack, d.logger) d.codec = codec.RTPCodecCapability d.forwarder.DetermineCodec(d.codec) if d.onBind != nil {