Index: media/base/audio_bus.cc |
diff --git a/media/base/audio_bus.cc b/media/base/audio_bus.cc |
index 0dc3300b8defc9e3964555df11d049e8892715ab..43dd341001c645fc8ea6c696dc505049ff75a137 100644 |
--- a/media/base/audio_bus.cc |
+++ b/media/base/audio_bus.cc |
@@ -9,6 +9,7 @@ |
#include "base/logging.h" |
#include "media/audio/audio_parameters.h" |
#include "media/base/limits.h" |
+#include "media/base/vector_math.h" |
namespace media { |
@@ -307,4 +308,13 @@ void AudioBus::CopyTo(AudioBus* dest) const { |
memcpy(dest->channel(i), channel(i), sizeof(*channel(i)) * frames()); |
} |
+void AudioBus::Scale(float volume) { |
+ if (volume > 0 && volume != 1) { |
+ for (int i = 0; i < channels(); ++i) |
+ vector_math::FMUL(channel(i), volume, frames(), channel(i)); |
+ } else if (volume == 0) { |
+ Zero(); |
+ } |
+} |
+ |
} // namespace media |