diff --git a/pkg/sfu/buffer/buffer.go b/pkg/sfu/buffer/buffer.go index 3dd4bf517..4ceb8430c 100644 --- a/pkg/sfu/buffer/buffer.go +++ b/pkg/sfu/buffer/buffer.go @@ -225,6 +225,7 @@ func (b *Buffer) Bind(params webrtc.RTPParameters, codec webrtc.RTPCodecCapabili return nil } + b.logger.Debugw("binding track") if codec.ClockRate == 0 { b.logger.Warnw("invalid codec", nil, "params", params, "codec", codec, "bitrates", bitrates) return errInvalidCodec @@ -322,6 +323,7 @@ func (b *Buffer) Bind(params webrtc.RTPParameters, codec webrtc.RTPCodecCapabili } } + b.logger.Debugw("releasing queued packets on bind") for _, pp := range b.pPackets { b.calc(pp.packet, nil, pp.arrivalTime, false) } @@ -415,6 +417,10 @@ func (b *Buffer) Write(pkt []byte) (n int, err error) { packet := make([]byte, len(pkt)) copy(packet, pkt) + if len(b.pPackets) == 0 { + b.logger.Debugw("received first packet") + } + startIdx := 0 overflow := len(b.pPackets) - max(b.maxVideoPkts, b.maxAudioPkts) if overflow > 0 { diff --git a/pkg/sfu/receiver.go b/pkg/sfu/receiver.go index 26daf3644..c03110031 100644 --- a/pkg/sfu/receiver.go +++ b/pkg/sfu/receiver.go @@ -471,6 +471,7 @@ func (w *WebRTCReceiver) AddUpTrack(track TrackRemote, buff *buffer.Buffer) erro buff.SetPaused(w.streamTrackerManager.IsPaused()) go w.forwardRTP(layer, buff) + w.logger.Debugw("starting forwarder", "layer", layer) return nil } @@ -785,6 +786,7 @@ func (w *WebRTCReceiver) forwardRTP(layer int32, buff *buffer.Buffer) { } pktBuf := make([]byte, bucket.MaxPktSize) + w.logger.Debugw("starting forwarding", "layer", layer) for { pkt, err := buff.ReadExtended(pktBuf) if err == io.EOF { @@ -832,10 +834,11 @@ func (w *WebRTCReceiver) forwardRTP(layer int32, buff *buffer.Buffer) { if latency, isHigh := w.forwardStats.Update(pkt.Arrival, mono.UnixNano()); isHigh { w.logger.Infow( "high forwarding latency", - "latency", latency, + "latency", time.Duration(latency), + "queuingLatency", time.Duration(dequeuedAt-pkt.Arrival), "writeCount", writeCount.Load(), - "queuingLatency", dequeuedAt-pkt.Arrival, "isOutOfOrder", pkt.IsOutOfOrder, + "layer", layer, ) } }