コード例 #1
0
ファイル: rtcpsrpacket.cpp プロジェクト: ChiwenLin/JRTPLIB
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;
		}
	}	
}
コード例 #2
0
ファイル: rtcpbyepacket.cpp プロジェクト: Huangzefeng/Monal
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;
	}
}
コード例 #3
0
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());
	}
}
コード例 #4
0
ファイル: rtcprrpacket.cpp プロジェクト: AlekSi/Jabbin
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;
		}
	}	
}
コード例 #5
0
ファイル: SenderReport.cpp プロジェクト: John-Chan/sipXtapi
/**
 *
 * 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;

}