void RTCPSRPacket::Dump() { RTCPPacket::Dump(); if (!IsKnownFormat()) std::cout << " Unknown format" << std::endl; else { int num = GetReceptionReportCount(); int i; RTPNTPTime t = GetNTPTimestamp(); std::cout << " SSRC of sender: " << GetSenderSSRC() << std::endl; std::cout << " Sender info:" << std::endl; std::cout << " NTP timestamp: " << t.GetMSW() << ":" << t.GetLSW() << std::endl; std::cout << " RTP timestamp: " << GetRTPTimestamp() << std::endl; std::cout << " Packet count: " << GetSenderPacketCount() << std::endl; std::cout << " Octet count: " << GetSenderOctetCount() << std::endl; for (i = 0 ; i < num ; i++) { std::cout << " Report block " << i << std::endl; std::cout << " SSRC: " << GetSSRC(i) << std::endl; std::cout << " Fraction lost: " << (uint32_t)GetFractionLost(i) << std::endl; std::cout << " Packets lost: " << GetLostPacketCount(i) << std::endl; std::cout << " Seq. nr.: " << GetExtendedHighestSequenceNumber(i) << std::endl; std::cout << " Jitter: " << GetJitter(i) << std::endl; std::cout << " LSR: " << GetLSR(i) << std::endl; std::cout << " DLSR: " << GetDLSR(i) << std::endl; } } }
void RTCPBYEPacket::Dump() { RTCPPacket::Dump(); if (!IsKnownFormat()) { std::cout << " Unknown format" << std::endl; return; } int num = GetSSRCCount(); int i; for (i = 0 ; i < num ; i++) std::cout << " SSRC: " << GetSSRC(i) << std::endl; if (HasReasonForLeaving()) { char str[1024]; memcpy(str,GetReasonData(),GetReasonLength()); str[GetReasonLength()] = 0; std::cout << " Reason: " << str << std::endl; } }
void RTPPacket::Dump() { int i; printf("Payload type: %d\n",(int)GetPayloadType()); printf("Extended sequence number: 0x%08x\n",GetExtendedSequenceNumber()); printf("Timestamp: 0x%08x\n",GetTimestamp()); printf("SSRC: 0x%08x\n",GetSSRC()); printf("Marker: %s\n",HasMarker()?"yes":"no"); printf("CSRC count: %d\n",GetCSRCCount()); for (i = 0 ; i < GetCSRCCount() ; i++) printf(" CSRC[%02d]: 0x%08x\n",i,GetCSRC(i)); printf("Payload: %s\n",GetPayloadData()); printf("Payload length: %d\n",GetPayloadLength()); printf("Packet length: %d\n",GetPacketLength()); printf("Extension: %s\n",HasExtension()?"yes":"no"); if (HasExtension()) { printf(" Extension ID: 0x%04x\n",GetExtensionID()); printf(" Extension data: %s\n",GetExtensionData()); printf(" Extension length: %d\n",GetExtensionLength()); } }
void RTCPRRPacket::Dump() { RTCPPacket::Dump(); if (!IsKnownFormat()) std::cout << " Unknown format" << std::endl; else { int num = GetReceptionReportCount(); int i; std::cout << " SSRC of sender: " << GetSenderSSRC() << std::endl; for (i = 0 ; i < num ; i++) { std::cout << " Report block " << i << std::endl; std::cout << " SSRC: " << GetSSRC(i) << std::endl; std::cout << " Fraction lost: " << (u_int32_t)GetFractionLost(i) << std::endl; std::cout << " Packets lost: " << GetLostPacketCount(i) << std::endl; std::cout << " Seq. nr.: " << GetExtendedHighestSequenceNumber(i) << std::endl; std::cout << " Jitter: " << GetJitter(i) << std::endl; std::cout << " LSR: " << GetLSR(i) << std::endl; std::cout << " DLSR: " << GetDLSR(i) << std::endl; } } }
/** * * Method Name: IncrementCounts * * * Inputs: unsigned long ulOctetCount - RTP Octets Sent * * Outputs: None * * Returns: void * * Description: The IncrementCounts method shall add the number of octets * passed to the cumulative octet count stored as an attribute * to this object. Each call to IncrementCounts() shall also * increment the packet count by 1. * * Usage Notes: * */ void CSenderReport::IncrementCounts(uint32_t ulOctetCount, rtpts_t RTPTimestampBase, rtpts_t RTPTimestamp, ssrc_t ssrc) { uint32_t ntp_secs; uint32_t ntp_usec; OsTime now; OsDateTime::getCurTime(now); // Load Most Significant word with Wall time seconds ntp_secs = now.seconds(); // Load Least Significant word with Wall time microseconds ntp_usec = now.usecs(); // OsSysLog::add(FAC_MP, PRI_DEBUG, "CSenderReport::IncrementCounts: this=%p, NTP = {%2d.%06d}, octets=%04d, rtpTSBase=%u=0x%08X, rtpTS=%u=0x%08X, SSRC=0x%08X,0x%08X", this, (ntp_secs&0x3F), ntp_usec, ulOctetCount, RTPTimestampBase, RTPTimestampBase, RTPTimestamp, RTPTimestamp, ssrc, GetSSRC()); OsLock lock(SR_sMultiThreadLock); if ((m_ulRTPTimestampBase != RTPTimestampBase) || ((0xFFFFFFFF & GetSSRC()) != (0xFFFFFFFF & ssrc))) { SetSSRC(ssrc); // NOTE: Calls ResetStatistics() m_ulRTPTimestampBase = RTPTimestampBase; } // We will increment the packet count by 1 and the Octet count by the // number specified within the octet count m_ulPacketCount++; m_ulOctetCount += ulOctetCount; switch (m_iTSCollectState) { case 0: // Initial state, save first values m_ulRTPTimestamps[0] = RTPTimestamp; m_ulNTPSeconds[0] = ntp_secs; m_ulNTPuSecs[0] = ntp_usec; m_iTSCollectState = 1; break; case 1: // Second state, wait for first value to change if (m_ulRTPTimestamps[0] != RTPTimestamp) { m_ulRTPTimestamps[1] = RTPTimestamp; // needed for state #2 m_ulRTPTimestamps[0] = RTPTimestamp; m_ulNTPSeconds[0] = ntp_secs; m_ulNTPuSecs[0] = ntp_usec; m_iTSCollectState = 2; } break; case 2: // Save last values for the first time case 3: // Steady state, save last values, allow SR construction if (m_ulRTPTimestamps[1] != RTPTimestamp) { m_ulRTPTimestamps[1] = RTPTimestamp; m_ulNTPSeconds[1] = ntp_secs; m_ulNTPuSecs[1] = ntp_usec; m_iTSCollectState = 3; } break; default: assert(0); } // Set the Media Sent flag so that we know to transmit a Sender // Report in the next reporting period. m_bMediaSent = TRUE; }