summaryrefslogtreecommitdiff
path: root/orkaudio/audiocaptureplugins/voip
diff options
context:
space:
mode:
Diffstat (limited to 'orkaudio/audiocaptureplugins/voip')
-rw-r--r--orkaudio/audiocaptureplugins/voip/RtpSession.cpp22
-rw-r--r--orkaudio/audiocaptureplugins/voip/RtpSession.h2
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;