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

Side by Side Diff: content/renderer/media/media_stream_audio_processor_options.cc

Issue 1081063003: [media_stream_audio_processor] Avoids updating UMA stats before AEC has valid results (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed {} Created 5 years, 8 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 | « content/renderer/media/media_stream_audio_processor_options.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/media_stream_audio_processor_options.h" 5 #include "content/renderer/media/media_stream_audio_processor_options.h"
6 6
7 #include "base/files/file_path.h" 7 #include "base/files/file_path.h"
8 #include "base/files/file_util.h" 8 #include "base/files/file_util.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/metrics/field_trial.h" 10 #include "base/metrics/field_trial.h"
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 215
216 for (size_t i = 0; i < arraysize(kDefaultAudioConstraints); ++i) { 216 for (size_t i = 0; i < arraysize(kDefaultAudioConstraints); ++i) {
217 if (kDefaultAudioConstraints[i].key == key) 217 if (kDefaultAudioConstraints[i].key == key)
218 return kDefaultAudioConstraints[i].value; 218 return kDefaultAudioConstraints[i].value;
219 } 219 }
220 220
221 return false; 221 return false;
222 } 222 }
223 223
224 EchoInformation::EchoInformation() 224 EchoInformation::EchoInformation()
225 : num_chunks_(0) {} 225 : num_chunks_(0), echo_frames_received_(false) {
226 }
226 227
227 EchoInformation::~EchoInformation() {} 228 EchoInformation::~EchoInformation() {}
228 229
229 void EchoInformation::UpdateAecDelayStats( 230 void EchoInformation::UpdateAecDelayStats(
230 webrtc::EchoCancellation* echo_cancellation) { 231 webrtc::EchoCancellation* echo_cancellation) {
232 // Only start collecting stats if we know echo cancellation has measured an
233 // echo. Otherwise we clutter the stats with for example cases where only the
234 // microphone is used.
235 if (!echo_frames_received_ & !echo_cancellation->stream_has_echo())
236 return;
237
238 echo_frames_received_ = true;
231 // In WebRTC, three echo delay metrics are calculated and updated every 239 // In WebRTC, three echo delay metrics are calculated and updated every
232 // five seconds. We use one of them, |fraction_poor_delays| to log in a UMA 240 // five seconds. We use one of them, |fraction_poor_delays| to log in a UMA
233 // histogram an Echo Cancellation quality metric. The stat in WebRTC has a 241 // histogram an Echo Cancellation quality metric. The stat in WebRTC has a
234 // fixed aggregation window of five seconds, so we use the same query 242 // fixed aggregation window of five seconds, so we use the same query
235 // frequency to avoid logging old values. 243 // frequency to avoid logging old values.
236 const int kNumChunksInFiveSeconds = 500; 244 const int kNumChunksInFiveSeconds = 500;
237 if (!echo_cancellation->is_delay_logging_enabled() || 245 if (!echo_cancellation->is_delay_logging_enabled() ||
238 !echo_cancellation->is_enabled()) { 246 !echo_cancellation->is_enabled()) {
239 return; 247 return;
240 } 248 }
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 int median = 0, std = 0; 378 int median = 0, std = 0;
371 float dummy = 0; 379 float dummy = 0;
372 if (echo_cancellation->GetDelayMetrics(&median, &std, &dummy) == 380 if (echo_cancellation->GetDelayMetrics(&median, &std, &dummy) ==
373 webrtc::AudioProcessing::kNoError) { 381 webrtc::AudioProcessing::kNoError) {
374 stats->echo_delay_median_ms = median; 382 stats->echo_delay_median_ms = median;
375 stats->echo_delay_std_ms = std; 383 stats->echo_delay_std_ms = std;
376 } 384 }
377 } 385 }
378 386
379 } // namespace content 387 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_audio_processor_options.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698