Renamed fields in common_types.h/RtcpStatistics.

BUG=webrtc:8033

Review-Url: https://codereview.webrtc.org/2992043002
Cr-Commit-Position: refs/heads/master@{#19247}
This commit is contained in:
srte 2017-08-04 05:03:53 -07:00 committed by Commit Bot
parent 463d7ccb36
commit 186d9c3873
18 changed files with 77 additions and 70 deletions

View File

@ -22,6 +22,7 @@
#include "webrtc/api/video/video_timing.h"
#include "webrtc/rtc_base/array_view.h"
#include "webrtc/rtc_base/checks.h"
#include "webrtc/rtc_base/deprecation.h"
#include "webrtc/rtc_base/optional.h"
#include "webrtc/typedefs.h"
@ -156,13 +157,19 @@ enum FrameType {
struct RtcpStatistics {
RtcpStatistics()
: fraction_lost(0),
cumulative_lost(0),
extended_max_sequence_number(0),
packets_lost(0),
extended_highest_sequence_number(0),
jitter(0) {}
uint8_t fraction_lost;
uint32_t cumulative_lost;
uint32_t extended_max_sequence_number;
union {
uint32_t packets_lost;
RTC_DEPRECATED uint32_t cumulative_lost;
};
union {
uint32_t extended_highest_sequence_number;
RTC_DEPRECATED uint32_t extended_max_sequence_number;
};
uint32_t jitter;
};

View File

@ -2037,7 +2037,7 @@ VideoSenderInfo WebRtcVideoChannel::WebRtcVideoSendStream::GetVideoSenderInfo(
stream_stats.rtp_stats.transmitted.header_bytes +
stream_stats.rtp_stats.transmitted.padding_bytes;
info.packets_sent += stream_stats.rtp_stats.transmitted.packets;
info.packets_lost += stream_stats.rtcp_stats.cumulative_lost;
info.packets_lost += stream_stats.rtcp_stats.packets_lost;
if (stream_stats.width > info.send_frame_width)
info.send_frame_width = stream_stats.width;
if (stream_stats.height > info.send_frame_height)
@ -2445,7 +2445,7 @@ WebRtcVideoChannel::WebRtcVideoReceiveStream::GetVideoReceiverInfo(
stats.rtp_stats.transmitted.header_bytes +
stats.rtp_stats.transmitted.padding_bytes;
info.packets_rcvd = stats.rtp_stats.transmitted.packets;
info.packets_lost = stats.rtcp_stats.cumulative_lost;
info.packets_lost = stats.rtcp_stats.packets_lost;
info.fraction_lost =
static_cast<float>(stats.rtcp_stats.fraction_lost) / (1 << 8);

View File

@ -3709,7 +3709,7 @@ TEST_F(WebRtcVideoChannelTest, GetStatsTranslatesReceivePacketStatsCorrectly) {
stats.rtp_stats.transmitted.header_bytes = 3;
stats.rtp_stats.transmitted.padding_bytes = 4;
stats.rtp_stats.transmitted.packets = 5;
stats.rtcp_stats.cumulative_lost = 6;
stats.rtcp_stats.packets_lost = 6;
stats.rtcp_stats.fraction_lost = 7;
stream->SetStats(stats);
@ -3721,7 +3721,7 @@ TEST_F(WebRtcVideoChannelTest, GetStatsTranslatesReceivePacketStatsCorrectly) {
info.receivers[0].bytes_rcvd);
EXPECT_EQ(stats.rtp_stats.transmitted.packets,
info.receivers[0].packets_rcvd);
EXPECT_EQ(stats.rtcp_stats.cumulative_lost, info.receivers[0].packets_lost);
EXPECT_EQ(stats.rtcp_stats.packets_lost, info.receivers[0].packets_lost);
EXPECT_EQ(static_cast<float>(stats.rtcp_stats.fraction_lost) / (1 << 8),
info.receivers[0].fraction_lost);
}

View File

@ -92,9 +92,9 @@ void Convert(const webrtc::NetEqNetworkStatistics& stats_raw,
void Convert(const webrtc::RtcpStatistics& stats_raw,
webrtc::neteq_unittest::RtcpStatistics* stats) {
stats->set_fraction_lost(stats_raw.fraction_lost);
stats->set_cumulative_lost(stats_raw.cumulative_lost);
stats->set_cumulative_lost(stats_raw.packets_lost);
stats->set_extended_max_sequence_number(
stats_raw.extended_max_sequence_number);
stats_raw.extended_highest_sequence_number);
stats->set_jitter(stats_raw.jitter);
}

View File

@ -56,24 +56,24 @@ void Rtcp::Update(const RTPHeader& rtp_header, uint32_t receive_timestamp) {
void Rtcp::GetStatistics(bool no_reset, RtcpStatistics* stats) {
// Extended highest sequence number received.
stats->extended_max_sequence_number =
stats->extended_highest_sequence_number =
(static_cast<int>(cycles_) << 16) + max_seq_no_;
// Calculate expected number of packets and compare it with the number of
// packets that were actually received. The cumulative number of lost packets
// can be extracted.
uint32_t expected_packets =
stats->extended_max_sequence_number - base_seq_no_ + 1;
stats->extended_highest_sequence_number - base_seq_no_ + 1;
if (received_packets_ == 0) {
// No packets received, assume none lost.
stats->cumulative_lost = 0;
stats->packets_lost = 0;
} else if (expected_packets > received_packets_) {
stats->cumulative_lost = expected_packets - received_packets_;
if (stats->cumulative_lost > 0xFFFFFF) {
stats->cumulative_lost = 0xFFFFFF;
stats->packets_lost = expected_packets - received_packets_;
if (stats->packets_lost > 0xFFFFFF) {
stats->packets_lost = 0xFFFFFF;
}
} else {
stats->cumulative_lost = 0;
stats->packets_lost = 0;
}
// Fraction lost since last report.

View File

@ -139,8 +139,8 @@ RTCPReportBlock RembReceiver::BuildReportBlock(
RtcpStatistics stats;
RTC_DCHECK(statistician->GetStatistics(&stats, true));
report_block.fractionLost = stats.fraction_lost;
report_block.cumulativeLost = stats.cumulative_lost;
report_block.extendedHighSeqNum = stats.extended_max_sequence_number;
report_block.cumulativeLost = stats.packets_lost;
report_block.extendedHighSeqNum = stats.extended_highest_sequence_number;
report_block.jitter = stats.jitter;
return report_block;
}

View File

@ -265,8 +265,8 @@ RtcpStatistics StreamStatisticianImpl::CalculateRtcpStatistics() {
// We need a counter for cumulative loss too.
// TODO(danilchap): Ensure cumulative loss is below maximum value of 2^24.
cumulative_loss_ += missing;
stats.cumulative_lost = cumulative_loss_;
stats.extended_max_sequence_number =
stats.packets_lost = cumulative_loss_;
stats.extended_highest_sequence_number =
(received_seq_wraps_ << 16) + received_seq_max_;
// Note: internal jitter value is in Q4 and needs to be scaled by 1/16.
stats.jitter = jitter_q4_ >> 4;
@ -514,12 +514,12 @@ std::vector<rtcp::ReportBlock> ReceiveStatistics::RtcpReportBlocks(
rtcp::ReportBlock& block = result.back();
block.SetMediaSsrc(statistician.first);
block.SetFractionLost(stats.fraction_lost);
if (!block.SetCumulativeLost(stats.cumulative_lost)) {
if (!block.SetCumulativeLost(stats.packets_lost)) {
LOG(LS_WARNING) << "Cumulative lost is oversized.";
result.pop_back();
continue;
}
block.SetExtHighestSeqNum(stats.extended_max_sequence_number);
block.SetExtHighestSeqNum(stats.extended_highest_sequence_number);
block.SetJitter(stats.jitter);
}
return result;

View File

@ -201,14 +201,14 @@ TEST_F(ReceiveStatisticsTest, RtcpCallbacks) {
EXPECT_EQ(1u, callback.num_calls_);
EXPECT_EQ(callback.ssrc_, kSsrc1);
EXPECT_EQ(statistics.cumulative_lost, callback.stats_.cumulative_lost);
EXPECT_EQ(statistics.extended_max_sequence_number,
callback.stats_.extended_max_sequence_number);
EXPECT_EQ(statistics.packets_lost, callback.stats_.packets_lost);
EXPECT_EQ(statistics.extended_highest_sequence_number,
callback.stats_.extended_highest_sequence_number);
EXPECT_EQ(statistics.fraction_lost, callback.stats_.fraction_lost);
EXPECT_EQ(statistics.jitter, callback.stats_.jitter);
EXPECT_EQ(51, statistics.fraction_lost);
EXPECT_EQ(1u, statistics.cumulative_lost);
EXPECT_EQ(5u, statistics.extended_max_sequence_number);
EXPECT_EQ(1u, statistics.packets_lost);
EXPECT_EQ(5u, statistics.extended_highest_sequence_number);
EXPECT_EQ(4u, statistics.jitter);
receive_statistics_->RegisterRtcpStatisticsCallback(NULL);

View File

@ -992,8 +992,9 @@ void RTCPReceiver::TriggerCallbacksFromRtcpPacket(
if (stats_callback_) {
for (const auto& report_block : packet_information.report_blocks) {
RtcpStatistics stats;
stats.cumulative_lost = report_block.cumulativeLost;
stats.extended_max_sequence_number = report_block.extendedHighSeqNum;
stats.packets_lost = report_block.cumulativeLost;
stats.extended_highest_sequence_number =
report_block.extendedHighSeqNum;
stats.fraction_lost = report_block.fractionLost;
stats.jitter = report_block.jitter;

View File

@ -1047,15 +1047,14 @@ TEST_F(RtcpReceiverTest, Callbacks) {
rtcp::ReceiverReport rr1;
rr1.SetSenderSsrc(kSenderSsrc);
rr1.AddReportBlock(rb1);
EXPECT_CALL(
callback,
StatisticsUpdated(
AllOf(Field(&RtcpStatistics::fraction_lost, kFractionLoss),
Field(&RtcpStatistics::cumulative_lost, kCumulativeLoss),
Field(&RtcpStatistics::extended_max_sequence_number,
kSequenceNumber),
Field(&RtcpStatistics::jitter, kJitter)),
kReceiverMainSsrc));
EXPECT_CALL(callback,
StatisticsUpdated(
AllOf(Field(&RtcpStatistics::fraction_lost, kFractionLoss),
Field(&RtcpStatistics::packets_lost, kCumulativeLoss),
Field(&RtcpStatistics::extended_highest_sequence_number,
kSequenceNumber),
Field(&RtcpStatistics::jitter, kJitter)),
kReceiverMainSsrc));
EXPECT_CALL(rtp_rtcp_impl_, OnReceivedRtcpReportBlocks(_));
EXPECT_CALL(bandwidth_observer_, OnReceivedRtcpReceiverReport(_, _, _));
InjectRtcpPacket(rr1);

View File

@ -3177,8 +3177,8 @@ TEST_F(EndToEndTest, GetStats) {
receive_stats_filled_["FrameRendered"] |= stats.render_frame_rate != 0;
receive_stats_filled_["StatisticsUpdated"] |=
stats.rtcp_stats.cumulative_lost != 0 ||
stats.rtcp_stats.extended_max_sequence_number != 0 ||
stats.rtcp_stats.packets_lost != 0 ||
stats.rtcp_stats.extended_highest_sequence_number != 0 ||
stats.rtcp_stats.fraction_lost != 0 || stats.rtcp_stats.jitter != 0;
receive_stats_filled_["DataCountersUpdated"] |=
@ -3244,8 +3244,8 @@ TEST_F(EndToEndTest, GetStats) {
const VideoSendStream::StreamStats& stream_stats = it->second;
send_stats_filled_[CompoundKey("StatisticsUpdated", it->first)] |=
stream_stats.rtcp_stats.cumulative_lost != 0 ||
stream_stats.rtcp_stats.extended_max_sequence_number != 0 ||
stream_stats.rtcp_stats.packets_lost != 0 ||
stream_stats.rtcp_stats.extended_highest_sequence_number != 0 ||
stream_stats.rtcp_stats.fraction_lost != 0;
send_stats_filled_[CompoundKey("DataCountersUpdated", it->first)] |=

View File

@ -245,15 +245,15 @@ TEST_F(ReceiveStatisticsProxyTest, GetStatsReportsRtcpStats) {
RtcpStatistics rtcp_stats;
rtcp_stats.fraction_lost = kFracLost;
rtcp_stats.cumulative_lost = kCumLost;
rtcp_stats.extended_max_sequence_number = kExtSeqNum;
rtcp_stats.packets_lost = kCumLost;
rtcp_stats.extended_highest_sequence_number = kExtSeqNum;
rtcp_stats.jitter = kJitter;
statistics_proxy_->StatisticsUpdated(rtcp_stats, kRemoteSsrc);
VideoReceiveStream::Stats stats = statistics_proxy_->GetStats();
EXPECT_EQ(kFracLost, stats.rtcp_stats.fraction_lost);
EXPECT_EQ(kCumLost, stats.rtcp_stats.cumulative_lost);
EXPECT_EQ(kExtSeqNum, stats.rtcp_stats.extended_max_sequence_number);
EXPECT_EQ(kCumLost, stats.rtcp_stats.packets_lost);
EXPECT_EQ(kExtSeqNum, stats.rtcp_stats.extended_highest_sequence_number);
EXPECT_EQ(kJitter, stats.rtcp_stats.jitter);
}
@ -359,14 +359,14 @@ TEST_F(ReceiveStatisticsProxyTest, PacketLossHistogramIsUpdated) {
// One report block received.
RtcpStatistics rtcp_stats1;
rtcp_stats1.cumulative_lost = kCumLost1;
rtcp_stats1.extended_max_sequence_number = kExtSeqNum1;
rtcp_stats1.packets_lost = kCumLost1;
rtcp_stats1.extended_highest_sequence_number = kExtSeqNum1;
statistics_proxy_->StatisticsUpdated(rtcp_stats1, kRemoteSsrc);
// Two report blocks received.
RtcpStatistics rtcp_stats2;
rtcp_stats2.cumulative_lost = kCumLost2;
rtcp_stats2.extended_max_sequence_number = kExtSeqNum2;
rtcp_stats2.packets_lost = kCumLost2;
rtcp_stats2.extended_highest_sequence_number = kExtSeqNum2;
statistics_proxy_->StatisticsUpdated(rtcp_stats2, kRemoteSsrc);
// Two received report blocks but min run time has not passed.
@ -392,8 +392,8 @@ TEST_F(ReceiveStatisticsProxyTest, PacketLossHistogramIsUpdated) {
TEST_F(ReceiveStatisticsProxyTest,
PacketLossHistogramIsNotUpdatedIfLessThanTwoReportBlocksAreReceived) {
RtcpStatistics rtcp_stats1;
rtcp_stats1.cumulative_lost = 1;
rtcp_stats1.extended_max_sequence_number = 10;
rtcp_stats1.packets_lost = 1;
rtcp_stats1.extended_highest_sequence_number = 10;
// Min run time has passed but no received report block.
fake_clock_.AdvanceTimeMilliseconds(metrics::kMinRunTimeInSeconds * 1000);

View File

@ -34,9 +34,9 @@ void ReportBlockStats::Store(const RtcpStatistics& rtcp_stats,
uint32_t remote_ssrc,
uint32_t source_ssrc) {
RTCPReportBlock block;
block.cumulativeLost = rtcp_stats.cumulative_lost;
block.cumulativeLost = rtcp_stats.packets_lost;
block.fractionLost = rtcp_stats.fraction_lost;
block.extendedHighSeqNum = rtcp_stats.extended_max_sequence_number;
block.extendedHighSeqNum = rtcp_stats.extended_highest_sequence_number;
block.jitter = rtcp_stats.jitter;
block.remoteSSRC = remote_ssrc;
block.sourceSSRC = source_ssrc;

View File

@ -57,9 +57,9 @@ class ReportBlockStatsTest : public ::testing::Test {
RtcpStatistics RtcpReportBlockToRtcpStatistics(
const RTCPReportBlock& stats) {
RtcpStatistics block;
block.cumulative_lost = stats.cumulativeLost;
block.packets_lost = stats.cumulativeLost;
block.fraction_lost = stats.fractionLost;
block.extended_max_sequence_number = stats.extendedHighSeqNum;
block.extended_highest_sequence_number = stats.extendedHighSeqNum;
block.jitter = stats.jitter;
return block;
}

View File

@ -133,9 +133,9 @@ class SendStatisticsProxyTest : public ::testing::Test {
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.cumulative_lost, b.rtcp_stats.cumulative_lost);
EXPECT_EQ(a.rtcp_stats.extended_max_sequence_number,
b.rtcp_stats.extended_max_sequence_number);
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);
}
}
@ -157,8 +157,8 @@ TEST_F(SendStatisticsProxyTest, RtcpStatistics) {
// Add statistics with some arbitrary, but unique, numbers.
uint32_t offset = ssrc * sizeof(RtcpStatistics);
ssrc_stats.rtcp_stats.cumulative_lost = offset;
ssrc_stats.rtcp_stats.extended_max_sequence_number = offset + 1;
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);
@ -168,8 +168,8 @@ TEST_F(SendStatisticsProxyTest, RtcpStatistics) {
// Add statistics with some arbitrary, but unique, numbers.
uint32_t offset = ssrc * sizeof(RtcpStatistics);
ssrc_stats.rtcp_stats.cumulative_lost = offset;
ssrc_stats.rtcp_stats.extended_max_sequence_number = offset + 1;
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);

View File

@ -128,8 +128,8 @@ std::string VideoReceiveStream::Stats::ToString(int64_t time_ms) const {
ss << "min_playout_delay_ms: " << min_playout_delay_ms << ", ";
ss << "discarded: " << discarded_packets << ", ";
ss << "sync_offset_ms: " << sync_offset_ms << ", ";
ss << "cum_loss: " << rtcp_stats.cumulative_lost << ", ";
ss << "max_ext_seq: " << rtcp_stats.extended_max_sequence_number << ", ";
ss << "cum_loss: " << rtcp_stats.packets_lost << ", ";
ss << "max_ext_seq: " << rtcp_stats.extended_highest_sequence_number << ", ";
ss << "nack: " << rtcp_packet_type_counts.nack_packets << ", ";
ss << "fir: " << rtcp_packet_type_counts.fir_packets << ", ";
ss << "pli: " << rtcp_packet_type_counts.pli_packets;

View File

@ -260,8 +260,8 @@ std::string VideoSendStream::StreamStats::ToString() const {
ss << "retransmit_bps: " << retransmit_bitrate_bps << ", ";
ss << "avg_delay_ms: " << avg_delay_ms << ", ";
ss << "max_delay_ms: " << max_delay_ms << ", ";
ss << "cum_loss: " << rtcp_stats.cumulative_lost << ", ";
ss << "max_ext_seq: " << rtcp_stats.extended_max_sequence_number << ", ";
ss << "cum_loss: " << rtcp_stats.packets_lost << ", ";
ss << "max_ext_seq: " << rtcp_stats.extended_highest_sequence_number << ", ";
ss << "nack: " << rtcp_packet_type_counts.nack_packets << ", ";
ss << "fir: " << rtcp_packet_type_counts.fir_packets << ", ";
ss << "pli: " << rtcp_packet_type_counts.pli_packets;

View File

@ -2675,8 +2675,8 @@ int Channel::GetRTPStatistics(CallStatistics& stats) {
}
stats.fractionLost = statistics.fraction_lost;
stats.cumulativeLost = statistics.cumulative_lost;
stats.extendedMax = statistics.extended_max_sequence_number;
stats.cumulativeLost = statistics.packets_lost;
stats.extendedMax = statistics.extended_highest_sequence_number;
stats.jitterSamples = statistics.jitter;
// --- RTT