13 CslRtpSession::CslRtpSession(
unsigned numChans,
unsigned bufferFrames)
14 : mRtpBuffer(numChans, bufferFrames),
15 mTmpBuffer(1,
CGestalt::maxBufferFrames())
60 RTCPPacket * rtcpPacket;
63 RTCPSRPacket * srPacket; RTCPRRPacket * rrPacket; RTCPSDESPacket * sdesPacket;
64 RTCPBYEPacket * byePacket; RTCPAPPPacket * appPacket; RTCPUnknownPacket * unknownPacket;
67 cout <<
"RTCP Compound Packet (" << pack->GetCompoundPacketLength() <<
" bytes) \n";
68 unsigned i = 0, chunkCnt = 0;
71 pack->GotoFirstPacket();
72 while (0 != (rtcpPacket = pack->GetNextPacket()))
75 cout <<
" 1: RTCP type " << rtcpPacket->GetPacketType() <<
" ";
76 switch (rtcpPacket->GetPacketType()) {
79 srPacket = (RTCPSRPacket*) rtcpPacket;
80 cout <<
"SenderSSRC: " << srPacket->GetSenderSSRC() <<
" ";
81 cout <<
"RTPtime: " << srPacket->GetRTPTimestamp() <<
"\n";
82 cout <<
" PackCnt: " << srPacket->GetSenderPacketCount() <<
" ";
83 cout <<
"OctetCnt: " << srPacket->GetSenderOctetCount() <<
"\n";
84 for (
int j = 0; j < srPacket->GetReceptionReportCount(); j++) {
85 cout <<
" RR# " << i <<
": ";
86 cout <<
"SSRC: " << srPacket->GetSSRC(i) <<
" ";
87 cout <<
"%Lost: " << 100*srPacket->GetFractionLost(i) <<
" ";
88 cout <<
"#Lost: " << srPacket->GetLostPacketCount(i) <<
" ";
89 cout <<
"HighestSeq: " << srPacket->GetExtendedHighestSequenceNumber(i) <<
" ";
90 cout <<
"Jitter: " << srPacket->GetJitter(i) <<
" ";
91 cout <<
"LSR: " << srPacket->GetLSR(i) <<
" ";
92 cout <<
"DLSR: " << srPacket->GetDLSR(i) <<
"\n";
97 rrPacket = (RTCPRRPacket*) rtcpPacket;
98 cout <<
"SenderSSRC: " << rrPacket->GetSenderSSRC() <<
" ";
99 cout <<
"ReportCnt: " << rrPacket->GetReceptionReportCount() <<
"\n";
100 for (
int j = 0; j < rrPacket->GetReceptionReportCount(); j++) {
101 cout <<
" RR# " << i <<
": ";
102 cout <<
"SSRC: " << rrPacket->GetSSRC(i) <<
" ";
103 cout <<
"%Lost: " << 100*rrPacket->GetFractionLost(i) <<
" ";
104 cout <<
"#Lost: " << rrPacket->GetLostPacketCount(i) <<
"\n";
105 cout <<
" HighestSeq: " << rrPacket->GetExtendedHighestSequenceNumber(i) <<
" ";
106 cout <<
"Jitter: " << rrPacket->GetJitter(i) <<
"\n";
107 cout <<
" LSR: " << rrPacket->GetLSR(i) <<
" ";
108 cout <<
"DLSR: " << rrPacket->GetDLSR(i) <<
"\n";
111 case RTCPPacket::SDES:
112 sdesPacket = (RTCPSDESPacket*) rtcpPacket;
114 cout << sdesPacket->GetChunkCount() <<
" chunks \n";
115 avail = sdesPacket->GotoFirstChunk();
119 cout <<
" (Chunk #" << chunkCnt <<
") ";
120 cout <<
" SSRC: " << sdesPacket->GetChunkSSRC() <<
"\n";
121 avail = sdesPacket->GotoNextChunk();
123 avail = sdesPacket->GotoFirstItem();
127 cout <<
" (Item #" << chunkCnt <<
") ";
128 cout <<
" Type: " << sdesPacket->GetItemType() <<
" ";
129 switch (sdesPacket->GetItemType()) {
130 case RTCPSDESPacket::None: cout <<
"(None) ";
break;
131 case RTCPSDESPacket::CNAME: cout <<
"(CNAME) ";
break;
132 case RTCPSDESPacket::NAME: cout <<
"(NAME) ";
break;
133 case RTCPSDESPacket::EMAIL: cout <<
"(EMAIL) ";
break;
134 case RTCPSDESPacket::PHONE: cout <<
"(PHONE) ";
break;
135 case RTCPSDESPacket::LOC: cout <<
"(LOC) ";
break;
136 case RTCPSDESPacket::TOOL: cout <<
"(TOOL) ";
break;
137 case RTCPSDESPacket::NOTE: cout <<
"(NOTE) ";
break;
138 case RTCPSDESPacket::PRIV: cout <<
"(PRIV) ";
break;
139 case RTCPSDESPacket::Unknown: cout <<
"(Unknown) ";
break;
141 cout <<
"(" << sdesPacket->GetItemLength() <<
" bytes) ";
142 cout << (
char *) sdesPacket->GetItemData() <<
"\n";
143 avail = sdesPacket->GotoNextItem();
146 case RTCPPacket::BYE:
149 case RTCPPacket::APP:
152 case RTCPPacket::Unknown:
153 cout <<
"(Unknown) \n";
170 unsigned payloadLength = pack->GetPayloadLength() /
sizeof(short);
171 RTPTime diffTime(receivetime.CurrentTime());
172 diffTime -= receivetime;
180 if ((pack->GetSequenceNumber() % 100) == 0) {
181 cout <<
"Net latency: ";
182 cout << diffTime.GetDouble() * 1000. <<
"ms "
185 <<
"Seq# " << pack->GetExtendedSequenceNumber() <<
" "
186 <<
"Timestamp " << pack->GetTimestamp() <<
"\n";
236 cout <<
"SSRC Collision!" <<
"\n";
239 const u_int8_t *cname,
size_t cnamelength)
241 cout <<
"CNAME Collision: " << (
char *) cname <<
"\n";
246 cout <<
"New source: SSRC: " << srcdat->GetSSRC() <<
" ";
247 cout <<
"RTP: " << srcdat->GetRTPDataAddress() <<
" ";
248 cout <<
"RTCP: " << srcdat->GetRTCPDataAddress() <<
"\n";
255 cout <<
"Source removed: SSRC: " << srcdat->GetSSRC() <<
" ";
256 cout <<
"RTP: " << srcdat->GetRTPDataAddress() <<
" ";
257 cout <<
"RTCP: " << srcdat->GetRTCPDataAddress() <<
"\n";
262 cout <<
"Timeout: SSRC: " << srcdat->GetSSRC() <<
" ";
263 cout <<
"RTP: " << srcdat->GetRTPDataAddress() <<
" ";
264 cout <<
"RTCP: " << srcdat->GetRTCPDataAddress() <<
"\n";
269 cout <<
"BYE Timeout: SSRC: " << srcdat->GetSSRC() <<
" ";
270 cout <<
"RTP: " << srcdat->GetRTPDataAddress() <<
" ";
271 cout <<
"RTCP: " << srcdat->GetRTCPDataAddress() <<
"\n";
275 const RTPAddress *senderaddress)
277 cout <<
"APP Packet: SSRC: " << apppacket->GetSSRC() <<
" ";
278 cout << (
char *) apppacket->GetName() <<
": ";
279 cout <<
"(" << apppacket->GetAPPDataLength() <<
" bytes)\n";
283 const RTPAddress *senderaddress)
285 cout <<
"Unknown Packet Type: ";
286 cout <<
"(" << rtcppack->GetPacketLength() <<
" bytes)\n";
290 const RTPAddress *senderaddress)
292 cout <<
"Unknown Packet Type: ";
293 cout <<
"(" << rtcppack->GetPacketLength() <<
" bytes)\n";
298 cout <<
"Note Timeout: SSRC: " << srcdat->GetSSRC() <<
" ";
299 cout <<
"RTP: " << srcdat->GetRTPDataAddress() <<
" ";
300 cout <<
"RTCP: " << srcdat->GetRTCPDataAddress() <<
"\n";
305 cout <<
"BYE Packet: SSRC: " << srcdat->GetSSRC() <<
" ";
306 cout <<
"RTP: " << srcdat->GetRTPDataAddress() <<
" ";
307 cout <<
"RTCP: " << srcdat->GetRTCPDataAddress() <<
"\n";