diff options
Diffstat (limited to 'video/send_statistics_proxy_unittest.cc')
-rw-r--r-- | video/send_statistics_proxy_unittest.cc | 86 |
1 files changed, 54 insertions, 32 deletions
diff --git a/video/send_statistics_proxy_unittest.cc b/video/send_statistics_proxy_unittest.cc index 71b84c9443..d4a7a49e39 100644 --- a/video/send_statistics_proxy_unittest.cc +++ b/video/send_statistics_proxy_unittest.cc @@ -159,11 +159,19 @@ class SendStatisticsProxyTest : public ::testing::Test { b.rtp_stats.retransmitted.packets); EXPECT_EQ(a.rtp_stats.fec.packets, b.rtp_stats.fec.packets); - EXPECT_EQ(a.rtcp_stats.fraction_lost, b.rtcp_stats.fraction_lost); - EXPECT_EQ(a.rtcp_stats.packets_lost, b.rtcp_stats.packets_lost); - EXPECT_EQ(a.rtcp_stats.extended_highest_sequence_number, - b.rtcp_stats.extended_highest_sequence_number); - EXPECT_EQ(a.rtcp_stats.jitter, b.rtcp_stats.jitter); + EXPECT_EQ(a.report_block_data.has_value(), + b.report_block_data.has_value()); + if (a.report_block_data.has_value()) { + const RTCPReportBlock& a_rtcp_stats = + a.report_block_data->report_block(); + const RTCPReportBlock& b_rtcp_stats = + b.report_block_data->report_block(); + EXPECT_EQ(a_rtcp_stats.fraction_lost, b_rtcp_stats.fraction_lost); + EXPECT_EQ(a_rtcp_stats.packets_lost, b_rtcp_stats.packets_lost); + EXPECT_EQ(a_rtcp_stats.extended_highest_sequence_number, + b_rtcp_stats.extended_highest_sequence_number); + EXPECT_EQ(a_rtcp_stats.jitter, b_rtcp_stats.jitter); + } } } @@ -174,29 +182,37 @@ class SendStatisticsProxyTest : public ::testing::Test { VideoSendStream::Stats expected_; }; -TEST_F(SendStatisticsProxyTest, RtcpStatistics) { - RtcpStatisticsCallback* callback = statistics_proxy_.get(); - for (const auto& ssrc : config_.rtp.ssrcs) { - VideoSendStream::StreamStats& ssrc_stats = expected_.substreams[ssrc]; - +TEST_F(SendStatisticsProxyTest, ReportBlockDataObserver) { + ReportBlockDataObserver* callback = statistics_proxy_.get(); + for (uint32_t ssrc : config_.rtp.ssrcs) { // Add statistics with some arbitrary, but unique, numbers. - uint32_t offset = ssrc * sizeof(RtcpStatistics); - ssrc_stats.rtcp_stats.packets_lost = offset; - ssrc_stats.rtcp_stats.extended_highest_sequence_number = offset + 1; - ssrc_stats.rtcp_stats.fraction_lost = offset + 2; - ssrc_stats.rtcp_stats.jitter = offset + 3; - callback->StatisticsUpdated(ssrc_stats.rtcp_stats, ssrc); + uint32_t offset = ssrc * 4; + RTCPReportBlock report_block; + report_block.source_ssrc = ssrc; + report_block.packets_lost = offset; + report_block.extended_highest_sequence_number = offset + 1; + report_block.fraction_lost = offset + 2; + report_block.jitter = offset + 3; + ReportBlockData data; + data.SetReportBlock(report_block, 0); + expected_.substreams[ssrc].report_block_data = data; + + callback->OnReportBlockDataUpdated(data); } - for (const auto& ssrc : config_.rtp.rtx.ssrcs) { - VideoSendStream::StreamStats& ssrc_stats = expected_.substreams[ssrc]; - + for (uint32_t ssrc : config_.rtp.rtx.ssrcs) { // Add statistics with some arbitrary, but unique, numbers. - uint32_t offset = ssrc * sizeof(RtcpStatistics); - ssrc_stats.rtcp_stats.packets_lost = offset; - ssrc_stats.rtcp_stats.extended_highest_sequence_number = offset + 1; - ssrc_stats.rtcp_stats.fraction_lost = offset + 2; - ssrc_stats.rtcp_stats.jitter = offset + 3; - callback->StatisticsUpdated(ssrc_stats.rtcp_stats, ssrc); + uint32_t offset = ssrc * 4; + RTCPReportBlock report_block; + report_block.source_ssrc = ssrc; + report_block.packets_lost = offset; + report_block.extended_highest_sequence_number = offset + 1; + report_block.fraction_lost = offset + 2; + report_block.jitter = offset + 3; + ReportBlockData data; + data.SetReportBlock(report_block, 0); + expected_.substreams[ssrc].report_block_data = data; + + callback->OnReportBlockDataUpdated(data); } VideoSendStream::Stats stats = statistics_proxy_->GetStats(); ExpectEqual(expected_, stats); @@ -2171,10 +2187,13 @@ TEST_F(SendStatisticsProxyTest, NoSubstreams) { std::max(*absl::c_max_element(config_.rtp.ssrcs), *absl::c_max_element(config_.rtp.rtx.ssrcs)) + 1; - // From RtcpStatisticsCallback. - RtcpStatistics rtcp_stats; - RtcpStatisticsCallback* rtcp_callback = statistics_proxy_.get(); - rtcp_callback->StatisticsUpdated(rtcp_stats, excluded_ssrc); + // From ReportBlockDataObserver. + ReportBlockDataObserver* rtcp_callback = statistics_proxy_.get(); + RTCPReportBlock report_block; + report_block.source_ssrc = excluded_ssrc; + ReportBlockData data; + data.SetReportBlock(report_block, 0); + rtcp_callback->OnReportBlockDataUpdated(data); // From BitrateStatisticsObserver. uint32_t total = 0; @@ -2221,9 +2240,12 @@ TEST_F(SendStatisticsProxyTest, EncodedResolutionTimesOut) { // Update the first SSRC with bogus RTCP stats to make sure that encoded // resolution still times out (no global timeout for all stats). - RtcpStatistics rtcp_statistics; - RtcpStatisticsCallback* rtcp_stats = statistics_proxy_.get(); - rtcp_stats->StatisticsUpdated(rtcp_statistics, config_.rtp.ssrcs[0]); + ReportBlockDataObserver* rtcp_callback = statistics_proxy_.get(); + RTCPReportBlock report_block; + report_block.source_ssrc = config_.rtp.ssrcs[0]; + ReportBlockData data; + data.SetReportBlock(report_block, 0); + rtcp_callback->OnReportBlockDataUpdated(data); // Report stats for second SSRC to make sure it's not outdated along with the // first SSRC. |