Reland "[Stats] Add value_or() and migrate from ValueOrDefault()."
This is a reland of commit 9e4a97bb02663604b02e219b9d501a8dd91b5614 Original change's description: > [Stats] Add value_or() and migrate from ValueOrDefault(). > > Yet another prerequisite for replacing RTCStatsMember<T> with > absl::optional<T>, but this looks like the last one. > > Bug: webrtc:15164 > Change-Id: I2cde51e8c8c951f71b48ccd45e07146091a99616 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/334647 > Commit-Queue: Henrik Boström <hbos@webrtc.org> > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > Cr-Commit-Position: refs/heads/main@{#41541} Bug: webrtc:15164 Change-Id: I5fdba499383e5d9efe0a1dcef6bf6c2e0a812857 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335102 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Henrik Boström <hbos@webrtc.org> Cr-Commit-Position: refs/heads/main@{#41564}
This commit is contained in:
parent
fb99c6ebb5
commit
df0b363cf0
@ -102,9 +102,14 @@ class RTCStatsMember : public RTCStatsMemberInterface {
|
||||
std::string ValueToJson() const override;
|
||||
|
||||
template <typename U>
|
||||
inline T ValueOrDefault(U default_value) const {
|
||||
inline T value_or(U default_value) const {
|
||||
return value_.value_or(default_value);
|
||||
}
|
||||
// TODO(https://crbug.com/webrtc/15164): Migrate to value_or() and delete.
|
||||
template <typename U>
|
||||
inline T ValueOrDefault(U default_value) const {
|
||||
return value_or(default_value);
|
||||
}
|
||||
|
||||
// Assignment operators.
|
||||
T& operator=(const T& value) {
|
||||
|
||||
@ -1191,7 +1191,7 @@ TEST_F(PeerConnectionEncodingsIntegrationTest,
|
||||
ASSERT_EQ(outbound_rtps.size(), 1u);
|
||||
std::string codec_name = GetCurrentCodecMimeType(report, *outbound_rtps[0]);
|
||||
EXPECT_STRCASEEQ(("video/" + vp9->name).c_str(), codec_name.c_str());
|
||||
EXPECT_EQ(outbound_rtps[0]->scalability_mode.ValueOrDefault(""), "L3T3");
|
||||
EXPECT_EQ(outbound_rtps[0]->scalability_mode.value_or(""), "L3T3");
|
||||
}
|
||||
|
||||
TEST_F(PeerConnectionEncodingsIntegrationTest,
|
||||
|
||||
@ -638,7 +638,7 @@ class RTCStatsReportVerifier {
|
||||
inbound_stream.header_bytes_received);
|
||||
verifier.TestAttributeIsDefined(
|
||||
inbound_stream.last_packet_received_timestamp);
|
||||
if (inbound_stream.frames_received.ValueOrDefault(0) > 0) {
|
||||
if (inbound_stream.frames_received.value_or(0) > 0) {
|
||||
verifier.TestAttributeIsNonNegative<uint32_t>(inbound_stream.frame_width);
|
||||
verifier.TestAttributeIsNonNegative<uint32_t>(
|
||||
inbound_stream.frame_height);
|
||||
|
||||
@ -47,24 +47,22 @@ void DefaultAudioQualityAnalyzer::OnStatsReports(
|
||||
}
|
||||
|
||||
StatsSample sample;
|
||||
sample.total_samples_received =
|
||||
stat->total_samples_received.ValueOrDefault(0ul);
|
||||
sample.concealed_samples = stat->concealed_samples.ValueOrDefault(0ul);
|
||||
sample.total_samples_received = stat->total_samples_received.value_or(0ul);
|
||||
sample.concealed_samples = stat->concealed_samples.value_or(0ul);
|
||||
sample.removed_samples_for_acceleration =
|
||||
stat->removed_samples_for_acceleration.ValueOrDefault(0ul);
|
||||
stat->removed_samples_for_acceleration.value_or(0ul);
|
||||
sample.inserted_samples_for_deceleration =
|
||||
stat->inserted_samples_for_deceleration.ValueOrDefault(0ul);
|
||||
stat->inserted_samples_for_deceleration.value_or(0ul);
|
||||
sample.silent_concealed_samples =
|
||||
stat->silent_concealed_samples.ValueOrDefault(0ul);
|
||||
stat->silent_concealed_samples.value_or(0ul);
|
||||
sample.jitter_buffer_delay =
|
||||
TimeDelta::Seconds(stat->jitter_buffer_delay.ValueOrDefault(0.));
|
||||
TimeDelta::Seconds(stat->jitter_buffer_delay.value_or(0.));
|
||||
sample.jitter_buffer_target_delay =
|
||||
TimeDelta::Seconds(stat->jitter_buffer_target_delay.ValueOrDefault(0.));
|
||||
TimeDelta::Seconds(stat->jitter_buffer_target_delay.value_or(0.));
|
||||
sample.jitter_buffer_emitted_count =
|
||||
stat->jitter_buffer_emitted_count.ValueOrDefault(0ul);
|
||||
sample.total_samples_duration =
|
||||
stat->total_samples_duration.ValueOrDefault(0.);
|
||||
sample.total_audio_energy = stat->total_audio_energy.ValueOrDefault(0.);
|
||||
stat->jitter_buffer_emitted_count.value_or(0ul);
|
||||
sample.total_samples_duration = stat->total_samples_duration.value_or(0.);
|
||||
sample.total_audio_energy = stat->total_audio_energy.value_or(0.);
|
||||
|
||||
TrackIdStreamInfoMap::StreamInfo stream_info =
|
||||
analyzer_helper_->GetStreamInfoFromTrackId(*stat->track_identifier);
|
||||
|
||||
@ -81,10 +81,10 @@ void VideoQualityMetricsReporter::OnStatsReports(
|
||||
sample.sample_time = s->timestamp();
|
||||
}
|
||||
sample.retransmitted_bytes_sent +=
|
||||
DataSize::Bytes(s->retransmitted_bytes_sent.ValueOrDefault(0ul));
|
||||
sample.bytes_sent += DataSize::Bytes(s->bytes_sent.ValueOrDefault(0ul));
|
||||
DataSize::Bytes(s->retransmitted_bytes_sent.value_or(0ul));
|
||||
sample.bytes_sent += DataSize::Bytes(s->bytes_sent.value_or(0ul));
|
||||
sample.header_bytes_sent +=
|
||||
DataSize::Bytes(s->header_bytes_sent.ValueOrDefault(0ul));
|
||||
DataSize::Bytes(s->header_bytes_sent.value_or(0ul));
|
||||
}
|
||||
|
||||
MutexLock lock(&video_bwe_stats_lock_);
|
||||
|
||||
@ -47,7 +47,7 @@ void CrossMediaMetricsReporter::OnStatsReports(
|
||||
std::map<std::string, std::vector<const RTCInboundRtpStreamStats*>>
|
||||
sync_group_stats;
|
||||
for (const auto& stat : inbound_stats) {
|
||||
if (stat->estimated_playout_timestamp.ValueOrDefault(0.) > 0 &&
|
||||
if (stat->estimated_playout_timestamp.value_or(0.) > 0 &&
|
||||
stat->track_identifier.is_defined()) {
|
||||
sync_group_stats[reporter_helper_
|
||||
->GetStreamInfoFromTrackId(*stat->track_identifier)
|
||||
|
||||
@ -79,15 +79,14 @@ void NetworkQualityMetricsReporter::OnStatsReports(
|
||||
auto inbound_stats = report->GetStatsOfType<RTCInboundRtpStreamStats>();
|
||||
for (const auto& stat : inbound_stats) {
|
||||
payload_received +=
|
||||
DataSize::Bytes(stat->bytes_received.ValueOrDefault(0ul) +
|
||||
stat->header_bytes_received.ValueOrDefault(0ul));
|
||||
DataSize::Bytes(stat->bytes_received.value_or(0ul) +
|
||||
stat->header_bytes_received.value_or(0ul));
|
||||
}
|
||||
|
||||
auto outbound_stats = report->GetStatsOfType<RTCOutboundRtpStreamStats>();
|
||||
for (const auto& stat : outbound_stats) {
|
||||
payload_sent +=
|
||||
DataSize::Bytes(stat->bytes_sent.ValueOrDefault(0ul) +
|
||||
stat->header_bytes_sent.ValueOrDefault(0ul));
|
||||
payload_sent += DataSize::Bytes(stat->bytes_sent.value_or(0ul) +
|
||||
stat->header_bytes_sent.value_or(0ul));
|
||||
}
|
||||
|
||||
MutexLock lock(&lock_);
|
||||
|
||||
@ -299,25 +299,23 @@ void StatsBasedNetworkQualityMetricsReporter::OnStatsReports(
|
||||
auto inbound_stats = report->GetStatsOfType<RTCInboundRtpStreamStats>();
|
||||
for (const auto& stat : inbound_stats) {
|
||||
cur_stats.payload_received +=
|
||||
DataSize::Bytes(stat->bytes_received.ValueOrDefault(0ul) +
|
||||
stat->header_bytes_received.ValueOrDefault(0ul));
|
||||
DataSize::Bytes(stat->bytes_received.value_or(0ul) +
|
||||
stat->header_bytes_received.value_or(0ul));
|
||||
}
|
||||
|
||||
auto outbound_stats = report->GetStatsOfType<RTCOutboundRtpStreamStats>();
|
||||
for (const auto& stat : outbound_stats) {
|
||||
cur_stats.payload_sent +=
|
||||
DataSize::Bytes(stat->bytes_sent.ValueOrDefault(0ul) +
|
||||
stat->header_bytes_sent.ValueOrDefault(0ul));
|
||||
cur_stats.payload_sent += DataSize::Bytes(
|
||||
stat->bytes_sent.value_or(0ul) + stat->header_bytes_sent.value_or(0ul));
|
||||
}
|
||||
|
||||
auto candidate_pairs_stats = report->GetStatsOfType<RTCTransportStats>();
|
||||
for (const auto& stat : candidate_pairs_stats) {
|
||||
cur_stats.total_received +=
|
||||
DataSize::Bytes(stat->bytes_received.ValueOrDefault(0ul));
|
||||
cur_stats.total_sent +=
|
||||
DataSize::Bytes(stat->bytes_sent.ValueOrDefault(0ul));
|
||||
cur_stats.packets_received += stat->packets_received.ValueOrDefault(0ul);
|
||||
cur_stats.packets_sent += stat->packets_sent.ValueOrDefault(0ul);
|
||||
DataSize::Bytes(stat->bytes_received.value_or(0ul));
|
||||
cur_stats.total_sent += DataSize::Bytes(stat->bytes_sent.value_or(0ul));
|
||||
cur_stats.packets_received += stat->packets_received.value_or(0ul);
|
||||
cur_stats.packets_sent += stat->packets_sent.value_or(0ul);
|
||||
}
|
||||
|
||||
MutexLock lock(&mutex_);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user