| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2015 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 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 .WillByDefault(Invoke([](int payload_type, const SdpAudioFormat& format, | 121 .WillByDefault(Invoke([](int payload_type, const SdpAudioFormat& format, |
| 122 std::unique_ptr<AudioEncoder>* return_value) { | 122 std::unique_ptr<AudioEncoder>* return_value) { |
| 123 *return_value = SetupAudioEncoderMock(payload_type, format); | 123 *return_value = SetupAudioEncoderMock(payload_type, format); |
| 124 })); | 124 })); |
| 125 return factory; | 125 return factory; |
| 126 } | 126 } |
| 127 | 127 |
| 128 struct ConfigHelper { | 128 struct ConfigHelper { |
| 129 ConfigHelper(bool audio_bwe_enabled, bool expect_set_encoder_call) | 129 ConfigHelper(bool audio_bwe_enabled, bool expect_set_encoder_call) |
| 130 : stream_config_(nullptr), | 130 : stream_config_(nullptr), |
| 131 audio_processing_(new rtc::RefCountedObject<MockAudioProcessing>()), |
| 131 simulated_clock_(123456), | 132 simulated_clock_(123456), |
| 132 send_side_cc_(rtc::MakeUnique<SendSideCongestionController>( | 133 send_side_cc_(rtc::MakeUnique<SendSideCongestionController>( |
| 133 &simulated_clock_, | 134 &simulated_clock_, |
| 134 nullptr /* observer */, | 135 nullptr /* observer */, |
| 135 &event_log_, | 136 &event_log_, |
| 136 &packet_router_)), | 137 &packet_router_)), |
| 137 fake_transport_(&packet_router_, send_side_cc_.get()), | 138 fake_transport_(&packet_router_, send_side_cc_.get()), |
| 138 bitrate_allocator_(&limit_observer_), | 139 bitrate_allocator_(&limit_observer_), |
| 139 worker_queue_("ConfigHelper_worker_queue") { | 140 worker_queue_("ConfigHelper_worker_queue") { |
| 140 using testing::Invoke; | 141 using testing::Invoke; |
| 141 | 142 |
| 142 EXPECT_CALL(voice_engine_, | 143 EXPECT_CALL(voice_engine_, |
| 143 RegisterVoiceEngineObserver(_)).WillOnce(Return(0)); | 144 RegisterVoiceEngineObserver(_)).WillOnce(Return(0)); |
| 144 EXPECT_CALL(voice_engine_, | 145 EXPECT_CALL(voice_engine_, |
| 145 DeRegisterVoiceEngineObserver()).WillOnce(Return(0)); | 146 DeRegisterVoiceEngineObserver()).WillOnce(Return(0)); |
| 146 EXPECT_CALL(voice_engine_, audio_device_module()); | 147 EXPECT_CALL(voice_engine_, audio_device_module()); |
| 147 EXPECT_CALL(voice_engine_, audio_processing()); | |
| 148 EXPECT_CALL(voice_engine_, audio_transport()); | 148 EXPECT_CALL(voice_engine_, audio_transport()); |
| 149 | 149 |
| 150 AudioState::Config config; | 150 AudioState::Config config; |
| 151 config.voice_engine = &voice_engine_; | 151 config.voice_engine = &voice_engine_; |
| 152 config.audio_mixer = AudioMixerImpl::Create(); | 152 config.audio_mixer = AudioMixerImpl::Create(); |
| 153 config.audio_processing = audio_processing_; |
| 153 audio_state_ = AudioState::Create(config); | 154 audio_state_ = AudioState::Create(config); |
| 154 | 155 |
| 155 SetupDefaultChannelProxy(audio_bwe_enabled); | 156 SetupDefaultChannelProxy(audio_bwe_enabled); |
| 156 | 157 |
| 157 EXPECT_CALL(voice_engine_, ChannelProxyFactory(kChannelId)) | 158 EXPECT_CALL(voice_engine_, ChannelProxyFactory(kChannelId)) |
| 158 .WillOnce(Invoke([this](int channel_id) { | 159 .WillOnce(Invoke([this](int channel_id) { |
| 159 return channel_proxy_; | 160 return channel_proxy_; |
| 160 })); | 161 })); |
| 161 | 162 |
| 162 SetupMockForSetupSendCodec(expect_set_encoder_call); | 163 SetupMockForSetupSendCodec(expect_set_encoder_call); |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 271 block.fraction_lost = 0; | 272 block.fraction_lost = 0; |
| 272 report_blocks.push_back(block); // Duplicate SSRC, bad fraction_lost. | 273 report_blocks.push_back(block); // Duplicate SSRC, bad fraction_lost. |
| 273 | 274 |
| 274 EXPECT_TRUE(channel_proxy_); | 275 EXPECT_TRUE(channel_proxy_); |
| 275 EXPECT_CALL(*channel_proxy_, GetRTCPStatistics()) | 276 EXPECT_CALL(*channel_proxy_, GetRTCPStatistics()) |
| 276 .WillRepeatedly(Return(kCallStats)); | 277 .WillRepeatedly(Return(kCallStats)); |
| 277 EXPECT_CALL(*channel_proxy_, GetRemoteRTCPReportBlocks()) | 278 EXPECT_CALL(*channel_proxy_, GetRemoteRTCPReportBlocks()) |
| 278 .WillRepeatedly(Return(report_blocks)); | 279 .WillRepeatedly(Return(report_blocks)); |
| 279 EXPECT_CALL(voice_engine_, transmit_mixer()) | 280 EXPECT_CALL(voice_engine_, transmit_mixer()) |
| 280 .WillRepeatedly(Return(&transmit_mixer_)); | 281 .WillRepeatedly(Return(&transmit_mixer_)); |
| 281 EXPECT_CALL(voice_engine_, audio_processing()) | |
| 282 .WillRepeatedly(Return(&audio_processing_)); | |
| 283 | 282 |
| 284 EXPECT_CALL(transmit_mixer_, AudioLevelFullRange()) | 283 EXPECT_CALL(transmit_mixer_, AudioLevelFullRange()) |
| 285 .WillRepeatedly(Return(kSpeechInputLevel)); | 284 .WillRepeatedly(Return(kSpeechInputLevel)); |
| 286 | 285 |
| 287 // We have to set the instantaneous value, the average, min and max. We only | 286 // We have to set the instantaneous value, the average, min and max. We only |
| 288 // care about the instantaneous value, so we set all to the same value. | 287 // care about the instantaneous value, so we set all to the same value. |
| 289 audio_processing_stats_.echo_return_loss.Set( | 288 audio_processing_stats_.echo_return_loss.Set( |
| 290 kEchoReturnLoss, kEchoReturnLoss, kEchoReturnLoss, kEchoReturnLoss); | 289 kEchoReturnLoss, kEchoReturnLoss, kEchoReturnLoss, kEchoReturnLoss); |
| 291 audio_processing_stats_.echo_return_loss_enhancement.Set( | 290 audio_processing_stats_.echo_return_loss_enhancement.Set( |
| 292 kEchoReturnLossEnhancement, kEchoReturnLossEnhancement, | 291 kEchoReturnLossEnhancement, kEchoReturnLossEnhancement, |
| 293 kEchoReturnLossEnhancement, kEchoReturnLossEnhancement); | 292 kEchoReturnLossEnhancement, kEchoReturnLossEnhancement); |
| 294 audio_processing_stats_.delay_median = kEchoDelayMedian; | 293 audio_processing_stats_.delay_median = kEchoDelayMedian; |
| 295 audio_processing_stats_.delay_standard_deviation = kEchoDelayStdDev; | 294 audio_processing_stats_.delay_standard_deviation = kEchoDelayStdDev; |
| 296 | 295 |
| 297 EXPECT_CALL(audio_processing_, GetStatistics()) | 296 EXPECT_CALL(*audio_processing_, GetStatistics()) |
| 298 .WillRepeatedly(Return(audio_processing_stats_)); | 297 .WillRepeatedly(Return(audio_processing_stats_)); |
| 299 } | 298 } |
| 300 | 299 |
| 301 private: | 300 private: |
| 302 testing::StrictMock<MockVoiceEngine> voice_engine_; | 301 testing::StrictMock<MockVoiceEngine> voice_engine_; |
| 303 rtc::scoped_refptr<AudioState> audio_state_; | 302 rtc::scoped_refptr<AudioState> audio_state_; |
| 304 AudioSendStream::Config stream_config_; | 303 AudioSendStream::Config stream_config_; |
| 305 testing::StrictMock<MockVoEChannelProxy>* channel_proxy_ = nullptr; | 304 testing::StrictMock<MockVoEChannelProxy>* channel_proxy_ = nullptr; |
| 306 MockAudioProcessing audio_processing_; | 305 rtc::scoped_refptr<MockAudioProcessing> audio_processing_; |
| 307 MockTransmitMixer transmit_mixer_; | 306 MockTransmitMixer transmit_mixer_; |
| 308 AudioProcessing::AudioProcessingStatistics audio_processing_stats_; | 307 AudioProcessing::AudioProcessingStatistics audio_processing_stats_; |
| 309 SimulatedClock simulated_clock_; | 308 SimulatedClock simulated_clock_; |
| 310 PacketRouter packet_router_; | 309 PacketRouter packet_router_; |
| 311 std::unique_ptr<SendSideCongestionController> send_side_cc_; | 310 std::unique_ptr<SendSideCongestionController> send_side_cc_; |
| 312 FakeRtpTransportControllerSend fake_transport_; | 311 FakeRtpTransportControllerSend fake_transport_; |
| 313 MockRtcEventLog event_log_; | 312 MockRtcEventLog event_log_; |
| 314 MockRtpRtcp rtp_rtcp_; | 313 MockRtpRtcp rtp_rtcp_; |
| 315 MockRtcpRttStats rtcp_rtt_stats_; | 314 MockRtcpRttStats rtcp_rtt_stats_; |
| 316 testing::NiceMock<MockLimitObserver> limit_observer_; | 315 testing::NiceMock<MockLimitObserver> limit_observer_; |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 537 stream_config.send_codec_spec->cng_payload_type = rtc::Optional<int>(105); | 536 stream_config.send_codec_spec->cng_payload_type = rtc::Optional<int>(105); |
| 538 internal::AudioSendStream send_stream( | 537 internal::AudioSendStream send_stream( |
| 539 stream_config, helper.audio_state(), helper.worker_queue(), | 538 stream_config, helper.audio_state(), helper.worker_queue(), |
| 540 helper.transport(), helper.bitrate_allocator(), helper.event_log(), | 539 helper.transport(), helper.bitrate_allocator(), helper.event_log(), |
| 541 helper.rtcp_rtt_stats(), rtc::Optional<RtpState>()); | 540 helper.rtcp_rtt_stats(), rtc::Optional<RtpState>()); |
| 542 send_stream.Reconfigure(stream_config); | 541 send_stream.Reconfigure(stream_config); |
| 543 } | 542 } |
| 544 | 543 |
| 545 } // namespace test | 544 } // namespace test |
| 546 } // namespace webrtc | 545 } // namespace webrtc |
| OLD | NEW |