| 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);
|
| }
|
|
|
|
|