| OLD | NEW |
| 1 /* | 1 /* |
| 2 * libjingle | 2 * libjingle |
| 3 * Copyright 2008 Google Inc. | 3 * Copyright 2008 Google Inc. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
| 9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 filter_ = filter; | 82 filter_ = filter; |
| 83 return 0; | 83 return 0; |
| 84 } | 84 } |
| 85 int SetTraceFile(const char* fileNameUTF8) override { return 0; } | 85 int SetTraceFile(const char* fileNameUTF8) override { return 0; } |
| 86 int SetTraceCallback(webrtc::TraceCallback* callback) override { return 0; } | 86 int SetTraceCallback(webrtc::TraceCallback* callback) override { return 0; } |
| 87 unsigned int filter_; | 87 unsigned int filter_; |
| 88 }; | 88 }; |
| 89 | 89 |
| 90 class WebRtcVoiceEngineTestFake : public testing::Test { | 90 class WebRtcVoiceEngineTestFake : public testing::Test { |
| 91 public: | 91 public: |
| 92 class ChannelErrorListener : public sigslot::has_slots<> { | |
| 93 public: | |
| 94 explicit ChannelErrorListener(cricket::VoiceMediaChannel* channel) | |
| 95 : ssrc_(0), error_(cricket::VoiceMediaChannel::ERROR_NONE) { | |
| 96 RTC_DCHECK(channel != NULL); | |
| 97 channel->SignalMediaError.connect( | |
| 98 this, &ChannelErrorListener::OnVoiceChannelError); | |
| 99 } | |
| 100 void OnVoiceChannelError(uint32 ssrc, | |
| 101 cricket::VoiceMediaChannel::Error error) { | |
| 102 ssrc_ = ssrc; | |
| 103 error_ = error; | |
| 104 } | |
| 105 void Reset() { | |
| 106 ssrc_ = 0; | |
| 107 error_ = cricket::VoiceMediaChannel::ERROR_NONE; | |
| 108 } | |
| 109 uint32 ssrc() const { | |
| 110 return ssrc_; | |
| 111 } | |
| 112 cricket::VoiceMediaChannel::Error error() const { | |
| 113 return error_; | |
| 114 } | |
| 115 | |
| 116 private: | |
| 117 uint32 ssrc_; | |
| 118 cricket::VoiceMediaChannel::Error error_; | |
| 119 }; | |
| 120 | |
| 121 WebRtcVoiceEngineTestFake() | 92 WebRtcVoiceEngineTestFake() |
| 122 : call_(webrtc::Call::Config()), | 93 : call_(webrtc::Call::Config()), |
| 123 voe_(kAudioCodecs, ARRAY_SIZE(kAudioCodecs)), | 94 voe_(kAudioCodecs, ARRAY_SIZE(kAudioCodecs)), |
| 124 trace_wrapper_(new FakeVoETraceWrapper()), | 95 trace_wrapper_(new FakeVoETraceWrapper()), |
| 125 engine_(new FakeVoEWrapper(&voe_), trace_wrapper_), | 96 engine_(new FakeVoEWrapper(&voe_), trace_wrapper_), |
| 126 channel_(nullptr) { | 97 channel_(nullptr) { |
| 127 send_parameters_.codecs.push_back(kPcmuCodec); | 98 send_parameters_.codecs.push_back(kPcmuCodec); |
| 128 recv_parameters_.codecs.push_back(kPcmuCodec); | 99 recv_parameters_.codecs.push_back(kPcmuCodec); |
| 129 options_conference_.conference_mode.Set(true); | 100 options_conference_.conference_mode.Set(true); |
| 130 options_adjust_agc_.adjust_agc_delta.Set(-10); | 101 options_adjust_agc_.adjust_agc_delta.Set(-10); |
| (...skipping 2405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2536 // Test the InsertDtmf on specified send stream as caller. | 2507 // Test the InsertDtmf on specified send stream as caller. |
| 2537 TEST_F(WebRtcVoiceEngineTestFake, InsertDtmfOnSendStreamAsCaller) { | 2508 TEST_F(WebRtcVoiceEngineTestFake, InsertDtmfOnSendStreamAsCaller) { |
| 2538 TestInsertDtmf(kSsrc1, true); | 2509 TestInsertDtmf(kSsrc1, true); |
| 2539 } | 2510 } |
| 2540 | 2511 |
| 2541 // Test the InsertDtmf on specified send stream as callee. | 2512 // Test the InsertDtmf on specified send stream as callee. |
| 2542 TEST_F(WebRtcVoiceEngineTestFake, InsertDtmfOnSendStreamAsCallee) { | 2513 TEST_F(WebRtcVoiceEngineTestFake, InsertDtmfOnSendStreamAsCallee) { |
| 2543 TestInsertDtmf(kSsrc1, false); | 2514 TestInsertDtmf(kSsrc1, false); |
| 2544 } | 2515 } |
| 2545 | 2516 |
| 2546 TEST_F(WebRtcVoiceEngineTestFake, MediaEngineCallbackOnError) { | |
| 2547 rtc::scoped_ptr<ChannelErrorListener> listener; | |
| 2548 cricket::WebRtcVoiceMediaChannel* media_channel; | |
| 2549 unsigned int ssrc = 0; | |
| 2550 | |
| 2551 EXPECT_TRUE(SetupEngine()); | |
| 2552 send_parameters_.options = options_conference_; | |
| 2553 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); | |
| 2554 EXPECT_TRUE(channel_->SetSend(cricket::SEND_MICROPHONE)); | |
| 2555 | |
| 2556 media_channel = static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); | |
| 2557 listener.reset(new ChannelErrorListener(channel_)); | |
| 2558 | |
| 2559 // Test on WebRtc VoE channel. | |
| 2560 voe_.TriggerCallbackOnError(media_channel->voe_channel(), | |
| 2561 VE_SATURATION_WARNING); | |
| 2562 EXPECT_EQ(cricket::VoiceMediaChannel::ERROR_REC_DEVICE_SATURATION, | |
| 2563 listener->error()); | |
| 2564 EXPECT_NE(-1, voe_.GetLocalSSRC(voe_.GetLastChannel(), ssrc)); | |
| 2565 EXPECT_EQ(ssrc, listener->ssrc()); | |
| 2566 | |
| 2567 listener->Reset(); | |
| 2568 voe_.TriggerCallbackOnError(-1, VE_TYPING_NOISE_WARNING); | |
| 2569 EXPECT_EQ(cricket::VoiceMediaChannel::ERROR_REC_TYPING_NOISE_DETECTED, | |
| 2570 listener->error()); | |
| 2571 EXPECT_EQ(0U, listener->ssrc()); | |
| 2572 | |
| 2573 // Add another stream and test on that. | |
| 2574 ++ssrc; | |
| 2575 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy( | |
| 2576 ssrc))); | |
| 2577 listener->Reset(); | |
| 2578 voe_.TriggerCallbackOnError(voe_.GetLastChannel(), | |
| 2579 VE_SATURATION_WARNING); | |
| 2580 EXPECT_EQ(cricket::VoiceMediaChannel::ERROR_REC_DEVICE_SATURATION, | |
| 2581 listener->error()); | |
| 2582 EXPECT_EQ(ssrc, listener->ssrc()); | |
| 2583 | |
| 2584 // Testing a non-existing channel. | |
| 2585 listener->Reset(); | |
| 2586 voe_.TriggerCallbackOnError(voe_.GetLastChannel() + 2, | |
| 2587 VE_SATURATION_WARNING); | |
| 2588 EXPECT_EQ(0, listener->error()); | |
| 2589 } | |
| 2590 | |
| 2591 TEST_F(WebRtcVoiceEngineTestFake, TestSetPlayoutError) { | 2517 TEST_F(WebRtcVoiceEngineTestFake, TestSetPlayoutError) { |
| 2592 EXPECT_TRUE(SetupEngine()); | 2518 EXPECT_TRUE(SetupEngine()); |
| 2593 send_parameters_.options = options_conference_; | 2519 send_parameters_.options = options_conference_; |
| 2594 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); | 2520 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); |
| 2595 EXPECT_TRUE(channel_->SetSend(cricket::SEND_MICROPHONE)); | 2521 EXPECT_TRUE(channel_->SetSend(cricket::SEND_MICROPHONE)); |
| 2596 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(2))); | 2522 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(2))); |
| 2597 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(3))); | 2523 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(3))); |
| 2598 EXPECT_TRUE(channel_->SetPlayout(true)); | 2524 EXPECT_TRUE(channel_->SetPlayout(true)); |
| 2599 voe_.set_playout_fail_channel(voe_.GetLastChannel() - 1); | 2525 voe_.set_playout_fail_channel(voe_.GetLastChannel() - 1); |
| 2600 EXPECT_TRUE(channel_->SetPlayout(false)); | 2526 EXPECT_TRUE(channel_->SetPlayout(false)); |
| (...skipping 772 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3373 cricket::WebRtcVoiceEngine engine; | 3299 cricket::WebRtcVoiceEngine engine; |
| 3374 EXPECT_TRUE(engine.Init(rtc::Thread::Current())); | 3300 EXPECT_TRUE(engine.Init(rtc::Thread::Current())); |
| 3375 rtc::scoped_ptr<webrtc::Call> call( | 3301 rtc::scoped_ptr<webrtc::Call> call( |
| 3376 webrtc::Call::Create(webrtc::Call::Config())); | 3302 webrtc::Call::Create(webrtc::Call::Config())); |
| 3377 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::AudioOptions(), | 3303 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::AudioOptions(), |
| 3378 call.get()); | 3304 call.get()); |
| 3379 cricket::AudioRecvParameters parameters; | 3305 cricket::AudioRecvParameters parameters; |
| 3380 parameters.codecs = engine.codecs(); | 3306 parameters.codecs = engine.codecs(); |
| 3381 EXPECT_TRUE(channel.SetRecvParameters(parameters)); | 3307 EXPECT_TRUE(channel.SetRecvParameters(parameters)); |
| 3382 } | 3308 } |
| OLD | NEW |