diff options
Diffstat (limited to 'chromium/content/renderer/media/audio_message_filter.cc')
-rw-r--r-- | chromium/content/renderer/media/audio_message_filter.cc | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/chromium/content/renderer/media/audio_message_filter.cc b/chromium/content/renderer/media/audio_message_filter.cc index 27d0821342f..fde42fb18e2 100644 --- a/chromium/content/renderer/media/audio_message_filter.cc +++ b/chromium/content/renderer/media/audio_message_filter.cc @@ -22,7 +22,8 @@ class AudioMessageFilter::AudioOutputIPCImpl : public NON_EXPORTED_BASE(media::AudioOutputIPC) { public: AudioOutputIPCImpl(const scoped_refptr<AudioMessageFilter>& filter, - int render_view_id); + int render_view_id, + int render_frame_id); virtual ~AudioOutputIPCImpl(); // media::AudioOutputIPC implementation. @@ -37,6 +38,7 @@ class AudioMessageFilter::AudioOutputIPCImpl private: const scoped_refptr<AudioMessageFilter> filter_; const int render_view_id_; + const int render_frame_id_; int stream_id_; }; @@ -44,7 +46,7 @@ AudioMessageFilter* AudioMessageFilter::g_filter = NULL; AudioMessageFilter::AudioMessageFilter( const scoped_refptr<base::MessageLoopProxy>& io_message_loop) - : channel_(NULL), + : sender_(NULL), audio_hardware_config_(NULL), io_message_loop_(io_message_loop) { DCHECK(!g_filter); @@ -62,18 +64,21 @@ AudioMessageFilter* AudioMessageFilter::Get() { } AudioMessageFilter::AudioOutputIPCImpl::AudioOutputIPCImpl( - const scoped_refptr<AudioMessageFilter>& filter, int render_view_id) + const scoped_refptr<AudioMessageFilter>& filter, + int render_view_id, + int render_frame_id) : filter_(filter), render_view_id_(render_view_id), + render_frame_id_(render_frame_id), stream_id_(kStreamIDNotSet) {} AudioMessageFilter::AudioOutputIPCImpl::~AudioOutputIPCImpl() {} scoped_ptr<media::AudioOutputIPC> AudioMessageFilter::CreateAudioOutputIPC( - int render_view_id) { + int render_view_id, int render_frame_id) { DCHECK_GT(render_view_id, 0); return scoped_ptr<media::AudioOutputIPC>( - new AudioOutputIPCImpl(this, render_view_id)); + new AudioOutputIPCImpl(this, render_view_id, render_frame_id)); } void AudioMessageFilter::AudioOutputIPCImpl::CreateStream( @@ -85,7 +90,7 @@ void AudioMessageFilter::AudioOutputIPCImpl::CreateStream( DCHECK_EQ(stream_id_, kStreamIDNotSet); stream_id_ = filter_->delegates_.Add(delegate); filter_->Send(new AudioHostMsg_CreateStream( - stream_id_, render_view_id_, session_id, params)); + stream_id_, render_view_id_, render_frame_id_, session_id, params)); } void AudioMessageFilter::AudioOutputIPCImpl::PlayStream() { @@ -113,10 +118,10 @@ void AudioMessageFilter::AudioOutputIPCImpl::SetVolume(double volume) { void AudioMessageFilter::Send(IPC::Message* message) { DCHECK(io_message_loop_->BelongsToCurrentThread()); - if (!channel_) { + if (!sender_) { delete message; } else { - channel_->Send(message); + sender_->Send(message); } } @@ -132,9 +137,9 @@ bool AudioMessageFilter::OnMessageReceived(const IPC::Message& message) { return handled; } -void AudioMessageFilter::OnFilterAdded(IPC::Channel* channel) { +void AudioMessageFilter::OnFilterAdded(IPC::Sender* sender) { DCHECK(io_message_loop_->BelongsToCurrentThread()); - channel_ = channel; + sender_ = sender; } void AudioMessageFilter::OnFilterRemoved() { @@ -147,7 +152,7 @@ void AudioMessageFilter::OnFilterRemoved() { void AudioMessageFilter::OnChannelClosing() { DCHECK(io_message_loop_->BelongsToCurrentThread()); - channel_ = NULL; + sender_ = NULL; DLOG_IF(WARNING, !delegates_.IsEmpty()) << "Not all audio devices have been closed."; @@ -217,9 +222,7 @@ void AudioMessageFilter::OnOutputDeviceChanged(int stream_id, // Ignore the message if an audio hardware config hasn't been created; this // can occur if the renderer is using the high latency audio path. - // TODO(dalecurtis): After http://crbug.com/173435 is fixed, convert to CHECK. - if (!audio_hardware_config_) - return; + CHECK(audio_hardware_config_); // TODO(crogers): fix OnOutputDeviceChanged() to pass AudioParameters. media::ChannelLayout channel_layout = |