Packet level ddebug logs. (#1900)

Only for debugging for a bit. Not for deploy.
This commit is contained in:
Raja Subramanian
2023-07-25 13:53:21 +05:30
committed by GitHub
parent 43fa6f57d1
commit ffd6dc2210

View File

@@ -621,11 +621,27 @@ func (d *DownTrack) WriteRTP(extPkt *buffer.ExtPacket, layer int32) error {
return err
}
var iPID, iTL0PICIDX, iKEYIDX, iTID, oPID, oTL0PICIDX, oKEYIDX, oTID int // TOOD-REMOVE-AFTER-DEBUG
var payload []byte
pool := PacketFactory.Get().(*[]byte)
if len(tp.codecBytes) != 0 {
incomingVP8, _ := extPkt.Payload.(buffer.VP8)
payload = d.translateVP8PacketTo(extPkt.Packet, &incomingVP8, tp.codecBytes, pool)
incomingVP8, ok := extPkt.Payload.(buffer.VP8)
if ok {
iPID = int(incomingVP8.PictureID)
iTL0PICIDX = int(incomingVP8.TL0PICIDX)
iKEYIDX = int(incomingVP8.KEYIDX)
iTID = int(incomingVP8.TID)
var outgoingVP8 buffer.VP8
if uerr := outgoingVP8.Unmarshal(append(tp.codecBytes, 0x0)); uerr == nil {
oPID = int(outgoingVP8.PictureID)
oTL0PICIDX = int(outgoingVP8.TL0PICIDX)
oKEYIDX = int(outgoingVP8.KEYIDX)
oTID = int(outgoingVP8.TID)
}
payload = d.translateVP8PacketTo(extPkt.Packet, &incomingVP8, tp.codecBytes, pool)
}
}
if payload == nil {
payload = (*pool)[:len(extPkt.Packet.Payload)]
@@ -652,6 +668,28 @@ func (d *DownTrack) WriteRTP(extPkt *buffer.ExtPacket, layer int32) error {
return err
}
if d.kind == webrtc.RTPCodecTypeVideo {
d.logger.Debugw(
"packet debug (forwarding)",
"layer", layer,
"isn", extPkt.Packet.SequenceNumber,
"its", extPkt.Packet.Timestamp,
"im", extPkt.Packet.Marker,
"osn", hdr.SequenceNumber,
"ots", hdr.Timestamp,
"om", hdr.Marker,
"len", len(payload),
"iPID", iPID,
"iTL0PICIDX", iTL0PICIDX,
"iKEYIDX", iKEYIDX,
"iTID", iTID,
"oPID", oPID,
"oTL0PICIDX", oTL0PICIDX,
"oKEYIDX", oKEYIDX,
"oTID", oTID,
)
}
d.pacer.Enqueue(pacer.Packet{
Header: hdr,
Extensions: []pacer.ExtensionData{{ID: uint8(d.dependencyDescriptorExtID), Payload: tp.ddBytes}},
@@ -735,6 +773,16 @@ func (d *DownTrack) WritePaddingRTP(bytesToSend int, paddingOnMute bool, forceMa
// last byte of padding has padding size including that byte
payload[RTPPaddingMaxPayloadSize-1] = byte(RTPPaddingMaxPayloadSize)
if d.kind == webrtc.RTPCodecTypeVideo {
d.logger.Debugw(
"packet debug (padding)",
"osn", hdr.SequenceNumber,
"ots", hdr.Timestamp,
"om", hdr.Marker,
"len", len(payload),
)
}
d.pacer.Enqueue(pacer.Packet{
Header: &hdr,
Payload: payload,
@@ -1488,18 +1536,22 @@ func (d *DownTrack) retransmitPackets(nacks []uint16) {
numRepeatedNACKs++
}
var incomingHdr rtp.Header // TODO-REMOVE-AFTER-DEBUG
var pkt rtp.Packet
if err = pkt.Unmarshal(pktBuff[:n]); err != nil {
d.logger.Errorw("unmarshalling rtp packet failed in retransmit", err)
continue
}
incomingHdr = pkt.Header
pkt.Header.SequenceNumber = meta.targetSeqNo
pkt.Header.Timestamp = meta.timestamp
pkt.Header.SSRC = d.ssrc
pkt.Header.PayloadType = d.payloadType
var iPID, iTL0PICIDX, iKEYIDX, iTID, oPID, oTL0PICIDX, oKEYIDX, oTID int // TOOD-REMOVE-AFTER-DEBUG
var payload []byte
pool := PacketFactory.Get().(*[]byte)
if d.mime == "video/vp8" && len(pkt.Payload) > 0 {
if d.mime == "video/vp8" && len(pkt.Payload) > 0 && len(meta.codecBytes) != 0 {
var incomingVP8 buffer.VP8
if err = incomingVP8.Unmarshal(pkt.Payload); err != nil {
d.logger.Errorw("unmarshalling VP8 packet err", err)
@@ -1507,15 +1559,48 @@ func (d *DownTrack) retransmitPackets(nacks []uint16) {
continue
}
if len(meta.codecBytes) != 0 {
payload = d.translateVP8PacketTo(&pkt, &incomingVP8, meta.codecBytes, pool)
iPID = int(incomingVP8.PictureID)
iTL0PICIDX = int(incomingVP8.TL0PICIDX)
iKEYIDX = int(incomingVP8.KEYIDX)
iTID = int(incomingVP8.TID)
var outgoingVP8 buffer.VP8
if uerr := outgoingVP8.Unmarshal(append(meta.codecBytes, 0x0)); uerr == nil {
oPID = int(outgoingVP8.PictureID)
oTL0PICIDX = int(outgoingVP8.TL0PICIDX)
oKEYIDX = int(outgoingVP8.KEYIDX)
oTID = int(outgoingVP8.TID)
}
payload = d.translateVP8PacketTo(&pkt, &incomingVP8, meta.codecBytes, pool)
}
if payload == nil {
payload = (*pool)[:len(pkt.Payload)]
copy(payload, pkt.Payload)
}
if d.kind == webrtc.RTPCodecTypeVideo {
d.logger.Debugw(
"packet debug (retransmit)",
"layer", meta.layer,
"isn", incomingHdr.SequenceNumber,
"its", incomingHdr.Timestamp,
"im", incomingHdr.Marker,
"osn", pkt.Header.SequenceNumber,
"ots", pkt.Header.Timestamp,
"om", pkt.Header.Marker,
"len", len(payload),
"iPID", iPID,
"iTL0PICIDX", iTL0PICIDX,
"iKEYIDX", iKEYIDX,
"iTID", iTID,
"oPID", oPID,
"oTL0PICIDX", oTL0PICIDX,
"oKEYIDX", oKEYIDX,
"oTID", oTID,
)
}
d.pacer.Enqueue(pacer.Packet{
Header: &pkt.Header,
Extensions: []pacer.ExtensionData{{ID: uint8(d.dependencyDescriptorExtID), Payload: meta.ddBytes}},