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

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

Issue 185413009: Implements the GetSignalLevel and GetStats interface for the local audio track. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 6 years, 9 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
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/logging.h" 8 #include "base/logging.h"
9 #include "base/path_service.h" 9 #include "base/path_service.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 #if defined(OS_ANDROID) || defined(OS_IOS) 171 #if defined(OS_ANDROID) || defined(OS_IOS)
172 const webrtc::GainControl::Mode mode = webrtc::GainControl::kFixedDigital; 172 const webrtc::GainControl::Mode mode = webrtc::GainControl::kFixedDigital;
173 #else 173 #else
174 const webrtc::GainControl::Mode mode = webrtc::GainControl::kAdaptiveAnalog; 174 const webrtc::GainControl::Mode mode = webrtc::GainControl::kAdaptiveAnalog;
175 #endif 175 #endif
176 int err = audio_processing->gain_control()->set_mode(mode); 176 int err = audio_processing->gain_control()->set_mode(mode);
177 err |= audio_processing->gain_control()->Enable(true); 177 err |= audio_processing->gain_control()->Enable(true);
178 CHECK_EQ(err, 0); 178 CHECK_EQ(err, 0);
179 } 179 }
180 180
181 void GetAecStats(AudioProcessing* audio_processing,
ajm 2014/03/04 02:23:12 How often is this method polled? Calling GetMetric
no longer working on chromium 2014/03/04 15:48:59 Definitely. The method is triggered by StatsColle
182 webrtc::AudioProcessorInterface::AudioProcessorStats* stats) {
183 // These values can take on valid negative values, so use the lowest possible
184 // level as default rather than -1.
185 stats->echo_return_loss = -100;
tommi (sloooow) - chröme 2014/03/03 15:25:18 Where is it documented that these are the lowest p
ajm 2014/03/04 02:23:12 I had a look and unfortunately it's not documented
no longer working on chromium 2014/03/04 15:48:59 Thanks.
186 stats->echo_return_loss_enhancement = -100;
187
188 // These values can also be negative, but in practice -1 is only used to
189 // signal insufficient data, since the resolution is limited to multiples
190 // of 4ms.
191 stats->echo_delay_median_ms = -1;
192 stats->echo_delay_std_ms = -1;
193
194 // TODO(ajm): Re-enable this metric once we have a reliable implementation.
195 stats->aec_quality_min = -1.0f;
196
197 if (!audio_processing->echo_cancellation()->are_metrics_enabled() ||
198 !audio_processing->echo_cancellation()->is_delay_logging_enabled() ||
199 !audio_processing->echo_cancellation()->is_enabled()) {
200 return;
201 }
202
203 // TODO(ajm): we may want to use VoECallReport::GetEchoMetricsSummary
204 // here, but it appears to be unsuitable currently. Revisit after this is
205 // investigated: http://b/issue?id=5666755
206 webrtc::EchoCancellation::Metrics echo_metrics;
207 if (!audio_processing->echo_cancellation()->GetMetrics(&echo_metrics)) {
208 stats->echo_return_loss = echo_metrics.echo_return_loss.instant;
209 stats->echo_return_loss_enhancement =
210 echo_metrics.echo_return_loss_enhancement.instant;
211 }
212
213 int median = 0, std = 0;
214 if (!audio_processing->echo_cancellation()->GetDelayMetrics(&median, &std)) {
215 stats->echo_delay_median_ms = median;
216 stats->echo_delay_std_ms = std;
217 }
218 }
219
181 } // namespace content 220 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698