OLD | NEW |
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 "media/audio/audio_input_device.h" | 5 #include "media/audio/audio_input_device.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 base::Bind(&AudioInputDevice::SetVolumeOnIOThread, this, volume)); | 142 base::Bind(&AudioInputDevice::SetVolumeOnIOThread, this, volume)); |
143 } | 143 } |
144 | 144 |
145 void AudioInputDevice::SetAutomaticGainControl(bool enabled) { | 145 void AudioInputDevice::SetAutomaticGainControl(bool enabled) { |
146 DVLOG(1) << "SetAutomaticGainControl(enabled=" << enabled << ")"; | 146 DVLOG(1) << "SetAutomaticGainControl(enabled=" << enabled << ")"; |
147 task_runner()->PostTask(FROM_HERE, | 147 task_runner()->PostTask(FROM_HERE, |
148 base::Bind(&AudioInputDevice::SetAutomaticGainControlOnIOThread, | 148 base::Bind(&AudioInputDevice::SetAutomaticGainControlOnIOThread, |
149 this, enabled)); | 149 this, enabled)); |
150 } | 150 } |
151 | 151 |
152 void AudioInputDevice::OnStreamCreated( | 152 void AudioInputDevice::OnStreamCreated(base::SharedMemoryHandle handle, |
153 base::SharedMemoryHandle handle, | 153 base::SyncSocket::Handle socket_handle, |
154 base::SyncSocket::Handle socket_handle, | 154 int length, |
155 int length, | 155 int total_segments, |
156 int total_segments) { | 156 bool initially_muted) { |
157 DCHECK(task_runner()->BelongsToCurrentThread()); | 157 DCHECK(task_runner()->BelongsToCurrentThread()); |
158 DCHECK(base::SharedMemory::IsHandleValid(handle)); | 158 DCHECK(base::SharedMemory::IsHandleValid(handle)); |
159 #if defined(OS_WIN) | 159 #if defined(OS_WIN) |
160 DCHECK(socket_handle); | 160 DCHECK(socket_handle); |
161 #else | 161 #else |
162 DCHECK_GE(socket_handle, 0); | 162 DCHECK_GE(socket_handle, 0); |
163 #endif | 163 #endif |
164 DCHECK_GT(length, 0); | 164 DCHECK_GT(length, 0); |
165 | 165 |
166 if (state_ != CREATING_STREAM) | 166 if (state_ != CREATING_STREAM) |
167 return; | 167 return; |
168 | 168 |
169 base::AutoLock auto_lock(audio_thread_lock_); | 169 base::AutoLock auto_lock(audio_thread_lock_); |
170 // TODO(miu): See TODO in OnStreamCreated method for AudioOutputDevice. | 170 // TODO(miu): See TODO in OnStreamCreated method for AudioOutputDevice. |
171 // Interface changes need to be made; likely, after AudioInputDevice is merged | 171 // Interface changes need to be made; likely, after AudioInputDevice is merged |
172 // into AudioOutputDevice (http://crbug.com/179597). | 172 // into AudioOutputDevice (http://crbug.com/179597). |
173 if (stopping_hack_) | 173 if (stopping_hack_) |
174 return; | 174 return; |
175 | 175 |
176 DCHECK(!audio_callback_); | 176 DCHECK(!audio_callback_); |
177 DCHECK(!audio_thread_); | 177 DCHECK(!audio_thread_); |
| 178 |
| 179 if (initially_muted) |
| 180 callback_->OnCaptureMuted(true); |
| 181 |
178 audio_callback_.reset(new AudioInputDevice::AudioThreadCallback( | 182 audio_callback_.reset(new AudioInputDevice::AudioThreadCallback( |
179 audio_parameters_, handle, length, total_segments, callback_, | 183 audio_parameters_, handle, length, total_segments, callback_, |
180 base::BindRepeating(&AudioInputDevice::SetLastCallbackTimeToNow, this))); | 184 base::BindRepeating(&AudioInputDevice::SetLastCallbackTimeToNow, this))); |
181 audio_thread_.reset(new AudioDeviceThread(audio_callback_.get(), | 185 audio_thread_.reset(new AudioDeviceThread(audio_callback_.get(), |
182 socket_handle, "AudioInputDevice")); | 186 socket_handle, "AudioInputDevice")); |
183 | 187 |
184 state_ = RECORDING; | 188 state_ = RECORDING; |
185 ipc_->RecordStream(); | 189 ipc_->RecordStream(); |
186 | 190 |
187 // Start detecting missing callbacks. | 191 // Start detecting missing callbacks. |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
436 capture_callback_->Capture( | 440 capture_callback_->Capture( |
437 audio_bus, | 441 audio_bus, |
438 buffer->params.hardware_delay_bytes / bytes_per_ms_, // Delay in ms | 442 buffer->params.hardware_delay_bytes / bytes_per_ms_, // Delay in ms |
439 buffer->params.volume, buffer->params.key_pressed); | 443 buffer->params.volume, buffer->params.key_pressed); |
440 | 444 |
441 if (++current_segment_id_ >= total_segments_) | 445 if (++current_segment_id_ >= total_segments_) |
442 current_segment_id_ = 0; | 446 current_segment_id_ = 0; |
443 } | 447 } |
444 | 448 |
445 } // namespace media | 449 } // namespace media |
OLD | NEW |