27 #ifndef OPAL_RTP_METRICS_H
28 #define OPAL_RTP_METRICS_H
67 typedef struct TimePeriod {
69 PTimeInterval duration;
75 typedef struct IdPeriod {
76 PTimeInterval duration;
83 typedef struct IePeriod {
85 PTimeInterval duration;
94 std::list<TimePeriod> timePeriods;
95 std::list<IePeriod> iePeriods;
96 std::list<IdPeriod> idPeriods;
114 void OnPacketReceived();
118 void OnPacketDiscarded();
132 void OnRxSenderReport(
143 BYTE GetDiscardRate();
148 BYTE GetBurstDensity();
153 BYTE GetGapDensity();
158 PUInt16b GetBurstDuration();
163 PUInt16b GetGapDuration();
168 PUInt16b GetRoundTripDelay ();
172 PUInt16b GetEndSystemDelay();
205 void ResetCounters();
215 BYTE EndOfCallRFactor();
227 float EndOfCallMOS();
235 float GetPonderateId();
245 float GetEndOfCallIe();
249 float GetPonderateIe();
253 TimePeriod createTimePeriod(
255 PTime beginTimestamp,
261 IdPeriod createIdPeriod(
262 PTime beginTimestamp,
268 IePeriod createIePeriod(
269 TimePeriod timePeriod
274 DWORD packetsReceived;
275 DWORD packetsSinceLastLoss;
277 DWORD packetsDiscarded;
278 DWORD srPacketsReceived;
280 DWORD packetsReceivedInGap;
281 DWORD packetsLostInGap;
283 DWORD packetsReceivedInBurst;
284 DWORD packetsLostInBurst;
307 PTimeInterval dlsrTime;
313 unsigned payloadBitrate;
317 bool isPayloadTypeOK;
323 PeriodType currentPeriodType;
324 PTime periodBeginTimestamp;
325 PTime lastLossTimestamp;
326 PTime lastLossInBurstTimestamp;
327 PTime lastJitterBufferChangeTimestamp;
332 #endif // OPAL_RTCP_XR
334 #endif // OPAL_METRICS_H