| Index: content/browser/renderer_host/media/audio_renderer_host.cc
|
| diff --git a/content/browser/renderer_host/media/audio_renderer_host.cc b/content/browser/renderer_host/media/audio_renderer_host.cc
|
| index 0c8c310350bcfb86116470fc0889e092fdbd6d3e..450d015931d71ea31497288d25656bcc0c53669f 100644
|
| --- a/content/browser/renderer_host/media/audio_renderer_host.cc
|
| +++ b/content/browser/renderer_host/media/audio_renderer_host.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "content/browser/renderer_host/media/audio_renderer_host.h"
|
|
|
| +#include <algorithm>
|
| +
|
| #include "base/bind.h"
|
| #include "base/bind_helpers.h"
|
| #include "base/command_line.h"
|
| @@ -63,7 +65,7 @@ class AudioRendererHost::AudioEntry
|
| // media::AudioOutputController::EventHandler implementation.
|
| virtual void OnCreated() OVERRIDE;
|
| virtual void OnPlaying() OVERRIDE;
|
| - virtual void OnAudible(bool is_audible) OVERRIDE;
|
| + virtual void OnPowerMeasured(float power_dbfs, bool clipped) OVERRIDE;
|
| virtual void OnPaused() OVERRIDE;
|
| virtual void OnError() OVERRIDE;
|
| virtual void OnDeviceChange(int new_buffer_size, int new_sample_rate)
|
| @@ -157,12 +159,13 @@ void AudioRendererHost::AudioEntry::OnPlaying() {
|
| stream_id_, media::AudioOutputIPCDelegate::kPlaying)));
|
| }
|
|
|
| -void AudioRendererHost::AudioEntry::OnAudible(bool is_audible) {
|
| +void AudioRendererHost::AudioEntry::OnPowerMeasured(float power_dbfs,
|
| + bool clipped) {
|
| BrowserThread::PostTask(
|
| BrowserThread::IO,
|
| FROM_HERE,
|
| - base::Bind(&AudioRendererHost::DoNotifyAudibleState, host_,
|
| - this, is_audible));
|
| + base::Bind(&AudioRendererHost::DoNotifyAudioPowerLevel, host_,
|
| + this, power_dbfs, clipped));
|
| }
|
|
|
| void AudioRendererHost::AudioEntry::OnPaused() {
|
| @@ -235,22 +238,19 @@ void AudioRendererHost::DoCompleteCreation(AudioEntry* entry) {
|
| media::PacketSizeInBytes(entry->shared_memory()->requested_size())));
|
| }
|
|
|
| -void AudioRendererHost::DoNotifyAudibleState(AudioEntry* entry,
|
| - bool is_audible) {
|
| +void AudioRendererHost::DoNotifyAudioPowerLevel(AudioEntry* entry,
|
| + float power_dbfs,
|
| + bool clipped) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
|
|
| MediaObserver* const media_observer =
|
| GetContentClient()->browser()->GetMediaObserver();
|
| if (media_observer) {
|
| - DVLOG(1) << "AudioRendererHost@" << this
|
| - << "::DoNotifyAudibleState(is_audible=" << is_audible
|
| - << ") for stream_id=" << entry->stream_id();
|
| -
|
| if (CommandLine::ForCurrentProcess()->HasSwitch(
|
| switches::kEnableAudibleNotifications)) {
|
| media_observer->OnAudioStreamPlayingChanged(
|
| render_process_id_, entry->render_view_id(), entry->stream_id(),
|
| - is_audible);
|
| + true, power_dbfs, clipped);
|
| }
|
| }
|
| }
|
| @@ -427,7 +427,8 @@ void AudioRendererHost::DeleteEntry(scoped_ptr<AudioEntry> entry) {
|
| GetContentClient()->browser()->GetMediaObserver();
|
| if (media_observer) {
|
| media_observer->OnAudioStreamPlayingChanged(
|
| - render_process_id_, entry->render_view_id(), entry->stream_id(), false);
|
| + render_process_id_, entry->render_view_id(), entry->stream_id(),
|
| + false, -std::numeric_limits<float>::infinity(), false);
|
| }
|
|
|
| // Notify the media observer.
|
|
|