| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 253 // Example: native buffer size can be 128 audio frames at 16kHz sample rate. | 253 // Example: native buffer size can be 128 audio frames at 16kHz sample rate. |
| 254 // WebRTC will provide 480 audio frames per 10ms but iOS asks for 128 | 254 // WebRTC will provide 480 audio frames per 10ms but iOS asks for 128 |
| 255 // in each callback (one every 8ms). This class can then ask for 128 and the | 255 // in each callback (one every 8ms). This class can then ask for 128 and the |
| 256 // FineAudioBuffer will ask WebRTC for new data only when needed and also | 256 // FineAudioBuffer will ask WebRTC for new data only when needed and also |
| 257 // cache non-utilized audio between callbacks. On the recording side, iOS | 257 // cache non-utilized audio between callbacks. On the recording side, iOS |
| 258 // can provide audio data frames of size 128 and these are accumulated until | 258 // can provide audio data frames of size 128 and these are accumulated until |
| 259 // enough data to supply one 10ms call exists. This 10ms chunk is then sent | 259 // enough data to supply one 10ms call exists. This 10ms chunk is then sent |
| 260 // to WebRTC and the remaining part is stored. | 260 // to WebRTC and the remaining part is stored. |
| 261 std::unique_ptr<FineAudioBuffer> fine_audio_buffer_; | 261 std::unique_ptr<FineAudioBuffer> fine_audio_buffer_; |
| 262 | 262 |
| 263 // Extra audio buffer to be used by the playout side for rendering audio. | |
| 264 // The buffer size is given by FineAudioBuffer::RequiredBufferSizeBytes(). | |
| 265 std::unique_ptr<int8_t[]> playout_audio_buffer_; | |
| 266 | |
| 267 // Provides a mechanism for encapsulating one or more buffers of audio data. | 263 // Provides a mechanism for encapsulating one or more buffers of audio data. |
| 268 // Only used on the recording side. | 264 // Only used on the recording side. |
| 269 AudioBufferList audio_record_buffer_list_; | 265 AudioBufferList audio_record_buffer_list_; |
| 270 | 266 |
| 271 // Temporary storage for recorded data. AudioUnitRender() renders into this | 267 // Temporary storage for recorded data. AudioUnitRender() renders into this |
| 272 // array as soon as a frame of the desired buffer size has been recorded. | 268 // array as soon as a frame of the desired buffer size has been recorded. |
| 273 std::unique_ptr<int8_t[]> record_audio_buffer_; | 269 std::unique_ptr<int8_t[]> record_audio_buffer_; |
| 274 | 270 |
| 275 // Set to 1 when recording is active and 0 otherwise. | 271 // Set to 1 when recording is active and 0 otherwise. |
| 276 volatile int recording_; | 272 volatile int recording_; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 294 // Set to true if we've activated the audio session. | 290 // Set to true if we've activated the audio session. |
| 295 bool has_configured_session_; | 291 bool has_configured_session_; |
| 296 | 292 |
| 297 // Exposes private members for testing purposes only. | 293 // Exposes private members for testing purposes only. |
| 298 FRIEND_TEST_ALL_PREFIXES(AudioDeviceTest, testInterruptedAudioSession); | 294 FRIEND_TEST_ALL_PREFIXES(AudioDeviceTest, testInterruptedAudioSession); |
| 299 }; | 295 }; |
| 300 | 296 |
| 301 } // namespace webrtc | 297 } // namespace webrtc |
| 302 | 298 |
| 303 #endif // WEBRTC_MODULES_AUDIO_DEVICE_IOS_AUDIO_DEVICE_IOS_H_ | 299 #endif // WEBRTC_MODULES_AUDIO_DEVICE_IOS_AUDIO_DEVICE_IOS_H_ |
| OLD | NEW |