| Index: content/renderer/media/media_stream_audio_level_calculator.cc
|
| diff --git a/content/renderer/media/media_stream_audio_level_calculator.cc b/content/renderer/media/media_stream_audio_level_calculator.cc
|
| index a136e32ae1009dbe87139f04a687a3a038d4ac69..33f3c5314b040fdf83e80b1801626fc3f94ae232 100644
|
| --- a/content/renderer/media/media_stream_audio_level_calculator.cc
|
| +++ b/content/renderer/media/media_stream_audio_level_calculator.cc
|
| @@ -40,7 +40,8 @@ MediaStreamAudioLevelCalculator::~MediaStreamAudioLevelCalculator() {
|
|
|
| int MediaStreamAudioLevelCalculator::Calculate(const int16* audio_data,
|
| int number_of_channels,
|
| - int number_of_frames) {
|
| + int number_of_frames,
|
| + bool has_energy) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| // |level_| is updated every 10 callbacks. For the case where callback comes
|
| // every 10ms, |level_| will be updated approximately every 100ms.
|
| @@ -50,7 +51,7 @@ int MediaStreamAudioLevelCalculator::Calculate(const int16* audio_data,
|
| max_amplitude_ = std::max(max_amplitude_, max);
|
|
|
| if (counter_++ == kUpdateFrequency) {
|
| - level_ = max_amplitude_;
|
| + level_ = (max_amplitude_ == 0 ? has_energy : max_amplitude_);
|
|
|
| // Decay the absolute maximum amplitude by 1/4.
|
| max_amplitude_ >>= 2;
|
|
|