mirror of
https://github.com/livekit/livekit.git
synced 2026-10-23 02:12:44 +00:00
LK logger with context in SFU (#391)
* LK logger with context in SFU * Move buff.SetLogger into sfu.WebRTCReceiver
This commit is contained in:
1 parent
3d132730f9
commit
9db2bd22df
12 files changed
+46
-50
No files matched your search
+12
-11
@@ -9,7 +9,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/gammazero/deque"
|
||||
"github.com/go-logr/logr"
|
||||
"github.com/livekit/protocol/logger"
|
||||
"github.com/pion/rtcp"
|
||||
"github.com/pion/rtp"
|
||||
"github.com/pion/sdp/v3"
|
||||
@@ -20,9 +20,6 @@ const (
|
||||
ReportDelta = 1e9
|
||||
)
|
||||
|
||||
// Logger is an implementation of logr.Logger. If is not provided - will be turned off.
|
||||
var Logger = logr.Discard()
|
||||
|
||||
type pendingPackets struct {
|
||||
arrivalTime int64
|
||||
packet []byte
|
||||
@@ -92,7 +89,7 @@ type Buffer struct {
|
||||
feedbackTWCC func(sn uint16, timeNS int64, marker bool)
|
||||
|
||||
// logger
|
||||
logger logr.Logger
|
||||
logger logger.Logger
|
||||
}
|
||||
|
||||
type Stats struct {
|
||||
@@ -110,18 +107,22 @@ type Options struct {
|
||||
}
|
||||
|
||||
// NewBuffer constructs a new Buffer
|
||||
func NewBuffer(ssrc uint32, vp, ap *sync.Pool, logger logr.Logger) *Buffer {
|
||||
func NewBuffer(ssrc uint32, vp, ap *sync.Pool) *Buffer {
|
||||
b := &Buffer{
|
||||
mediaSSRC: ssrc,
|
||||
videoPool: vp,
|
||||
audioPool: ap,
|
||||
logger: logger,
|
||||
logger: logger.Logger(logger.GetLogger()), // will be reset with correct context via SetLogger
|
||||
}
|
||||
b.bitrate.Store(make([]int64, len(b.bitrateHelper)))
|
||||
b.extPackets.SetMinCapacity(7)
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *Buffer) SetLogger(logger logger.Logger) {
|
||||
b.logger = logger
|
||||
}
|
||||
|
||||
func (b *Buffer) Bind(params webrtc.RTPParameters, codec webrtc.RTPCodecCapability, o Options) {
|
||||
b.Lock()
|
||||
defer b.Unlock()
|
||||
@@ -152,13 +153,13 @@ func (b *Buffer) Bind(params webrtc.RTPParameters, codec webrtc.RTPCodecCapabili
|
||||
for _, fb := range codec.RTCPFeedback {
|
||||
switch fb.Type {
|
||||
case webrtc.TypeRTCPFBGoogREMB:
|
||||
b.logger.V(1).Info("Setting feedback", "type", "webrtc.TypeRTCPFBGoogREMB")
|
||||
b.logger.Infow("Setting feedback", "type", webrtc.TypeRTCPFBGoogREMB)
|
||||
b.remb = true
|
||||
case webrtc.TypeRTCPFBTransportCC:
|
||||
b.logger.V(1).Info("Setting feedback", "type", webrtc.TypeRTCPFBTransportCC)
|
||||
b.logger.Infow("Setting feedback", "type", webrtc.TypeRTCPFBTransportCC)
|
||||
b.twcc = true
|
||||
case webrtc.TypeRTCPFBNACK:
|
||||
b.logger.V(1).Info("Setting feedback", "type", webrtc.TypeRTCPFBNACK)
|
||||
b.logger.Infow("Setting feedback", "type", webrtc.TypeRTCPFBNACK)
|
||||
b.nacker = NewNACKQueue()
|
||||
b.nack = true
|
||||
}
|
||||
@@ -178,7 +179,7 @@ func (b *Buffer) Bind(params webrtc.RTPParameters, codec webrtc.RTPCodecCapabili
|
||||
b.pPackets = nil
|
||||
b.bound = true
|
||||
|
||||
b.logger.V(1).Info("NewBuffer", "MaxBitRate", o.MaxBitRate)
|
||||
b.logger.Infow("NewBuffer", "MaxBitRate", o.MaxBitRate)
|
||||
}
|
||||
|
||||
// Write adds an RTP Packet, out of order, new packet may be arrived later
|
||||
|
||||
@@ -37,10 +37,9 @@ func TestNack(t *testing.T) {
|
||||
return &b
|
||||
},
|
||||
}
|
||||
logger := Logger
|
||||
|
||||
t.Run("nack normal", func(t *testing.T) {
|
||||
buff := NewBuffer(123, pool, pool, logger)
|
||||
buff := NewBuffer(123, pool, pool)
|
||||
buff.codecType = webrtc.RTPCodecTypeVideo
|
||||
assert.NotNil(t, buff)
|
||||
var wg sync.WaitGroup
|
||||
@@ -82,7 +81,7 @@ func TestNack(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("nack with seq wrap", func(t *testing.T) {
|
||||
buff := NewBuffer(123, pool, pool, logger)
|
||||
buff := NewBuffer(123, pool, pool)
|
||||
buff.codecType = webrtc.RTPCodecTypeVideo
|
||||
assert.NotNil(t, buff)
|
||||
var wg sync.WaitGroup
|
||||
@@ -187,8 +186,7 @@ func TestNewBuffer(t *testing.T) {
|
||||
return &b
|
||||
},
|
||||
}
|
||||
logger := Logger
|
||||
buff := NewBuffer(123, pool, pool, logger)
|
||||
buff := NewBuffer(123, pool, pool)
|
||||
buff.codecType = webrtc.RTPCodecTypeVideo
|
||||
assert.NotNil(t, buff)
|
||||
assert.NotNil(t, TestPackets)
|
||||
@@ -217,7 +215,7 @@ func TestFractionLostReport(t *testing.T) {
|
||||
return &b
|
||||
},
|
||||
}
|
||||
buff := NewBuffer(123, pool, pool, Logger)
|
||||
buff := NewBuffer(123, pool, pool)
|
||||
buff.codecType = webrtc.RTPCodecTypeVideo
|
||||
assert.NotNil(t, buff)
|
||||
var wg sync.WaitGroup
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"io"
|
||||
"sync"
|
||||
|
||||
"github.com/go-logr/logr"
|
||||
"github.com/pion/transport/packetio"
|
||||
)
|
||||
|
||||
@@ -14,19 +13,9 @@ type Factory struct {
|
||||
audioPool *sync.Pool
|
||||
rtpBuffers map[uint32]*Buffer
|
||||
rtcpReaders map[uint32]*RTCPReader
|
||||
logger logr.Logger
|
||||
}
|
||||
|
||||
func NewBufferFactory(trackingPackets int, logger logr.Logger) *Factory {
|
||||
// Enable package wide logging for non-method functions.
|
||||
// If logger is empty - use default Logger.
|
||||
// Logger is a public variable in buffer package.
|
||||
if logger == (logr.Logger{}) {
|
||||
logger = Logger
|
||||
} else {
|
||||
Logger = logger
|
||||
}
|
||||
|
||||
func NewBufferFactory(trackingPackets int) *Factory {
|
||||
return &Factory{
|
||||
videoPool: &sync.Pool{
|
||||
New: func() interface{} {
|
||||
@@ -42,7 +31,6 @@ func NewBufferFactory(trackingPackets int, logger logr.Logger) *Factory {
|
||||
},
|
||||
rtpBuffers: make(map[uint32]*Buffer),
|
||||
rtcpReaders: make(map[uint32]*RTCPReader),
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +54,7 @@ func (f *Factory) GetOrNew(packetType packetio.BufferPacketType, ssrc uint32) io
|
||||
if reader, ok := f.rtpBuffers[ssrc]; ok {
|
||||
return reader
|
||||
}
|
||||
buffer := NewBuffer(ssrc, f.videoPool, f.audioPool, f.logger)
|
||||
buffer := NewBuffer(ssrc, f.videoPool, f.audioPool)
|
||||
f.rtpBuffers[ssrc] = buffer
|
||||
buffer.OnClose(func() {
|
||||
f.Lock()
|
||||
|
||||
@@ -4,6 +4,8 @@ import (
|
||||
"encoding/binary"
|
||||
"errors"
|
||||
"sync/atomic"
|
||||
|
||||
"github.com/livekit/protocol/logger"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -267,7 +269,7 @@ func IsH264Keyframe(payload []byte) bool {
|
||||
return true
|
||||
} else if n >= 24 {
|
||||
// is this legal?
|
||||
Logger.V(0).Info("Non-simple NALU within a STAP")
|
||||
logger.Infow("Non-simple NALU within a STAP")
|
||||
}
|
||||
i += int(length)
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user