Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(269)

Side by Side Diff: content/renderer/media/audio_input_message_filter.cc

Issue 2919793002: Detect AudioInputStream muting and propagate to MediaStreamAudioSource. (Closed)
Patch Set: Reworked test again, to make tsan2 happy. Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/audio_input_message_filter.h" 5 #include "content/renderer/media/audio_input_message_filter.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 } 80 }
81 } 81 }
82 82
83 bool AudioInputMessageFilter::OnMessageReceived(const IPC::Message& message) { 83 bool AudioInputMessageFilter::OnMessageReceived(const IPC::Message& message) {
84 DCHECK(io_task_runner_->BelongsToCurrentThread()); 84 DCHECK(io_task_runner_->BelongsToCurrentThread());
85 bool handled = true; 85 bool handled = true;
86 IPC_BEGIN_MESSAGE_MAP(AudioInputMessageFilter, message) 86 IPC_BEGIN_MESSAGE_MAP(AudioInputMessageFilter, message)
87 IPC_MESSAGE_HANDLER(AudioInputMsg_NotifyStreamCreated, 87 IPC_MESSAGE_HANDLER(AudioInputMsg_NotifyStreamCreated,
88 OnStreamCreated) 88 OnStreamCreated)
89 IPC_MESSAGE_HANDLER(AudioInputMsg_NotifyStreamError, OnStreamError) 89 IPC_MESSAGE_HANDLER(AudioInputMsg_NotifyStreamError, OnStreamError)
90 IPC_MESSAGE_HANDLER(AudioInputMsg_NotifyStreamMuted, OnStreamMuted)
90 IPC_MESSAGE_UNHANDLED(handled = false) 91 IPC_MESSAGE_UNHANDLED(handled = false)
91 IPC_END_MESSAGE_MAP() 92 IPC_END_MESSAGE_MAP()
92 return handled; 93 return handled;
93 } 94 }
94 95
95 void AudioInputMessageFilter::OnFilterAdded(IPC::Channel* channel) { 96 void AudioInputMessageFilter::OnFilterAdded(IPC::Channel* channel) {
96 DCHECK(io_task_runner_->BelongsToCurrentThread()); 97 DCHECK(io_task_runner_->BelongsToCurrentThread());
97 98
98 // Captures the sender for IPC. 99 // Captures the sender for IPC.
99 sender_ = channel; 100 sender_ = channel;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 DCHECK(io_task_runner_->BelongsToCurrentThread()); 150 DCHECK(io_task_runner_->BelongsToCurrentThread());
150 media::AudioInputIPCDelegate* delegate = delegates_.Lookup(stream_id); 151 media::AudioInputIPCDelegate* delegate = delegates_.Lookup(stream_id);
151 if (!delegate) { 152 if (!delegate) {
152 DLOG(WARNING) << "Got audio stream event for a non-existent or removed" 153 DLOG(WARNING) << "Got audio stream event for a non-existent or removed"
153 << " audio renderer."; 154 << " audio renderer.";
154 return; 155 return;
155 } 156 }
156 delegate->OnError(); 157 delegate->OnError();
157 } 158 }
158 159
160 void AudioInputMessageFilter::OnStreamMuted(int stream_id, bool is_muted) {
161 DCHECK(io_task_runner_->BelongsToCurrentThread());
162 media::AudioInputIPCDelegate* delegate = delegates_.Lookup(stream_id);
163 if (!delegate) {
164 DLOG(WARNING) << "Got audio stream muted event for a non-existent or "
165 "removed audio renderer.";
166 return;
167 }
168 delegate->OnMuted(is_muted);
169 }
170
159 AudioInputMessageFilter::AudioInputIPCImpl::AudioInputIPCImpl( 171 AudioInputMessageFilter::AudioInputIPCImpl::AudioInputIPCImpl(
160 const scoped_refptr<AudioInputMessageFilter>& filter, 172 const scoped_refptr<AudioInputMessageFilter>& filter,
161 int render_frame_id) 173 int render_frame_id)
162 : filter_(filter), 174 : filter_(filter),
163 render_frame_id_(render_frame_id), 175 render_frame_id_(render_frame_id),
164 stream_id_(kStreamIDNotSet) { 176 stream_id_(kStreamIDNotSet) {
165 } 177 }
166 178
167 AudioInputMessageFilter::AudioInputIPCImpl::~AudioInputIPCImpl() {} 179 AudioInputMessageFilter::AudioInputIPCImpl::~AudioInputIPCImpl() {}
168 180
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 void AudioInputMessageFilter::AudioInputIPCImpl::CloseStream() { 223 void AudioInputMessageFilter::AudioInputIPCImpl::CloseStream() {
212 DCHECK(filter_->io_task_runner_->BelongsToCurrentThread()); 224 DCHECK(filter_->io_task_runner_->BelongsToCurrentThread());
213 DCHECK_NE(stream_id_, kStreamIDNotSet); 225 DCHECK_NE(stream_id_, kStreamIDNotSet);
214 LogMessage(stream_id_, "CloseStream"); 226 LogMessage(stream_id_, "CloseStream");
215 filter_->Send(new AudioInputHostMsg_CloseStream(stream_id_)); 227 filter_->Send(new AudioInputHostMsg_CloseStream(stream_id_));
216 filter_->delegates_.Remove(stream_id_); 228 filter_->delegates_.Remove(stream_id_);
217 stream_id_ = kStreamIDNotSet; 229 stream_id_ = kStreamIDNotSet;
218 } 230 }
219 231
220 } // namespace content 232 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/audio_input_message_filter.h ('k') | content/renderer/media/external_media_stream_audio_source.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698