diff options
author | Henri Herscher <henri@oreka.org> | 2006-11-21 22:07:23 +0000 |
---|---|---|
committer | Henri Herscher <henri@oreka.org> | 2006-11-21 22:07:23 +0000 |
commit | 4438e38dd78805aa4ec8afdc1553c7d205e9b25e (patch) | |
tree | 9aa31134a08fe40a80189a781929721114f65a2d /orkaudio/audiocaptureplugins/voip | |
parent | 912e5f6d9ece10118c2d0c6e977cbd562c58ac22 (diff) |
Now logging whether a session has seen duplicate RTP traffic and the maximum delta in sequence number seen during the capture (logged at session stop).
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@356 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orkaudio/audiocaptureplugins/voip')
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/RtpSession.cpp | 22 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/RtpSession.h | 2 |
2 files changed, 23 insertions, 1 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp index 18238af..3151d0c 100644 --- a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp +++ b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp @@ -45,12 +45,14 @@ RtpSession::RtpSession(CStdString& trackingId) m_stopped = false; m_rtpTimestampCorrectiveDelta = 0; m_beginDate = 0; + m_hasDuplicateRtp = false; + m_highestRtpSeqNumDelta = 0; } void RtpSession::Stop() { CStdString logMsg; - logMsg.Format("[%s] %s Session stop, num RTP packets:%d, last updated:%u", m_trackingId, m_capturePort, m_numRtpPackets, m_lastUpdated); + logMsg.Format("[%s] %s Session stop, numRtpPkts:%d dupl:%d seqDelta:%d lastUpdated:%u", m_trackingId, m_capturePort, m_numRtpPackets, m_hasDuplicateRtp, m_highestRtpSeqNumDelta, m_lastUpdated); LOG4CXX_INFO(m_log, logMsg); if(m_started && !m_stopped) @@ -373,8 +375,17 @@ bool RtpSession::AddRtpPacket(RtpPacketInfoRef& rtpPacket) { if(rtpPacket->m_timestamp == m_lastRtpPacketSide1->m_timestamp) { + m_hasDuplicateRtp = true; return true; // dismiss duplicate RTP packet } + else + { + int delta = rtpPacket->m_seqNum - m_lastRtpPacketSide1->m_seqNum; + if(delta > m_highestRtpSeqNumDelta) + { + m_highestRtpSeqNumDelta = delta; + } + } m_lastRtpPacketSide1 = rtpPacket; channel = 1; } @@ -394,8 +405,17 @@ bool RtpSession::AddRtpPacket(RtpPacketInfoRef& rtpPacket) { if(rtpPacket->m_timestamp == m_lastRtpPacketSide2->m_timestamp) { + m_hasDuplicateRtp = true; return true; // dismiss duplicate RTP packet } + else + { + int delta = rtpPacket->m_seqNum - m_lastRtpPacketSide2->m_seqNum; + if(delta > m_highestRtpSeqNumDelta) + { + m_highestRtpSeqNumDelta = delta; + } + } } m_lastRtpPacketSide2 = rtpPacket; channel = 2; diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.h b/orkaudio/audiocaptureplugins/voip/RtpSession.h index 5166cc1..1ed85f7 100644 --- a/orkaudio/audiocaptureplugins/voip/RtpSession.h +++ b/orkaudio/audiocaptureplugins/voip/RtpSession.h @@ -115,6 +115,8 @@ private: bool m_rtpTimestampCorrectiveSign; time_t m_beginDate; CStdString m_orkUid; + bool m_hasDuplicateRtp; + unsigned int m_highestRtpSeqNumDelta; }; typedef boost::shared_ptr<RtpSession> RtpSessionRef; |