From a101387b26fc1c6afbf0c3b8c57147041725808e Mon Sep 17 00:00:00 2001 From: Alexey Khit Date: Sat, 2 Sep 2023 06:31:34 +0300 Subject: [PATCH] Add debug logger --- pkg/debug/debug.go | 58 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 pkg/debug/debug.go diff --git a/pkg/debug/debug.go b/pkg/debug/debug.go new file mode 100644 index 00000000..918cddfb --- /dev/null +++ b/pkg/debug/debug.go @@ -0,0 +1,58 @@ +package debug + +import ( + "fmt" + "time" + + "github.com/pion/rtp" +) + +func Logger(include func(packet *rtp.Packet) bool) func(packet *rtp.Packet) { + var lastTime = time.Now() + var lastTS uint32 + + var secCnt int + var secSize int + var secTS uint32 + var secTime time.Time + + return func(packet *rtp.Packet) { + if include != nil && !include(packet) { + return + } + + now := time.Now() + + fmt.Printf( + "%s: size:%6d, ts:%10d, type:%2d, ssrc:%d, seq:%5d, mark:%t, dts:%4d, dtime:%3d\n", + now.Format("15:04:05.000"), + len(packet.Payload), packet.Timestamp, packet.PayloadType, packet.SSRC, packet.SequenceNumber, packet.Marker, + packet.Timestamp-lastTS, now.Sub(lastTime).Milliseconds(), + ) + + lastTS = packet.Timestamp + lastTime = now + + if secTS == 0 { + secTS = lastTS + secTime = now + return + } + + if dt := now.Sub(secTime); dt > time.Second { + fmt.Printf( + "%s: size:%6d, cnt:%d, dts: %d, dtime:%d\n", + now.Format("15:04:05.000"), + secSize, secCnt, lastTS-secTS, dt.Milliseconds(), + ) + + secCnt = 0 + secSize = 0 + secTS = lastTS + secTime = now + } + + secCnt++ + secSize += len(packet.Payload) + } +}