rtcp::ReceiverReport moved into own file and got Parse function
BUG=webrtc:5260 R=asapersson@webrtc.org Review URL: https://codereview.webrtc.org/1453083002 . Cr-Commit-Position: refs/heads/master@{#10897}
This commit is contained in:
@ -16,6 +16,7 @@
|
||||
#include "webrtc/modules/rtp_rtcp/source/rtcp_packet.h"
|
||||
#include "webrtc/modules/rtp_rtcp/source/rtcp_packet/app.h"
|
||||
#include "webrtc/modules/rtp_rtcp/source/rtcp_packet/bye.h"
|
||||
#include "webrtc/modules/rtp_rtcp/source/rtcp_packet/receiver_report.h"
|
||||
#include "webrtc/test/rtcp_packet_parser.h"
|
||||
|
||||
using ::testing::ElementsAre;
|
||||
@ -26,16 +27,15 @@ using webrtc::rtcp::Dlrr;
|
||||
using webrtc::rtcp::Empty;
|
||||
using webrtc::rtcp::Fir;
|
||||
using webrtc::rtcp::Nack;
|
||||
using webrtc::rtcp::Sdes;
|
||||
using webrtc::rtcp::SenderReport;
|
||||
using webrtc::rtcp::Sli;
|
||||
using webrtc::rtcp::RawPacket;
|
||||
using webrtc::rtcp::ReceiverReport;
|
||||
using webrtc::rtcp::Remb;
|
||||
using webrtc::rtcp::ReportBlock;
|
||||
using webrtc::rtcp::Rpsi;
|
||||
using webrtc::rtcp::Rrtr;
|
||||
using webrtc::rtcp::Sdes;
|
||||
using webrtc::rtcp::SenderReport;
|
||||
using webrtc::rtcp::Sli;
|
||||
using webrtc::rtcp::Tmmbn;
|
||||
using webrtc::rtcp::Tmmbr;
|
||||
using webrtc::rtcp::VoipMetric;
|
||||
@ -47,81 +47,6 @@ namespace webrtc {
|
||||
const uint32_t kSenderSsrc = 0x12345678;
|
||||
const uint32_t kRemoteSsrc = 0x23456789;
|
||||
|
||||
TEST(RtcpPacketTest, Rr) {
|
||||
ReceiverReport rr;
|
||||
rr.From(kSenderSsrc);
|
||||
|
||||
rtc::scoped_ptr<RawPacket> packet(rr.Build());
|
||||
RtcpPacketParser parser;
|
||||
parser.Parse(packet->Buffer(), packet->Length());
|
||||
EXPECT_EQ(1, parser.receiver_report()->num_packets());
|
||||
EXPECT_EQ(kSenderSsrc, parser.receiver_report()->Ssrc());
|
||||
EXPECT_EQ(0, parser.report_block()->num_packets());
|
||||
}
|
||||
|
||||
TEST(RtcpPacketTest, RrWithOneReportBlock) {
|
||||
ReportBlock rb;
|
||||
rb.To(kRemoteSsrc);
|
||||
rb.WithFractionLost(55);
|
||||
rb.WithCumulativeLost(0x111111);
|
||||
rb.WithExtHighestSeqNum(0x22222222);
|
||||
rb.WithJitter(0x33333333);
|
||||
rb.WithLastSr(0x44444444);
|
||||
rb.WithDelayLastSr(0x55555555);
|
||||
|
||||
ReceiverReport rr;
|
||||
rr.From(kSenderSsrc);
|
||||
EXPECT_TRUE(rr.WithReportBlock(rb));
|
||||
|
||||
rtc::scoped_ptr<RawPacket> packet(rr.Build());
|
||||
RtcpPacketParser parser;
|
||||
parser.Parse(packet->Buffer(), packet->Length());
|
||||
EXPECT_EQ(1, parser.receiver_report()->num_packets());
|
||||
EXPECT_EQ(kSenderSsrc, parser.receiver_report()->Ssrc());
|
||||
EXPECT_EQ(1, parser.report_block()->num_packets());
|
||||
EXPECT_EQ(kRemoteSsrc, parser.report_block()->Ssrc());
|
||||
EXPECT_EQ(55U, parser.report_block()->FractionLost());
|
||||
EXPECT_EQ(0x111111U, parser.report_block()->CumPacketLost());
|
||||
EXPECT_EQ(0x22222222U, parser.report_block()->ExtHighestSeqNum());
|
||||
EXPECT_EQ(0x33333333U, parser.report_block()->Jitter());
|
||||
EXPECT_EQ(0x44444444U, parser.report_block()->LastSr());
|
||||
EXPECT_EQ(0x55555555U, parser.report_block()->DelayLastSr());
|
||||
}
|
||||
|
||||
TEST(RtcpPacketTest, RrWithTwoReportBlocks) {
|
||||
ReportBlock rb1;
|
||||
rb1.To(kRemoteSsrc);
|
||||
ReportBlock rb2;
|
||||
rb2.To(kRemoteSsrc + 1);
|
||||
|
||||
ReceiverReport rr;
|
||||
rr.From(kSenderSsrc);
|
||||
EXPECT_TRUE(rr.WithReportBlock(rb1));
|
||||
EXPECT_TRUE(rr.WithReportBlock(rb2));
|
||||
|
||||
rtc::scoped_ptr<RawPacket> packet(rr.Build());
|
||||
RtcpPacketParser parser;
|
||||
parser.Parse(packet->Buffer(), packet->Length());
|
||||
EXPECT_EQ(1, parser.receiver_report()->num_packets());
|
||||
EXPECT_EQ(kSenderSsrc, parser.receiver_report()->Ssrc());
|
||||
EXPECT_EQ(2, parser.report_block()->num_packets());
|
||||
EXPECT_EQ(1, parser.report_blocks_per_ssrc(kRemoteSsrc));
|
||||
EXPECT_EQ(1, parser.report_blocks_per_ssrc(kRemoteSsrc + 1));
|
||||
}
|
||||
|
||||
TEST(RtcpPacketTest, RrWithTooManyReportBlocks) {
|
||||
ReceiverReport rr;
|
||||
rr.From(kSenderSsrc);
|
||||
const int kMaxReportBlocks = (1 << 5) - 1;
|
||||
ReportBlock rb;
|
||||
for (int i = 0; i < kMaxReportBlocks; ++i) {
|
||||
rb.To(kRemoteSsrc + i);
|
||||
EXPECT_TRUE(rr.WithReportBlock(rb));
|
||||
}
|
||||
rb.To(kRemoteSsrc + kMaxReportBlocks);
|
||||
EXPECT_FALSE(rr.WithReportBlock(rb));
|
||||
}
|
||||
|
||||
TEST(RtcpPacketTest, Sr) {
|
||||
SenderReport sr;
|
||||
sr.From(kSenderSsrc);
|
||||
|
||||
Reference in New Issue
Block a user