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

Unified Diff: media/audio/audio_power_monitor.cc

Issue 287873004: Adds volume level measurements to the AudioInputController for low-latency clients (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: refactored Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: media/audio/audio_power_monitor.cc
diff --git a/media/audio/audio_power_monitor.cc b/media/audio/audio_power_monitor.cc
index 6536f464b9c16905e7d4080a907b5a4df5678acf..d696ac9d2b9dbd9b684f564aa40c1633166052f0 100644
--- a/media/audio/audio_power_monitor.cc
+++ b/media/audio/audio_power_monitor.cc
@@ -15,6 +15,8 @@
namespace media {
+static const float kTimeConstantInSec = 0.01f;
+
AudioPowerMonitor::AudioPowerMonitor(
int sample_rate, const base::TimeDelta& time_constant)
: sample_weight_(
@@ -22,6 +24,13 @@ AudioPowerMonitor::AudioPowerMonitor(
Reset();
}
+AudioPowerMonitor::AudioPowerMonitor(const AudioParameters& params)
+ : sample_weight_(
+ 1.0f - expf(-1.0f / (params.sample_rate() * kTimeConstantInSec))),
no longer working on chromium 2014/05/19 15:15:48 indentation.
+ audio_bus_(AudioBus::Create(params)),
+ params_(params) {
+}
+
AudioPowerMonitor::~AudioPowerMonitor() {
}
@@ -66,6 +75,13 @@ void AudioPowerMonitor::Scan(const AudioBus& buffer, int num_frames) {
}
}
+void AudioPowerMonitor::Scan(const void* data, uint32 size) {
no longer working on chromium 2014/05/19 15:15:48 Ideally we should not change this audio_power_moni
henrika (OOO until Aug 14) 2014/05/19 15:25:46 It is a rather big change to do that for all platf
+ DCHECK_EQ(static_cast<int>(size), params_.GetBytesPerBuffer());
+ audio_bus_->FromInterleaved(
+ data, audio_bus_->frames(), params_.bits_per_sample() / 8);
+ Scan(*audio_bus_, audio_bus_->frames());
+}
+
std::pair<float, bool> AudioPowerMonitor::ReadCurrentPowerAndClip() {
base::AutoLock for_reading(reading_lock_);

Powered by Google App Engine
This is Rietveld 408576698