Index: webrtc/api/statscollector.cc |
diff --git a/webrtc/api/statscollector.cc b/webrtc/api/statscollector.cc |
index 82c97cc7cd5929af4a545a7f3c9a20f48a173f18..df1d0aa0d32235beb5d6422e665348a9eb8f7eac 100644 |
--- a/webrtc/api/statscollector.cc |
+++ b/webrtc/api/statscollector.cc |
@@ -88,7 +88,9 @@ void ExtractCommonSendProperties(const cricket::MediaSenderInfo& info, |
StatsReport* report) { |
report->AddString(StatsReport::kStatsValueNameCodecName, info.codec_name); |
report->AddInt64(StatsReport::kStatsValueNameBytesSent, info.bytes_sent); |
- report->AddInt64(StatsReport::kStatsValueNameRtt, info.rtt_ms); |
+ if (info.rtt_ms >= 0) { |
+ report->AddInt64(StatsReport::kStatsValueNameRtt, info.rtt_ms); |
+ } |
} |
void ExtractCommonReceiveProperties(const cricket::MediaReceiverInfo& info, |
@@ -105,17 +107,23 @@ void SetAudioProcessingStats(StatsReport* report, |
int echo_delay_std_ms) { |
report->AddBoolean(StatsReport::kStatsValueNameTypingNoiseState, |
typing_noise_detected); |
- report->AddFloat(StatsReport::kStatsValueNameEchoCancellationQualityMin, |
- aec_quality_min); |
+ if (aec_quality_min >= 0.0f) { |
+ report->AddFloat(StatsReport::kStatsValueNameEchoCancellationQualityMin, |
+ aec_quality_min); |
+ } |
const IntForAdd ints[] = { |
- { StatsReport::kStatsValueNameEchoReturnLoss, echo_return_loss }, |
- { StatsReport::kStatsValueNameEchoReturnLossEnhancement, |
- echo_return_loss_enhancement }, |
{ StatsReport::kStatsValueNameEchoDelayMedian, echo_delay_median_ms }, |
{ StatsReport::kStatsValueNameEchoDelayStdDev, echo_delay_std_ms }, |
}; |
- for (const auto& i : ints) |
- report->AddInt(i.name, i.value); |
+ for (const auto& i : ints) { |
+ if (i.value >= 0) { |
+ report->AddInt(i.name, i.value); |
+ } |
+ } |
+ // These can take on valid negative values. |
+ report->AddInt(StatsReport::kStatsValueNameEchoReturnLoss, echo_return_loss); |
+ report->AddInt(StatsReport::kStatsValueNameEchoReturnLossEnhancement, |
+ echo_return_loss_enhancement); |
} |
void ExtractStats(const cricket::VoiceReceiverInfo& info, StatsReport* report) { |
@@ -131,7 +139,6 @@ void ExtractStats(const cricket::VoiceReceiverInfo& info, StatsReport* report) { |
}; |
const IntForAdd ints[] = { |
- { StatsReport::kStatsValueNameAudioOutputLevel, info.audio_level }, |
{ StatsReport::kStatsValueNameCurrentDelayMs, info.delay_estimate_ms }, |
{ StatsReport::kStatsValueNameDecodingCNG, info.decoding_cng }, |
{ StatsReport::kStatsValueNameDecodingCTN, info.decoding_calls_to_neteq }, |
@@ -153,11 +160,17 @@ void ExtractStats(const cricket::VoiceReceiverInfo& info, StatsReport* report) { |
for (const auto& i : ints) |
report->AddInt(i.name, i.value); |
+ if (info.audio_level >= 0) { |
+ report->AddInt(StatsReport::kStatsValueNameAudioOutputLevel, |
+ info.audio_level); |
+ } |
report->AddInt64(StatsReport::kStatsValueNameBytesReceived, |
info.bytes_rcvd); |
- report->AddInt64(StatsReport::kStatsValueNameCaptureStartNtpTimeMs, |
- info.capture_start_ntp_time_ms); |
+ if (info.capture_start_ntp_time_ms >= 0) { |
+ report->AddInt64(StatsReport::kStatsValueNameCaptureStartNtpTimeMs, |
+ info.capture_start_ntp_time_ms); |
+ } |
report->AddString(StatsReport::kStatsValueNameMediaType, "audio"); |
} |
@@ -177,8 +190,11 @@ void ExtractStats(const cricket::VoiceSenderInfo& info, StatsReport* report) { |
{ StatsReport::kStatsValueNamePacketsSent, info.packets_sent }, |
}; |
- for (const auto& i : ints) |
- report->AddInt(i.name, i.value); |
+ for (const auto& i : ints) { |
+ if (i.value >= 0) { |
+ report->AddInt(i.name, i.value); |
+ } |
+ } |
report->AddString(StatsReport::kStatsValueNameMediaType, "audio"); |
} |
@@ -188,8 +204,10 @@ void ExtractStats(const cricket::VideoReceiverInfo& info, StatsReport* report) { |
info.decoder_implementation_name); |
report->AddInt64(StatsReport::kStatsValueNameBytesReceived, |
info.bytes_rcvd); |
- report->AddInt64(StatsReport::kStatsValueNameCaptureStartNtpTimeMs, |
- info.capture_start_ntp_time_ms); |
+ if (info.capture_start_ntp_time_ms >= 0) { |
+ report->AddInt64(StatsReport::kStatsValueNameCaptureStartNtpTimeMs, |
+ info.capture_start_ntp_time_ms); |
+ } |
const IntForAdd ints[] = { |
{ StatsReport::kStatsValueNameCurrentDelayMs, info.current_delay_ms }, |
{ StatsReport::kStatsValueNameDecodeMs, info.decode_ms }, |
@@ -870,7 +888,10 @@ void StatsCollector::ExtractDataInfo() { |
StatsReport* report = reports_.ReplaceOrAddNew(id); |
report->set_timestamp(stats_gathering_started_); |
report->AddString(StatsReport::kStatsValueNameLabel, dc->label()); |
- report->AddInt(StatsReport::kStatsValueNameDataChannelId, dc->id()); |
+ // Filter out the initial id (-1). |
+ if (dc->id() >= 0) { |
+ report->AddInt(StatsReport::kStatsValueNameDataChannelId, dc->id()); |
+ } |
report->AddString(StatsReport::kStatsValueNameProtocol, dc->protocol()); |
report->AddString(StatsReport::kStatsValueNameState, |
DataChannelInterface::DataStateString(dc->state())); |