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:
parent
463d7ccb36
commit
186d9c3873
@ -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;
|
||||
};
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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)] |=
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user