| Index: content/renderer/media/audio_message_filter.cc
|
| diff --git a/content/renderer/media/audio_message_filter.cc b/content/renderer/media/audio_message_filter.cc
|
| index 9e7322d128e65f0d5f9507a544c8cf01943e7d16..1da6b4fda18a212401994322e7f091467937a10d 100644
|
| --- a/content/renderer/media/audio_message_filter.cc
|
| +++ b/content/renderer/media/audio_message_filter.cc
|
| @@ -58,6 +58,8 @@ AudioMessageFilter::AudioMessageFilter(
|
| AudioMessageFilter::~AudioMessageFilter() {
|
| DCHECK_EQ(g_filter, this);
|
| g_filter = NULL;
|
| +
|
| + LOG(ERROR) << "^AudioMessageFilter";
|
| }
|
|
|
| // static
|
| @@ -82,6 +84,10 @@ std::unique_ptr<media::AudioOutputIPC> AudioMessageFilter::CreateAudioOutputIPC(
|
| new AudioOutputIPCImpl(this, render_frame_id));
|
| }
|
|
|
| +void AudioMessageFilter::CloseStream(int stream_id) {
|
| + Send(new AudioHostMsg_CloseStream(stream_id));
|
| +}
|
| +
|
| void AudioMessageFilter::AudioOutputIPCImpl::RequestDeviceAuthorization(
|
| media::AudioOutputIPCDelegate* delegate,
|
| int session_id,
|
| @@ -103,11 +109,18 @@ void AudioMessageFilter::AudioOutputIPCImpl::CreateStream(
|
| const media::AudioParameters& params) {
|
| DCHECK(filter_->io_task_runner_->BelongsToCurrentThread());
|
| DCHECK(!stream_created_);
|
| + auto client = filter_->audio_output_clients_.find(render_frame_id_);
|
| + if (client == filter_->audio_output_clients_.end())
|
| + return;
|
| if (stream_id_ == kStreamIDNotSet)
|
| stream_id_ = filter_->delegates_.Add(delegate);
|
| + // TODO(rchtara): This is temporary. In soon upcoming CLs AudioMessageFilter
|
| + // and AudioMessageFilter::AudioOutputIPCImpl will be removed and replaced by
|
| + // AudioOutputClient.
|
|
|
| - filter_->Send(
|
| - new AudioHostMsg_CreateStream(stream_id_, render_frame_id_, params));
|
| + client->second->CreateStream(
|
| + stream_id_, params,
|
| + base::Bind(&AudioOutputClient::CreateStreamCallback, client->second));
|
| stream_created_ = true;
|
| }
|
|
|
| @@ -124,7 +137,13 @@ void AudioMessageFilter::AudioOutputIPCImpl::PauseStream() {
|
| void AudioMessageFilter::AudioOutputIPCImpl::CloseStream() {
|
| DCHECK(filter_->io_task_runner_->BelongsToCurrentThread());
|
| DCHECK_NE(stream_id_, kStreamIDNotSet);
|
| - filter_->Send(new AudioHostMsg_CloseStream(stream_id_));
|
| + auto client = filter_->audio_output_clients_.find(render_frame_id_);
|
| + if (client == filter_->audio_output_clients_.end())
|
| + return;
|
| + // TODO(rchtara): This is temporary. In soon upcoming CLs AudioMessageFilter
|
| + // and AudioMessageFilter::AudioOutputIPCImpl will be removed and replaced by
|
| + // AudioOutputClient.
|
| + client->second->CloseStream(stream_id_);
|
| filter_->delegates_.Remove(stream_id_);
|
| stream_id_ = kStreamIDNotSet;
|
| stream_created_ = false;
|
| @@ -149,7 +168,6 @@ bool AudioMessageFilter::OnMessageReceived(const IPC::Message& message) {
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(AudioMessageFilter, message)
|
| IPC_MESSAGE_HANDLER(AudioMsg_NotifyDeviceAuthorized, OnDeviceAuthorized)
|
| - IPC_MESSAGE_HANDLER(AudioMsg_NotifyStreamCreated, OnStreamCreated)
|
| IPC_MESSAGE_HANDLER(AudioMsg_NotifyStreamStateChanged, OnStreamStateChanged)
|
| IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
| @@ -197,7 +215,7 @@ void AudioMessageFilter::OnDeviceAuthorized(
|
| delegate->OnDeviceAuthorized(device_status, output_params, matched_device_id);
|
| }
|
|
|
| -void AudioMessageFilter::OnStreamCreated(
|
| +void AudioMessageFilter::StreamCreated(
|
| int stream_id,
|
| base::SharedMemoryHandle handle,
|
| base::SyncSocket::TransitDescriptor socket_descriptor,
|
| @@ -213,7 +231,7 @@ void AudioMessageFilter::OnStreamCreated(
|
|
|
| media::AudioOutputIPCDelegate* delegate = delegates_.Lookup(stream_id);
|
| if (!delegate) {
|
| - DLOG(WARNING) << "Got OnStreamCreated() event for a non-existent or removed"
|
| + DLOG(WARNING) << "Got StreamCreated() event for a non-existent or removed"
|
| << " audio renderer. (stream_id=" << stream_id << ").";
|
| base::SharedMemory::CloseHandle(handle);
|
| base::SyncSocket socket(socket_handle);
|
|
|