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 4a9fa7e40716f958cc4487947946cfa12027e3e9..42c80d73d892a0beebd570db0f5d5a127e13fbf8 100644 |
--- a/content/browser/renderer_host/media/audio_renderer_host.cc |
+++ b/content/browser/renderer_host/media/audio_renderer_host.cc |
@@ -27,9 +27,11 @@ AudioRendererHost::AudioEntry::~AudioEntry() {} |
/////////////////////////////////////////////////////////////////////////////// |
// AudioRendererHost implementations. |
AudioRendererHost::AudioRendererHost( |
+ int render_process_id, |
media::AudioManager* audio_manager, |
content::MediaObserver* media_observer) |
- : audio_manager_(audio_manager), |
+ : render_process_id_(render_process_id), |
+ audio_manager_(audio_manager), |
media_observer_(media_observer) { |
} |
@@ -237,9 +239,12 @@ void AudioRendererHost::OnCreateStream( |
// If we have created the controller successfully, create an entry and add it |
// to the map. |
entry->stream_id = stream_id; |
+ entry->render_view_id = render_view_id; |
audio_entries_.insert(std::make_pair(stream_id, entry.release())); |
- if (media_observer_) |
- media_observer_->OnSetAudioStreamStatus(this, stream_id, "created"); |
+ if (media_observer_) { |
+ media_observer_->OnSetAudioStreamStatus( |
+ render_process_id_, render_view_id, stream_id, "created"); |
+ } |
} |
void AudioRendererHost::OnPlayStream(int stream_id) { |
@@ -252,8 +257,10 @@ void AudioRendererHost::OnPlayStream(int stream_id) { |
} |
entry->controller->Play(); |
- if (media_observer_) |
- media_observer_->OnSetAudioStreamPlaying(this, stream_id, true); |
+ if (media_observer_) { |
+ media_observer_->OnSetAudioStreamPlaying( |
+ render_process_id_, entry->render_view_id, stream_id, true); |
+ } |
} |
void AudioRendererHost::OnPauseStream(int stream_id) { |
@@ -266,8 +273,10 @@ void AudioRendererHost::OnPauseStream(int stream_id) { |
} |
entry->controller->Pause(); |
- if (media_observer_) |
- media_observer_->OnSetAudioStreamPlaying(this, stream_id, false); |
+ if (media_observer_) { |
+ media_observer_->OnSetAudioStreamPlaying( |
+ render_process_id_, entry->render_view_id, stream_id, false); |
+ } |
} |
void AudioRendererHost::OnFlushStream(int stream_id) { |
@@ -280,20 +289,25 @@ void AudioRendererHost::OnFlushStream(int stream_id) { |
} |
entry->controller->Flush(); |
- if (media_observer_) |
- media_observer_->OnSetAudioStreamStatus(this, stream_id, "flushed"); |
+ if (media_observer_) { |
+ media_observer_->OnSetAudioStreamStatus( |
+ render_process_id_, entry->render_view_id, stream_id, "flushed"); |
+ } |
} |
void AudioRendererHost::OnCloseStream(int stream_id) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- if (media_observer_) |
- media_observer_->OnSetAudioStreamStatus(this, stream_id, "closed"); |
- |
AudioEntry* entry = LookupById(stream_id); |
+ if (!entry) |
+ return; |
- if (entry) |
- CloseAndDeleteStream(entry); |
+ if (media_observer_) { |
+ media_observer_->OnSetAudioStreamStatus( |
+ render_process_id_, entry->render_view_id, stream_id, "closed"); |
+ } |
+ |
+ CloseAndDeleteStream(entry); |
} |
void AudioRendererHost::OnSetVolume(int stream_id, double volume) { |
@@ -309,8 +323,10 @@ void AudioRendererHost::OnSetVolume(int stream_id, double volume) { |
if (volume < 0 || volume > 1.0) |
return; |
entry->controller->SetVolume(volume); |
- if (media_observer_) |
- media_observer_->OnSetAudioStreamVolume(this, stream_id, volume); |
+ if (media_observer_) { |
+ media_observer_->OnSetAudioStreamVolume( |
+ render_process_id_, entry->render_view_id, stream_id, volume); |
+ } |
} |
void AudioRendererHost::SendErrorMessage(int32 stream_id) { |
@@ -347,8 +363,10 @@ void AudioRendererHost::DeleteEntry(AudioEntry* entry) { |
audio_entries_.erase(entry->stream_id); |
// Notify the media observer. |
- if (media_observer_) |
- media_observer_->OnDeleteAudioStream(this, entry->stream_id); |
+ if (media_observer_) { |
+ media_observer_->OnDeleteAudioStream( |
+ render_process_id_, entry->render_view_id, entry->stream_id); |
+ } |
} |
void AudioRendererHost::DeleteEntryOnError(AudioEntry* entry) { |
@@ -358,8 +376,10 @@ void AudioRendererHost::DeleteEntryOnError(AudioEntry* entry) { |
// |entry| is destroyed in DeleteEntry(). |
SendErrorMessage(entry->stream_id); |
- if (media_observer_) |
- media_observer_->OnSetAudioStreamStatus(this, entry->stream_id, "error"); |
+ if (media_observer_) { |
+ media_observer_->OnSetAudioStreamStatus( |
+ render_process_id_, entry->render_view_id, entry->stream_id, "error"); |
+ } |
CloseAndDeleteStream(entry); |
} |