| 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..9994b695e1182f443cd9635f40254c3457edc1ae 100644
|
| --- a/content/renderer/media/media_stream_audio_level_calculator.cc
|
| +++ b/content/renderer/media/media_stream_audio_level_calculator.cc
|
| @@ -38,9 +38,11 @@ MediaStreamAudioLevelCalculator::MediaStreamAudioLevelCalculator()
|
| MediaStreamAudioLevelCalculator::~MediaStreamAudioLevelCalculator() {
|
| }
|
|
|
| -int MediaStreamAudioLevelCalculator::Calculate(const int16* audio_data,
|
| - int number_of_channels,
|
| - int number_of_frames) {
|
| +int MediaStreamAudioLevelCalculator::Calculate(
|
| + const int16* audio_data,
|
| + int number_of_channels,
|
| + int number_of_frames,
|
| + bool force_report_nonzero_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 +52,8 @@ int MediaStreamAudioLevelCalculator::Calculate(const int16* audio_data,
|
| max_amplitude_ = std::max(max_amplitude_, max);
|
|
|
| if (counter_++ == kUpdateFrequency) {
|
| - level_ = max_amplitude_;
|
| + level_ = (max_amplitude_ == 0 ?
|
| + force_report_nonzero_energy : max_amplitude_);
|
|
|
| // Decay the absolute maximum amplitude by 1/4.
|
| max_amplitude_ >>= 2;
|
|
|