mirror of
https://github.com/AlexxIT/go2rtc.git
synced 2025-10-05 08:16:55 +08:00
59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
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)
|
|
}
|
|
}
|