23 #ifndef OPAL_RTP_METRICS_H
24 #define OPAL_RTP_METRICS_H
44 class RTP_MetricsReport :
public PObject
46 PCLASSINFO(RTP_MetricsReport, PObject);
48 RTP_MetricsReport(
const RTP_ControlFrame::MetricsReport & mr);
50 void PrintOn(ostream &)
const;
58 unsigned roundTripDelay;
71 class RTCP_XR_Metrics :
public PObject
73 PCLASSINFO(RTCP_XR_Metrics, PObject);
80 unsigned payloadBitrate
100 typedef struct TimePeriod {
102 PTimeInterval duration;
108 typedef struct IdPeriod {
109 PTimeInterval duration;
116 typedef struct IePeriod {
118 PTimeInterval duration;
136 void OnPacketReceived();
140 void OnPacketDiscarded();
154 void OnRxSenderReport(
155 const PTime & lastTimestamp,
156 const PTimeInterval & delay
161 unsigned GetLossRate()
const;
165 unsigned GetDiscardRate()
const;
170 unsigned GetBurstDensity()
const;
175 unsigned GetGapDensity()
const;
180 unsigned GetBurstDuration()
const;
185 unsigned GetGapDuration()
const;
190 unsigned GetRoundTripDelay()
const;
194 unsigned GetEndSystemDelay()
const;
198 unsigned GetRFactor()
const;
204 unsigned GetMOS_LQ()
const;
210 unsigned GetMOS_CQ()
const;
213 void InsertMetricsReport(
236 void ResetCounters();
246 unsigned GetEndOfCallRFactor()
const;
258 float GetEndOfCallMOS()
const;
262 float GetIdFactor()
const;
266 float GetPonderateId()
const;
276 float GetEndOfCallIe()
const;
280 float GetPonderateIe()
const;
284 TimePeriod CreateTimePeriod(
286 const PTime & beginTimestamp,
287 const PTime & endTimestamp
292 IdPeriod CreateIdPeriod(
293 const PTime & beginTimestamp,
294 const PTime & endTimestamp
299 IePeriod CreateIePeriod(
300 const TimePeriod & timePeriod
306 float m_lookAheadTime;
307 PINDEX m_payloadSize;
308 unsigned m_payloadBitrate;
311 unsigned m_lostInBurst;
312 unsigned m_packetsReceived;
313 unsigned m_packetsSinceLastLoss;
314 unsigned m_packetsLost;
315 unsigned m_packetsDiscarded;
316 unsigned m_srPacketsReceived;
318 unsigned m_packetsReceivedInGap;
319 unsigned m_packetsLostInGap;
321 unsigned m_packetsReceivedInBurst;
322 unsigned m_packetsLostInBurst;
345 PTimeInterval m_dlsrTime;
348 unsigned m_jitterDelay;
352 std::list<TimePeriod> m_timePeriods;
353 std::list<IePeriod> m_iePeriods;
354 std::list<IdPeriod> m_idPeriods;
356 PeriodType m_currentPeriodType;
357 PTime m_periodBeginTimestamp;
358 PTime m_lastLossTimestamp;
359 PTime m_lastLossInBurstTimestamp;
360 PTime m_lastJitterBufferChangeTimestamp;
365 #endif // OPAL_RTCP_XR
367 #endif // OPAL_METRICS_H
Definition: rtp_session.h:90
uint32_t RTP_SyncSourceId
Definition: rtp.h:46