Trigger rtt and stats update on report block rather than receiver report.

ReportBlock is the the real receiver report.
Triggering rtt update on ReportBlock support clients that send receiver
report blocks attached to SenderReport rather than ReceiverReport.

Bug: webrtc:7996
Change-Id: Ie826fa09fd1bf0e5256e995649f66811b5192761
Reviewed-on: https://webrtc-review.googlesource.com/4040
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20014}
This commit is contained in:
Danil Chapovalov
2017-09-27 13:25:24 +02:00
committed by Commit Bot
parent cff9ee650e
commit 760c4b4da9
4 changed files with 39 additions and 20 deletions

View File

@ -274,7 +274,6 @@ TEST_F(RtcpReceiverTest, InjectRrPacket) {
OnReceivedRtcpReceiverReport(IsEmpty(), _, now));
InjectRtcpPacket(rr);
EXPECT_EQ(now, rtcp_receiver_.LastReceivedReceiverReport());
std::vector<RTCPReportBlock> report_blocks;
rtcp_receiver_.StatisticsReceived(&report_blocks);
EXPECT_TRUE(report_blocks.empty());
@ -293,7 +292,7 @@ TEST_F(RtcpReceiverTest, InjectRrPacketWithReportBlockNotToUsIgnored) {
OnReceivedRtcpReceiverReport(IsEmpty(), _, now));
InjectRtcpPacket(rr);
EXPECT_EQ(now, rtcp_receiver_.LastReceivedReceiverReport());
EXPECT_EQ(0, rtcp_receiver_.LastReceivedReportBlockMs());
std::vector<RTCPReportBlock> received_blocks;
rtcp_receiver_.StatisticsReceived(&received_blocks);
EXPECT_TRUE(received_blocks.empty());
@ -313,7 +312,27 @@ TEST_F(RtcpReceiverTest, InjectRrPacketWithOneReportBlock) {
OnReceivedRtcpReceiverReport(SizeIs(1), _, now));
InjectRtcpPacket(rr);
EXPECT_EQ(now, rtcp_receiver_.LastReceivedReceiverReport());
EXPECT_EQ(now, rtcp_receiver_.LastReceivedReportBlockMs());
std::vector<RTCPReportBlock> received_blocks;
rtcp_receiver_.StatisticsReceived(&received_blocks);
EXPECT_EQ(1u, received_blocks.size());
}
TEST_F(RtcpReceiverTest, InjectSrPacketWithOneReportBlock) {
int64_t now = system_clock_.TimeInMilliseconds();
rtcp::ReportBlock rb;
rb.SetMediaSsrc(kReceiverMainSsrc);
rtcp::SenderReport sr;
sr.SetSenderSsrc(kSenderSsrc);
sr.AddReportBlock(rb);
EXPECT_CALL(rtp_rtcp_impl_, OnReceivedRtcpReportBlocks(SizeIs(1)));
EXPECT_CALL(bandwidth_observer_,
OnReceivedRtcpReceiverReport(SizeIs(1), _, now));
InjectRtcpPacket(sr);
EXPECT_EQ(now, rtcp_receiver_.LastReceivedReportBlockMs());
std::vector<RTCPReportBlock> received_blocks;
rtcp_receiver_.StatisticsReceived(&received_blocks);
EXPECT_EQ(1u, received_blocks.size());
@ -345,7 +364,7 @@ TEST_F(RtcpReceiverTest, InjectRrPacketWithTwoReportBlocks) {
OnReceivedRtcpReceiverReport(SizeIs(2), _, now));
InjectRtcpPacket(rr1);
EXPECT_EQ(now, rtcp_receiver_.LastReceivedReceiverReport());
EXPECT_EQ(now, rtcp_receiver_.LastReceivedReportBlockMs());
std::vector<RTCPReportBlock> received_blocks;
rtcp_receiver_.StatisticsReceived(&received_blocks);
EXPECT_THAT(received_blocks,
@ -419,7 +438,7 @@ TEST_F(RtcpReceiverTest, InjectRrPacketsFromTwoRemoteSsrcs) {
OnReceivedRtcpReceiverReport(SizeIs(1), _, now));
InjectRtcpPacket(rr1);
EXPECT_EQ(now, rtcp_receiver_.LastReceivedReceiverReport());
EXPECT_EQ(now, rtcp_receiver_.LastReceivedReportBlockMs());
std::vector<RTCPReportBlock> received_blocks;
rtcp_receiver_.StatisticsReceived(&received_blocks);
@ -486,7 +505,7 @@ TEST_F(RtcpReceiverTest, GetRtt) {
EXPECT_CALL(bandwidth_observer_, OnReceivedRtcpReceiverReport(_, _, _));
InjectRtcpPacket(rr);
EXPECT_EQ(now, rtcp_receiver_.LastReceivedReceiverReport());
EXPECT_EQ(now, rtcp_receiver_.LastReceivedReportBlockMs());
EXPECT_EQ(
0, rtcp_receiver_.RTT(kSenderSsrc, nullptr, nullptr, nullptr, nullptr));
}