| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/logging.h" | 6 #include "base/logging.h" |
| 7 #include "content/public/common/content_switches.h" | 7 #include "content/public/common/content_switches.h" |
| 8 #include "content/renderer/media/mock_media_constraint_factory.h" | 8 #include "content/renderer/media/mock_media_constraint_factory.h" |
| 9 #include "content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h" | 9 #include "content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h" |
| 10 #include "content/renderer/media/webrtc_audio_capturer.h" | 10 #include "content/renderer/media/webrtc_audio_capturer.h" |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 #if defined(OS_ANDROID) | 77 #if defined(OS_ANDROID) |
| 78 : params_(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, | 78 : params_(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, |
| 79 media::CHANNEL_LAYOUT_STEREO, 48000, 16, 960) { | 79 media::CHANNEL_LAYOUT_STEREO, 48000, 16, 960) { |
| 80 // Android works with a buffer size bigger than 20ms. | 80 // Android works with a buffer size bigger than 20ms. |
| 81 #else | 81 #else |
| 82 : params_(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, | 82 : params_(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, |
| 83 media::CHANNEL_LAYOUT_STEREO, 48000, 16, 128) { | 83 media::CHANNEL_LAYOUT_STEREO, 48000, 16, 128) { |
| 84 #endif | 84 #endif |
| 85 } | 85 } |
| 86 | 86 |
| 87 void EnableAudioTrackProcessing() { | 87 void DisableAudioTrackProcessing() { |
| 88 CommandLine::ForCurrentProcess()->AppendSwitch( | 88 CommandLine::ForCurrentProcess()->AppendSwitch( |
| 89 switches::kEnableAudioTrackProcessing); | 89 switches::kDisableAudioTrackProcessing); |
| 90 } | 90 } |
| 91 | 91 |
| 92 void VerifyAudioParams(const blink::WebMediaConstraints& constraints, | 92 void VerifyAudioParams(const blink::WebMediaConstraints& constraints, |
| 93 bool need_audio_processing) { | 93 bool need_audio_processing) { |
| 94 capturer_ = WebRtcAudioCapturer::CreateCapturer( | 94 capturer_ = WebRtcAudioCapturer::CreateCapturer( |
| 95 -1, StreamDeviceInfo(MEDIA_DEVICE_AUDIO_CAPTURE, | 95 -1, StreamDeviceInfo(MEDIA_DEVICE_AUDIO_CAPTURE, |
| 96 "", "", params_.sample_rate(), | 96 "", "", params_.sample_rate(), |
| 97 params_.channel_layout(), | 97 params_.channel_layout(), |
| 98 params_.frames_per_buffer()), | 98 params_.frames_per_buffer()), |
| 99 constraints, NULL, NULL); | 99 constraints, NULL, NULL); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 } | 149 } |
| 150 | 150 |
| 151 media::AudioParameters params_; | 151 media::AudioParameters params_; |
| 152 scoped_refptr<MockCapturerSource> capturer_source_; | 152 scoped_refptr<MockCapturerSource> capturer_source_; |
| 153 scoped_refptr<WebRtcAudioCapturer> capturer_; | 153 scoped_refptr<WebRtcAudioCapturer> capturer_; |
| 154 scoped_ptr<WebRtcLocalAudioTrack> track_; | 154 scoped_ptr<WebRtcLocalAudioTrack> track_; |
| 155 }; | 155 }; |
| 156 | 156 |
| 157 // Pass the delay value, volume and key_pressed info via capture callback, and | 157 // Pass the delay value, volume and key_pressed info via capture callback, and |
| 158 // those values should be correctly stored and passed to the track. | 158 // those values should be correctly stored and passed to the track. |
| 159 TEST_F(WebRtcAudioCapturerTest, VerifyAudioParams) { | 159 TEST_F(WebRtcAudioCapturerTest, VerifyAudioParamsWithoutAudioProcessing) { |
| 160 DisableAudioTrackProcessing(); |
| 160 // Use constraints with default settings. | 161 // Use constraints with default settings. |
| 161 MockMediaConstraintFactory constraint_factory; | 162 MockMediaConstraintFactory constraint_factory; |
| 162 VerifyAudioParams(constraint_factory.CreateWebMediaConstraints(), true); | 163 VerifyAudioParams(constraint_factory.CreateWebMediaConstraints(), true); |
| 163 } | 164 } |
| 164 | 165 |
| 165 TEST_F(WebRtcAudioCapturerTest, VerifyAudioParamsWithAudioProcessing) { | 166 TEST_F(WebRtcAudioCapturerTest, VerifyAudioParamsWithAudioProcessing) { |
| 166 EnableAudioTrackProcessing(); | |
| 167 // Turn off the default constraints to verify that the sink will get packets | 167 // Turn off the default constraints to verify that the sink will get packets |
| 168 // with a buffer size smaller than 10ms. | 168 // with a buffer size smaller than 10ms. |
| 169 MockMediaConstraintFactory constraint_factory; | 169 MockMediaConstraintFactory constraint_factory; |
| 170 constraint_factory.DisableDefaultAudioConstraints(); | 170 constraint_factory.DisableDefaultAudioConstraints(); |
| 171 VerifyAudioParams(constraint_factory.CreateWebMediaConstraints(), false); | 171 VerifyAudioParams(constraint_factory.CreateWebMediaConstraints(), false); |
| 172 } | 172 } |
| 173 | 173 |
| 174 TEST_F(WebRtcAudioCapturerTest, FailToCreateCapturerWithWrongConstraints) { | 174 TEST_F(WebRtcAudioCapturerTest, FailToCreateCapturerWithWrongConstraints) { |
| 175 EnableAudioTrackProcessing(); | |
| 176 MockMediaConstraintFactory constraint_factory; | 175 MockMediaConstraintFactory constraint_factory; |
| 177 const std::string dummy_constraint = "dummy"; | 176 const std::string dummy_constraint = "dummy"; |
| 178 constraint_factory.AddMandatory(dummy_constraint, true); | 177 constraint_factory.AddMandatory(dummy_constraint, true); |
| 179 | 178 |
| 180 scoped_refptr<WebRtcAudioCapturer> capturer( | 179 scoped_refptr<WebRtcAudioCapturer> capturer( |
| 181 WebRtcAudioCapturer::CreateCapturer( | 180 WebRtcAudioCapturer::CreateCapturer( |
| 182 0, StreamDeviceInfo(MEDIA_DEVICE_AUDIO_CAPTURE, | 181 0, StreamDeviceInfo(MEDIA_DEVICE_AUDIO_CAPTURE, |
| 183 "", "", params_.sample_rate(), | 182 "", "", params_.sample_rate(), |
| 184 params_.channel_layout(), | 183 params_.channel_layout(), |
| 185 params_.frames_per_buffer()), | 184 params_.frames_per_buffer()), |
| 186 constraint_factory.CreateWebMediaConstraints(), NULL, NULL) | 185 constraint_factory.CreateWebMediaConstraints(), NULL, NULL) |
| 187 ); | 186 ); |
| 188 EXPECT_TRUE(capturer == NULL); | 187 EXPECT_TRUE(capturer == NULL); |
| 189 } | 188 } |
| 190 | 189 |
| 191 | 190 |
| 192 } // namespace content | 191 } // namespace content |
| OLD | NEW |