| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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/ios/audio_manager_ios.h" | 5 #include "media/audio/ios/audio_manager_ios.h" |
| 6 | 6 |
| 7 #import <AudioToolbox/AudioToolbox.h> | 7 #import <AudioToolbox/AudioToolbox.h> |
| 8 #import <AVFoundation/AVFoundation.h> | 8 #import <AVFoundation/AVFoundation.h> |
| 9 | 9 |
| 10 #include "base/sys_info.h" | 10 #include "base/sys_info.h" |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 // achieve the best audio performance for iOS devices. | 55 // achieve the best audio performance for iOS devices. |
| 56 // TODO(xians): query the native channel layout for the specific device. | 56 // TODO(xians): query the native channel layout for the specific device. |
| 57 static const int kDefaultSampleRate = 48000; | 57 static const int kDefaultSampleRate = 48000; |
| 58 static const int kDefaultBufferSize = 2048; | 58 static const int kDefaultBufferSize = 2048; |
| 59 return AudioParameters( | 59 return AudioParameters( |
| 60 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, | 60 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, |
| 61 kDefaultSampleRate, 16, kDefaultBufferSize); | 61 kDefaultSampleRate, 16, kDefaultBufferSize); |
| 62 } | 62 } |
| 63 | 63 |
| 64 AudioOutputStream* AudioManagerIOS::MakeAudioOutputStream( | 64 AudioOutputStream* AudioManagerIOS::MakeAudioOutputStream( |
| 65 const AudioParameters& params) { | 65 const AudioParameters& params, const std::string& input_device_id) { |
| 66 NOTIMPLEMENTED(); // Only input is supported on iOS. | 66 NOTIMPLEMENTED(); // Only input is supported on iOS. |
| 67 return NULL; | 67 return NULL; |
| 68 } | 68 } |
| 69 | 69 |
| 70 AudioInputStream* AudioManagerIOS::MakeAudioInputStream( | 70 AudioInputStream* AudioManagerIOS::MakeAudioInputStream( |
| 71 const AudioParameters& params, const std::string& device_id) { | 71 const AudioParameters& params, const std::string& device_id) { |
| 72 // Current line of iOS devices has only one audio input. | 72 // Current line of iOS devices has only one audio input. |
| 73 // Ignore the device_id (unittest uses a test value in it). | 73 // Ignore the device_id (unittest uses a test value in it). |
| 74 if (!params.IsValid() || (params.channels() > kMaxInputChannels)) | 74 if (!params.IsValid() || (params.channels() > kMaxInputChannels)) |
| 75 return NULL; | 75 return NULL; |
| 76 | 76 |
| 77 if (params.format() == AudioParameters::AUDIO_FAKE) | 77 if (params.format() == AudioParameters::AUDIO_FAKE) |
| 78 return FakeAudioInputStream::MakeFakeStream(this, params); | 78 return FakeAudioInputStream::MakeFakeStream(this, params); |
| 79 else if (params.format() == AudioParameters::AUDIO_PCM_LINEAR) | 79 else if (params.format() == AudioParameters::AUDIO_PCM_LINEAR) |
| 80 return new PCMQueueInAudioInputStream(this, params); | 80 return new PCMQueueInAudioInputStream(this, params); |
| 81 return NULL; | 81 return NULL; |
| 82 } | 82 } |
| 83 | 83 |
| 84 AudioOutputStream* AudioManagerIOS::MakeLinearOutputStream( | 84 AudioOutputStream* AudioManagerIOS::MakeLinearOutputStream( |
| 85 const AudioParameters& params) { | 85 const AudioParameters& params) { |
| 86 NOTIMPLEMENTED(); // Only input is supported on iOS. | 86 NOTIMPLEMENTED(); // Only input is supported on iOS. |
| 87 return NULL; | 87 return NULL; |
| 88 } | 88 } |
| 89 | 89 |
| 90 AudioOutputStream* AudioManagerIOS::MakeLowLatencyOutputStream( | 90 AudioOutputStream* AudioManagerIOS::MakeLowLatencyOutputStream( |
| 91 const AudioParameters& params) { | 91 const AudioParameters& params, const std::string& input_device_id) { |
| 92 NOTIMPLEMENTED(); // Only input is supported on iOS. | 92 NOTIMPLEMENTED(); // Only input is supported on iOS. |
| 93 return NULL; | 93 return NULL; |
| 94 } | 94 } |
| 95 | 95 |
| 96 AudioInputStream* AudioManagerIOS::MakeLinearInputStream( | 96 AudioInputStream* AudioManagerIOS::MakeLinearInputStream( |
| 97 const AudioParameters& params, const std::string& device_id) { | 97 const AudioParameters& params, const std::string& device_id) { |
| 98 return MakeAudioInputStream(params, device_id); | 98 return MakeAudioInputStream(params, device_id); |
| 99 } | 99 } |
| 100 | 100 |
| 101 AudioInputStream* AudioManagerIOS::MakeLowLatencyInputStream( | 101 AudioInputStream* AudioManagerIOS::MakeLowLatencyInputStream( |
| 102 const AudioParameters& params, const std::string& device_id) { | 102 const AudioParameters& params, const std::string& device_id) { |
| 103 NOTIMPLEMENTED(); // Only linear audio input is supported on iOS. | 103 NOTIMPLEMENTED(); // Only linear audio input is supported on iOS. |
| 104 return MakeAudioInputStream(params, device_id); | 104 return MakeAudioInputStream(params, device_id); |
| 105 } | 105 } |
| 106 | 106 |
| 107 | 107 |
| 108 AudioParameters AudioManagerIOS::GetPreferredOutputStreamParameters( | 108 AudioParameters AudioManagerIOS::GetPreferredOutputStreamParameters( |
| 109 const AudioParameters& input_params) { | 109 const AudioParameters& input_params) { |
| 110 // TODO(xians): handle the case when input_params is valid. | 110 // TODO(xians): handle the case when input_params is valid. |
| 111 // TODO(xians): figure out the right output sample rate and sample rate to | 111 // TODO(xians): figure out the right output sample rate and sample rate to |
| 112 // achieve the best audio performance for iOS devices. | 112 // achieve the best audio performance for iOS devices. |
| (...skipping 18 matching lines...) Expand all Loading... |
| 131 void AudioManagerIOS::ReleaseInputStream(AudioInputStream* stream) { | 131 void AudioManagerIOS::ReleaseInputStream(AudioInputStream* stream) { |
| 132 delete stream; | 132 delete stream; |
| 133 } | 133 } |
| 134 | 134 |
| 135 // static | 135 // static |
| 136 AudioManager* CreateAudioManager() { | 136 AudioManager* CreateAudioManager() { |
| 137 return new AudioManagerIOS(); | 137 return new AudioManagerIOS(); |
| 138 } | 138 } |
| 139 | 139 |
| 140 } // namespace media | 140 } // namespace media |
| OLD | NEW |