diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2015-08-26 13:48:13 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2015-08-26 13:48:13 +0200 |
| commit | b6a6b481588f4589d037400476a60978d11b792f (patch) | |
| tree | 1d809fcdc554fc80d33dff29c1d1051e9d66e7be | |
| parent | 7cfe1770d153512b538c97856c06436b2c34217b (diff) | |
| download | qxmpp-b6a6b481588f4589d037400476a60978d11b792f.tar.gz | |
RTCP: expose Receiver Report data
| -rw-r--r-- | src/base/QXmppRtcpPacket.cpp | 74 | ||||
| -rw-r--r-- | src/base/QXmppRtcpPacket.h | 17 | ||||
| -rw-r--r-- | tests/qxmpprtcppacket/tst_qxmpprtcppacket.cpp | 10 |
3 files changed, 88 insertions, 13 deletions
diff --git a/src/base/QXmppRtcpPacket.cpp b/src/base/QXmppRtcpPacket.cpp index 11715929..787c4ad1 100644 --- a/src/base/QXmppRtcpPacket.cpp +++ b/src/base/QXmppRtcpPacket.cpp @@ -62,11 +62,11 @@ public: quint32 ssrc; quint8 fractionLost; - quint32 cumulativeLost; + quint32 totalLost; quint32 highestSequence; quint32 jitter; - quint32 srStamp; - quint32 srDelay; + quint32 lsr; + quint32 dlsr; }; class QXmppRtcpSenderInfoPrivate : public QSharedData @@ -375,6 +375,46 @@ QXmppRtcpReceiverReport::~QXmppRtcpReceiverReport() { } +quint32 QXmppRtcpReceiverReport::dlsr() const +{ + return d->dlsr; +} + +void QXmppRtcpReceiverReport::setDlsr(quint32 dlsr) +{ + d->dlsr = dlsr; +} + +quint8 QXmppRtcpReceiverReport::fractionLost() const +{ + return d->fractionLost; +} + +void QXmppRtcpReceiverReport::setFractionLost(quint8 fractionLost) +{ + d->fractionLost = fractionLost; +} + +quint32 QXmppRtcpReceiverReport::jitter() const +{ + return d->jitter; +} + +void QXmppRtcpReceiverReport::setJitter(quint32 jitter) +{ + d->jitter = jitter; +} + +quint32 QXmppRtcpReceiverReport::lsr() const +{ + return d->lsr; +} + +void QXmppRtcpReceiverReport::setLsr(quint32 lsr) +{ + d->lsr = lsr; +} + quint32 QXmppRtcpReceiverReport::ssrc() const { return d->ssrc; @@ -385,14 +425,24 @@ void QXmppRtcpReceiverReport::setSsrc(quint32 ssrc) d->ssrc = ssrc; } +quint32 QXmppRtcpReceiverReport::totalLost() const +{ + return d->totalLost; +} + +void QXmppRtcpReceiverReport::setTotalLost(quint32 totalLost) +{ + d->totalLost = totalLost; +} + QXmppRtcpReceiverReportPrivate::QXmppRtcpReceiverReportPrivate() : ssrc(0) , fractionLost(0) - , cumulativeLost(0) + , totalLost(0) , highestSequence(0) , jitter(0) - , srStamp(0) - , srDelay(0) + , lsr(0) + , dlsr(0) { } @@ -402,22 +452,22 @@ bool QXmppRtcpReceiverReportPrivate::read(QDataStream &stream) stream >> ssrc; stream >> tmp; fractionLost = (tmp >> 24) & 0xff; - cumulativeLost = tmp & 0xffffff; + totalLost = tmp & 0xffffff; stream >> highestSequence; stream >> jitter; - stream >> srStamp; - stream >> srDelay; + stream >> lsr; + stream >> dlsr; return stream.status() == QDataStream::Ok; } void QXmppRtcpReceiverReportPrivate::write(QDataStream &stream) const { stream << ssrc; - stream << quint32((fractionLost << 24) | cumulativeLost); + stream << quint32((fractionLost << 24) | (totalLost & 0xffffff)); stream << highestSequence; stream << jitter; - stream << srStamp; - stream << srDelay; + stream << lsr; + stream << dlsr; } /// Constructs an empty sender report. diff --git a/src/base/QXmppRtcpPacket.h b/src/base/QXmppRtcpPacket.h index 872e5b31..f7da2355 100644 --- a/src/base/QXmppRtcpPacket.h +++ b/src/base/QXmppRtcpPacket.h @@ -91,8 +91,23 @@ public: QXmppRtcpReceiverReport(const QXmppRtcpReceiverReport &other); ~QXmppRtcpReceiverReport(); + quint32 dlsr() const; + void setDlsr(quint32 dlsr); + + quint8 fractionLost() const; + void setFractionLost(quint8 fractionLost); + + quint32 jitter() const; + void setJitter(quint32 jitter); + + quint32 lsr() const; + void setLsr(quint32 lsr); + quint32 ssrc() const; - void setSsrc(const quint32 ssrc); + void setSsrc(quint32 ssrc); + + quint32 totalLost() const; + void setTotalLost(quint32 totalLost); private: friend class QXmppRtcpPacket; diff --git a/tests/qxmpprtcppacket/tst_qxmpprtcppacket.cpp b/tests/qxmpprtcppacket/tst_qxmpprtcppacket.cpp index 9a3b6540..47af604d 100644 --- a/tests/qxmpprtcppacket/tst_qxmpprtcppacket.cpp +++ b/tests/qxmpprtcppacket/tst_qxmpprtcppacket.cpp @@ -101,7 +101,12 @@ void tst_QXmppRtcpPacket::testReceiverReport() QCOMPARE(packet.goodbyeReason(), QString()); QCOMPARE(packet.goodbyeSsrcs().size(), 0); QCOMPARE(packet.receiverReports().size(), 1); + QCOMPARE(packet.receiverReports()[0].dlsr(), quint32(4294695650)); + QCOMPARE(packet.receiverReports()[0].fractionLost(), quint8(0)); + QCOMPARE(packet.receiverReports()[0].jitter(), quint32(16)); + QCOMPARE(packet.receiverReports()[0].lsr(), quint32(0)); QCOMPARE(packet.receiverReports()[0].ssrc(), quint32(679927712)); + QCOMPARE(packet.receiverReports()[0].totalLost(), quint32(0)); QCOMPARE(packet.senderInfo().ntpStamp(), quint64(0)); QCOMPARE(packet.senderInfo().octetCount(), quint32(0)); QCOMPARE(packet.senderInfo().packetCount(), quint32(0)); @@ -144,7 +149,12 @@ void tst_QXmppRtcpPacket::testSenderReportWithReceiverReport() QCOMPARE(packet.goodbyeReason(), QString()); QCOMPARE(packet.goodbyeSsrcs().size(), 0); QCOMPARE(packet.receiverReports().size(), 1); + QCOMPARE(packet.receiverReports()[0].dlsr(), quint32(4294694405)); + QCOMPARE(packet.receiverReports()[0].fractionLost(), quint8(0)); + QCOMPARE(packet.receiverReports()[0].jitter(), quint32(37)); + QCOMPARE(packet.receiverReports()[0].lsr(), quint32(0)); QCOMPARE(packet.receiverReports()[0].ssrc(), quint32(2176590418)); + QCOMPARE(packet.receiverReports()[0].totalLost(), quint32(0)); QCOMPARE(packet.senderInfo().ntpStamp(), quint64(14952153165080187948ULL)); QCOMPARE(packet.senderInfo().octetCount(), quint32(480)); QCOMPARE(packet.senderInfo().packetCount(), quint32(3)); |
