Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(155)

Side by Side Diff: webrtc/api/statscollector.cc

Issue 2431443003: Add a placeholder stat for logging the estimated residual echo likelihood. (Closed)
Patch Set: Fredrik's comments. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/api/mediastreaminterface.h ('k') | webrtc/api/statscollector_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 StatsReport* report) { 96 StatsReport* report) {
97 report->AddString(StatsReport::kStatsValueNameCodecName, info.codec_name); 97 report->AddString(StatsReport::kStatsValueNameCodecName, info.codec_name);
98 } 98 }
99 99
100 void SetAudioProcessingStats(StatsReport* report, 100 void SetAudioProcessingStats(StatsReport* report,
101 bool typing_noise_detected, 101 bool typing_noise_detected,
102 int echo_return_loss, 102 int echo_return_loss,
103 int echo_return_loss_enhancement, 103 int echo_return_loss_enhancement,
104 int echo_delay_median_ms, 104 int echo_delay_median_ms,
105 float aec_quality_min, 105 float aec_quality_min,
106 int echo_delay_std_ms) { 106 int echo_delay_std_ms,
107 float residual_echo_likelihood) {
107 report->AddBoolean(StatsReport::kStatsValueNameTypingNoiseState, 108 report->AddBoolean(StatsReport::kStatsValueNameTypingNoiseState,
108 typing_noise_detected); 109 typing_noise_detected);
109 if (aec_quality_min >= 0.0f) { 110 if (aec_quality_min >= 0.0f) {
110 report->AddFloat(StatsReport::kStatsValueNameEchoCancellationQualityMin, 111 report->AddFloat(StatsReport::kStatsValueNameEchoCancellationQualityMin,
111 aec_quality_min); 112 aec_quality_min);
112 } 113 }
113 const IntForAdd ints[] = { 114 const IntForAdd ints[] = {
114 { StatsReport::kStatsValueNameEchoDelayMedian, echo_delay_median_ms }, 115 { StatsReport::kStatsValueNameEchoDelayMedian, echo_delay_median_ms },
115 { StatsReport::kStatsValueNameEchoDelayStdDev, echo_delay_std_ms }, 116 { StatsReport::kStatsValueNameEchoDelayStdDev, echo_delay_std_ms },
116 }; 117 };
117 for (const auto& i : ints) { 118 for (const auto& i : ints) {
118 if (i.value >= 0) { 119 if (i.value >= 0) {
119 report->AddInt(i.name, i.value); 120 report->AddInt(i.name, i.value);
120 } 121 }
121 } 122 }
122 // These can take on valid negative values. 123 // These can take on valid negative values.
123 report->AddInt(StatsReport::kStatsValueNameEchoReturnLoss, echo_return_loss); 124 report->AddInt(StatsReport::kStatsValueNameEchoReturnLoss, echo_return_loss);
124 report->AddInt(StatsReport::kStatsValueNameEchoReturnLossEnhancement, 125 report->AddInt(StatsReport::kStatsValueNameEchoReturnLossEnhancement,
125 echo_return_loss_enhancement); 126 echo_return_loss_enhancement);
127 if (residual_echo_likelihood >= 0.0f) {
128 report->AddFloat(StatsReport::kStatsValueNameResidualEchoLikelihood,
129 residual_echo_likelihood);
130 }
126 } 131 }
127 132
128 void ExtractStats(const cricket::VoiceReceiverInfo& info, StatsReport* report) { 133 void ExtractStats(const cricket::VoiceReceiverInfo& info, StatsReport* report) {
129 ExtractCommonReceiveProperties(info, report); 134 ExtractCommonReceiveProperties(info, report);
130 const FloatForAdd floats[] = { 135 const FloatForAdd floats[] = {
131 { StatsReport::kStatsValueNameExpandRate, info.expand_rate }, 136 { StatsReport::kStatsValueNameExpandRate, info.expand_rate },
132 { StatsReport::kStatsValueNameSecondaryDecodedRate, 137 { StatsReport::kStatsValueNameSecondaryDecodedRate,
133 info.secondary_decoded_rate }, 138 info.secondary_decoded_rate },
134 { StatsReport::kStatsValueNameSpeechExpandRate, info.speech_expand_rate }, 139 { StatsReport::kStatsValueNameSpeechExpandRate, info.speech_expand_rate },
135 { StatsReport::kStatsValueNameAccelerateRate, info.accelerate_rate }, 140 { StatsReport::kStatsValueNameAccelerateRate, info.accelerate_rate },
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 } 179 }
175 report->AddString(StatsReport::kStatsValueNameMediaType, "audio"); 180 report->AddString(StatsReport::kStatsValueNameMediaType, "audio");
176 } 181 }
177 182
178 void ExtractStats(const cricket::VoiceSenderInfo& info, StatsReport* report) { 183 void ExtractStats(const cricket::VoiceSenderInfo& info, StatsReport* report) {
179 ExtractCommonSendProperties(info, report); 184 ExtractCommonSendProperties(info, report);
180 185
181 SetAudioProcessingStats( 186 SetAudioProcessingStats(
182 report, info.typing_noise_detected, info.echo_return_loss, 187 report, info.typing_noise_detected, info.echo_return_loss,
183 info.echo_return_loss_enhancement, info.echo_delay_median_ms, 188 info.echo_return_loss_enhancement, info.echo_delay_median_ms,
184 info.aec_quality_min, info.echo_delay_std_ms); 189 info.aec_quality_min, info.echo_delay_std_ms,
190 info.residual_echo_likelihood);
185 191
186 RTC_DCHECK_GE(info.audio_level, 0); 192 RTC_DCHECK_GE(info.audio_level, 0);
187 const IntForAdd ints[] = { 193 const IntForAdd ints[] = {
188 { StatsReport::kStatsValueNameAudioInputLevel, info.audio_level}, 194 { StatsReport::kStatsValueNameAudioInputLevel, info.audio_level},
189 { StatsReport::kStatsValueNameJitterReceived, info.jitter_ms }, 195 { StatsReport::kStatsValueNameJitterReceived, info.jitter_ms },
190 { StatsReport::kStatsValueNamePacketsLost, info.packets_lost }, 196 { StatsReport::kStatsValueNamePacketsLost, info.packets_lost },
191 { StatsReport::kStatsValueNamePacketsSent, info.packets_sent }, 197 { StatsReport::kStatsValueNamePacketsSent, info.packets_sent },
192 }; 198 };
193 199
194 for (const auto& i : ints) { 200 for (const auto& i : ints) {
(...skipping 724 matching lines...) Expand 10 before | Expand all | Expand 10 after
919 925
920 auto audio_processor(track->GetAudioProcessor()); 926 auto audio_processor(track->GetAudioProcessor());
921 927
922 if (audio_processor.get()) { 928 if (audio_processor.get()) {
923 AudioProcessorInterface::AudioProcessorStats stats; 929 AudioProcessorInterface::AudioProcessorStats stats;
924 audio_processor->GetStats(&stats); 930 audio_processor->GetStats(&stats);
925 931
926 SetAudioProcessingStats( 932 SetAudioProcessingStats(
927 report, stats.typing_noise_detected, stats.echo_return_loss, 933 report, stats.typing_noise_detected, stats.echo_return_loss,
928 stats.echo_return_loss_enhancement, stats.echo_delay_median_ms, 934 stats.echo_return_loss_enhancement, stats.echo_delay_median_ms,
929 stats.aec_quality_min, stats.echo_delay_std_ms); 935 stats.aec_quality_min, stats.echo_delay_std_ms,
936 stats.residual_echo_likelihood);
930 937
931 report->AddFloat(StatsReport::kStatsValueNameAecDivergentFilterFraction, 938 report->AddFloat(StatsReport::kStatsValueNameAecDivergentFilterFraction,
932 stats.aec_divergent_filter_fraction); 939 stats.aec_divergent_filter_fraction);
933 } 940 }
934 } 941 }
935 942
936 bool StatsCollector::GetTrackIdBySsrc(uint32_t ssrc, 943 bool StatsCollector::GetTrackIdBySsrc(uint32_t ssrc,
937 std::string* track_id, 944 std::string* track_id,
938 StatsReport::Direction direction) { 945 StatsReport::Direction direction) {
939 RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); 946 RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent());
(...skipping 24 matching lines...) Expand all
964 StatsReport* report = entry.second; 971 StatsReport* report = entry.second;
965 report->set_timestamp(stats_gathering_started_); 972 report->set_timestamp(stats_gathering_started_);
966 } 973 }
967 } 974 }
968 975
969 void StatsCollector::ClearUpdateStatsCacheForTest() { 976 void StatsCollector::ClearUpdateStatsCacheForTest() {
970 stats_gathering_started_ = 0; 977 stats_gathering_started_ = 0;
971 } 978 }
972 979
973 } // namespace webrtc 980 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/api/mediastreaminterface.h ('k') | webrtc/api/statscollector_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698