Remove external report blocks from RtcpSender and rtp_rtcp interface.
Feature does not seem to be used and complicates other refactoring of
the rtcp module.
BUG=
R=asapersson@webrtc.org, henrik.lundin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/54569004
Cr-Commit-Position: refs/heads/master@{#9304}
diff --git a/webrtc/modules/rtp_rtcp/interface/rtp_rtcp.h b/webrtc/modules/rtp_rtcp/interface/rtp_rtcp.h
index 34ab74e..d09d993 100644
--- a/webrtc/modules/rtp_rtcp/interface/rtp_rtcp.h
+++ b/webrtc/modules/rtp_rtcp/interface/rtp_rtcp.h
@@ -457,21 +457,6 @@
std::vector<RTCPReportBlock>* receiveBlocks) const = 0;
/*
- * Set received RTCP report block
- *
- * return -1 on failure else 0
- */
- virtual int32_t AddRTCPReportBlock(uint32_t SSRC,
- const RTCPReportBlock* receiveBlock) = 0;
-
- /*
- * RemoveRTCPReportBlock
- *
- * return -1 on failure else 0
- */
- virtual int32_t RemoveRTCPReportBlock(uint32_t SSRC) = 0;
-
- /*
* (APP) Application specific data
*
* return -1 on failure else 0
diff --git a/webrtc/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h b/webrtc/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h
index 0a4ceef..f5c2281 100644
--- a/webrtc/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h
+++ b/webrtc/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h
@@ -173,10 +173,6 @@
int32_t(RTCPSenderInfo* senderInfo));
MOCK_CONST_METHOD1(RemoteRTCPStat,
int32_t(std::vector<RTCPReportBlock>* receiveBlocks));
- MOCK_METHOD2(AddRTCPReportBlock,
- int32_t(const uint32_t SSRC, const RTCPReportBlock* receiveBlock));
- MOCK_METHOD1(RemoveRTCPReportBlock,
- int32_t(const uint32_t SSRC));
MOCK_METHOD4(SetRTCPApplicationSpecificData,
int32_t(const uint8_t subType, const uint32_t name, const uint8_t* data, const uint16_t length));
MOCK_METHOD1(SetRTCPVoIPMetrics,
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_sender.cc b/webrtc/modules/rtp_rtcp/source/rtcp_sender.cc
index e2ad3f0..d0feed5 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_sender.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_sender.cc
@@ -184,9 +184,6 @@
for (auto it : internal_report_blocks_)
delete it.second;
- for (auto it : external_report_blocks_)
- delete it.second;
-
for (auto it : csrc_cnames_)
delete it.second;
}
@@ -467,13 +464,6 @@
return true;
}
-int32_t RTCPSender::AddExternalReportBlock(
- uint32_t SSRC,
- const RTCPReportBlock* reportBlock) {
- CriticalSectionScoped lock(critical_section_rtcp_sender_.get());
- return AddReportBlock(SSRC, &external_report_blocks_, reportBlock);
-}
-
int32_t RTCPSender::AddReportBlock(
uint32_t SSRC,
std::map<uint32_t, RTCPReportBlock*>* report_blocks,
@@ -496,20 +486,6 @@
return 0;
}
-int32_t RTCPSender::RemoveExternalReportBlock(uint32_t SSRC) {
- CriticalSectionScoped lock(critical_section_rtcp_sender_.get());
-
- std::map<uint32_t, RTCPReportBlock*>::iterator it =
- external_report_blocks_.find(SSRC);
-
- if (it == external_report_blocks_.end()) {
- return -1;
- }
- delete it->second;
- external_report_blocks_.erase(it);
- return 0;
-}
-
RTCPSender::BuildResult RTCPSender::BuildSR(RtcpContext* ctx) {
// sanity
if (ctx->position + 52 >= IP_PACKET_SIZE) {
@@ -716,13 +692,6 @@
RTCPSender::BuildResult RTCPSender::BuildExtendedJitterReport(
RtcpContext* ctx) {
- if (external_report_blocks_.size() > 0) {
- // TODO(andresp): Remove external report blocks since they are not
- // supported.
- LOG(LS_ERROR) << "Handling of external report blocks not implemented.";
- return BuildResult::kError;
- }
-
// sanity
if (ctx->position + 8 >= IP_PACKET_SIZE)
return BuildResult::kTruncated;
@@ -1661,8 +1630,7 @@
RTCPSender::BuildResult RTCPSender::WriteAllReportBlocksToBuffer(
RtcpContext* ctx,
uint8_t* numberOfReportBlocks) {
- *numberOfReportBlocks = external_report_blocks_.size();
- *numberOfReportBlocks += internal_report_blocks_.size();
+ *numberOfReportBlocks = internal_report_blocks_.size();
if ((ctx->position + *numberOfReportBlocks * 24) >= IP_PACKET_SIZE) {
LOG(LS_WARNING) << "Can't fit all report blocks.";
return BuildResult::kError;
@@ -1672,7 +1640,6 @@
delete internal_report_blocks_.begin()->second;
internal_report_blocks_.erase(internal_report_blocks_.begin());
}
- WriteReportBlocksToBuffer(ctx, external_report_blocks_);
return BuildResult::kSuccess;
}
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_sender.h b/webrtc/modules/rtp_rtcp/source/rtcp_sender.h
index 57fbe2b..673aaf0 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_sender.h
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_sender.h
@@ -121,11 +121,6 @@
bool repeat = false,
uint64_t pictureID = 0);
- int32_t AddExternalReportBlock(uint32_t SSRC,
- const RTCPReportBlock* receiveBlock);
-
- int32_t RemoveExternalReportBlock(uint32_t SSRC);
-
bool REMB() const;
void SetREMBStatus(bool enable);
@@ -273,8 +268,6 @@
GUARDED_BY(critical_section_rtcp_sender_);
std::map<uint32_t, RTCPReportBlock*> internal_report_blocks_
GUARDED_BY(critical_section_rtcp_sender_);
- std::map<uint32_t, RTCPReportBlock*> external_report_blocks_
- GUARDED_BY(critical_section_rtcp_sender_);
std::map<uint32_t, RTCPUtility::RTCPCnameInformation*> csrc_cnames_
GUARDED_BY(critical_section_rtcp_sender_);
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
index 9359295..7e95370 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
@@ -628,17 +628,6 @@
return rtcp_receiver_.StatisticsReceived(receive_blocks);
}
-int32_t ModuleRtpRtcpImpl::AddRTCPReportBlock(
- const uint32_t ssrc,
- const RTCPReportBlock* report_block) {
- return rtcp_sender_.AddExternalReportBlock(ssrc, report_block);
-}
-
-int32_t ModuleRtpRtcpImpl::RemoveRTCPReportBlock(
- const uint32_t ssrc) {
- return rtcp_sender_.RemoveExternalReportBlock(ssrc);
-}
-
// (REMB) Receiver Estimated Max Bitrate.
bool ModuleRtpRtcpImpl::REMB() const {
return rtcp_sender_.REMB();
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h
index e8c9a21..a541730 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h
+++ b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h
@@ -183,12 +183,6 @@
int32_t RemoteRTCPStat(
std::vector<RTCPReportBlock>* receive_blocks) const override;
- // Set received RTCP report block.
- int32_t AddRTCPReportBlock(uint32_t ssrc,
- const RTCPReportBlock* receive_block) override;
-
- int32_t RemoveRTCPReportBlock(uint32_t ssrc) override;
-
// (REMB) Receiver Estimated Max Bitrate.
bool REMB() const override;
diff --git a/webrtc/modules/rtp_rtcp/test/testAPI/test_api_rtcp.cc b/webrtc/modules/rtp_rtcp/test/testAPI/test_api_rtcp.cc
index 10b561d..741b7ac 100644
--- a/webrtc/modules/rtp_rtcp/test/testAPI/test_api_rtcp.cc
+++ b/webrtc/modules/rtp_rtcp/test/testAPI/test_api_rtcp.cc
@@ -246,103 +246,6 @@
EXPECT_EQ(-1, module2->RemoteCNAME(rtp_receiver2_->SSRC(), cName));
}
-TEST_F(RtpRtcpRtcpTest, RTCP) {
- RTCPReportBlock reportBlock;
- reportBlock.remoteSSRC = 1;
- reportBlock.sourceSSRC = 2;
- reportBlock.cumulativeLost = 1;
- reportBlock.delaySinceLastSR = 2;
- reportBlock.extendedHighSeqNum = 3;
- reportBlock.fractionLost= 4;
- reportBlock.jitter = 5;
- reportBlock.lastSR = 6;
-
- // Set report blocks.
- EXPECT_EQ(0, module1->AddRTCPReportBlock(test_csrcs[0], &reportBlock));
-
- reportBlock.lastSR= 7;
- EXPECT_EQ(0, module1->AddRTCPReportBlock(test_csrcs[1], &reportBlock));
-
- uint32_t name = 't' << 24;
- name += 'e' << 16;
- name += 's' << 8;
- name += 't';
- EXPECT_EQ(0, module1->SetRTCPApplicationSpecificData(
- 3,
- name,
- (const uint8_t *)"test test test test test test test test test"\
- " test test test test test test test test test test test test test"\
- " test test test test test test test test test test test test test"\
- " test test test test test test test test test test test test test"\
- " test test test test test test test test test test test test ",
- 300));
-
- // send RTCP packet, triggered by timer
- fake_clock.AdvanceTimeMilliseconds(7500);
- module1->Process();
- fake_clock.AdvanceTimeMilliseconds(100);
- module2->Process();
-
- uint32_t receivedNTPsecs = 0;
- uint32_t receivedNTPfrac = 0;
- uint32_t RTCPArrivalTimeSecs = 0;
- uint32_t RTCPArrivalTimeFrac = 0;
- EXPECT_EQ(0, module2->RemoteNTP(&receivedNTPsecs,
- &receivedNTPfrac,
- &RTCPArrivalTimeSecs,
- &RTCPArrivalTimeFrac,
- NULL));
-
-
- // get all report blocks
- std::vector<RTCPReportBlock> report_blocks;
- EXPECT_EQ(0, module1->RemoteRTCPStat(&report_blocks));
- ASSERT_EQ(1u, report_blocks.size());
- const RTCPReportBlock& reportBlockReceived = report_blocks[0];
-
- float secSinceLastReport =
- static_cast<float>(reportBlockReceived.delaySinceLastSR) / 65536.0f;
- EXPECT_GE(0.101f, secSinceLastReport);
- EXPECT_LE(0.100f, secSinceLastReport);
- EXPECT_EQ(test_sequence_number, reportBlockReceived.extendedHighSeqNum);
- EXPECT_EQ(0, reportBlockReceived.fractionLost);
-
- EXPECT_EQ(static_cast<uint32_t>(0),
- reportBlockReceived.cumulativeLost);
-
- StreamStatistician *statistician =
- receive_statistics2_->GetStatistician(reportBlockReceived.sourceSSRC);
- RtcpStatistics stats;
- EXPECT_TRUE(statistician->GetStatistics(&stats, true));
- EXPECT_EQ(0, stats.fraction_lost);
- EXPECT_EQ((uint32_t)0, stats.cumulative_lost);
- EXPECT_EQ(test_sequence_number, stats.extended_max_sequence_number);
- EXPECT_EQ(reportBlockReceived.jitter, stats.jitter);
-
- int64_t RTT;
- int64_t avgRTT;
- int64_t minRTT;
- int64_t maxRTT;
-
- // Get RoundTripTime.
- EXPECT_EQ(0, module1->RTT(test_ssrc + 1, &RTT, &avgRTT, &minRTT, &maxRTT));
- EXPECT_GE(10, RTT);
- EXPECT_GE(10, avgRTT);
- EXPECT_GE(10, minRTT);
- EXPECT_GE(10, maxRTT);
-
- // Set report blocks.
- EXPECT_EQ(0, module1->AddRTCPReportBlock(test_csrcs[0], &reportBlock));
-
- // Test receive report.
- EXPECT_EQ(0, module1->SetSendingStatus(false));
-
- // Send RTCP packet, triggered by timer.
- fake_clock.AdvanceTimeMilliseconds(5000);
- module1->Process();
- module2->Process();
-}
-
TEST_F(RtpRtcpRtcpTest, RemoteRTCPStatRemote) {
std::vector<RTCPReportBlock> report_blocks;