Cleanup usasge of ReportBlockData::report_block accessor in pc/
This reduces dependency on the struct RTCPReportBlock and would allow to
delete it in favor of class ReportBlockData
Bug: None
Change-Id: I93874c4f54cf62af0c16ae26e2231b8fb49f195d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/304161
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39985}
diff --git a/pc/rtc_stats_collector.cc b/pc/rtc_stats_collector.cc
index 8a1ded7..e09b495 100644
--- a/pc/rtc_stats_collector.cc
+++ b/pc/rtc_stats_collector.cc
@@ -849,34 +849,31 @@
std::unique_ptr<RTCRemoteInboundRtpStreamStats>
ProduceRemoteInboundRtpStreamStatsFromReportBlockData(
const std::string& transport_id,
- const ReportBlockData& report_block_data,
+ const ReportBlockData& report_block,
cricket::MediaType media_type,
const std::map<std::string, RTCOutboundRtpStreamStats*>& outbound_rtps,
const RTCStatsReport& report) {
- const auto& report_block = report_block_data.report_block();
// RTCStats' timestamp generally refers to when the metric was sampled, but
// for "remote-[outbound/inbound]-rtp" it refers to the local time when the
// Report Block was received.
auto remote_inbound = std::make_unique<RTCRemoteInboundRtpStreamStats>(
- RTCRemoteInboundRtpStreamStatsIdFromSourceSsrc(media_type,
- report_block.source_ssrc),
- report_block_data.report_block_timestamp_utc());
- remote_inbound->ssrc = report_block.source_ssrc;
+ RTCRemoteInboundRtpStreamStatsIdFromSourceSsrc(
+ media_type, report_block.source_ssrc()),
+ report_block.report_block_timestamp_utc());
+ remote_inbound->ssrc = report_block.source_ssrc();
remote_inbound->kind =
media_type == cricket::MEDIA_TYPE_AUDIO ? "audio" : "video";
- remote_inbound->packets_lost = report_block.packets_lost;
- remote_inbound->fraction_lost =
- static_cast<double>(report_block.fraction_lost) / (1 << 8);
- if (report_block_data.num_rtts() > 0) {
- remote_inbound->round_trip_time =
- report_block_data.last_rtt().seconds<double>();
+ remote_inbound->packets_lost = report_block.cumulative_lost();
+ remote_inbound->fraction_lost = report_block.fraction_lost();
+ if (report_block.num_rtts() > 0) {
+ remote_inbound->round_trip_time = report_block.last_rtt().seconds<double>();
}
remote_inbound->total_round_trip_time =
- report_block_data.sum_rtts().seconds<double>();
- remote_inbound->round_trip_time_measurements = report_block_data.num_rtts();
+ report_block.sum_rtts().seconds<double>();
+ remote_inbound->round_trip_time_measurements = report_block.num_rtts();
std::string local_id = RTCOutboundRtpStreamStatsIDFromSSRC(
- transport_id, media_type, report_block.source_ssrc);
+ transport_id, media_type, report_block.source_ssrc());
// Look up local stat from `outbound_rtps` where the pointers are non-const.
auto local_id_it = outbound_rtps.find(local_id);
if (local_id_it != outbound_rtps.end()) {
@@ -907,11 +904,8 @@
remote_inbound->codec_id = *outbound_rtp.codec_id;
const auto& codec = codec_from_id->cast_to<RTCCodecStats>();
if (codec.clock_rate.is_defined()) {
- // The Report Block jitter is expressed in RTP timestamp units
- // (https://tools.ietf.org/html/rfc3550#section-6.4.1). To convert this
- // to seconds we divide by the codec's clock rate.
remote_inbound->jitter =
- static_cast<double>(report_block.jitter) / *codec.clock_rate;
+ report_block.jitter(*codec.clock_rate).seconds<double>();
}
}
}
diff --git a/pc/rtc_stats_collector_unittest.cc b/pc/rtc_stats_collector_unittest.cc
index 9db5b3f..2358e3b 100644
--- a/pc/rtc_stats_collector_unittest.cc
+++ b/pc/rtc_stats_collector_unittest.cc
@@ -3556,8 +3556,7 @@
for (const auto& report_block_data : report_block_datas) {
cricket::VoiceSenderInfo sender;
sender.local_stats.push_back(cricket::SsrcSenderInfo());
- sender.local_stats[0].ssrc =
- report_block_data.report_block().source_ssrc;
+ sender.local_stats[0].ssrc = report_block_data.source_ssrc();
if (codec.has_value()) {
sender.codec_payload_type = codec->payload_type;
voice_media_info.send_codecs.insert(
@@ -3574,8 +3573,7 @@
for (const auto& report_block_data : report_block_datas) {
cricket::VideoSenderInfo sender;
sender.local_stats.push_back(cricket::SsrcSenderInfo());
- sender.local_stats[0].ssrc =
- report_block_data.report_block().source_ssrc;
+ sender.local_stats[0].ssrc = report_block_data.source_ssrc();
if (codec.has_value()) {
sender.codec_payload_type = codec->payload_type;
video_media_info.send_codecs.insert(