Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (c) 2008 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2008 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 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 100 void SetSink(Sink* sink) override {} | 100 void SetSink(Sink* sink) override {} |
| 101 }; | 101 }; |
| 102 | 102 |
| 103 class WebRtcVoiceEngineTestFake : public testing::Test { | 103 class WebRtcVoiceEngineTestFake : public testing::Test { |
| 104 public: | 104 public: |
| 105 WebRtcVoiceEngineTestFake() : WebRtcVoiceEngineTestFake("") {} | 105 WebRtcVoiceEngineTestFake() : WebRtcVoiceEngineTestFake("") {} |
| 106 | 106 |
| 107 explicit WebRtcVoiceEngineTestFake(const char* field_trials) | 107 explicit WebRtcVoiceEngineTestFake(const char* field_trials) |
| 108 : call_(webrtc::Call::Config(&event_log_)), voe_(&apm_), | 108 : call_(webrtc::Call::Config(&event_log_)), voe_(&apm_), |
| 109 override_field_trials_(field_trials) { | 109 override_field_trials_(field_trials) { |
| 110 auto factory = webrtc::MockAudioDecoderFactory::CreateUnusedFactory(); | |
| 111 EXPECT_CALL(adm_, AddRef()).WillOnce(Return(0)); | 110 EXPECT_CALL(adm_, AddRef()).WillOnce(Return(0)); |
| 112 EXPECT_CALL(adm_, Release()).WillOnce(Return(0)); | 111 EXPECT_CALL(adm_, Release()).WillOnce(Return(0)); |
| 113 EXPECT_CALL(adm_, BuiltInAECIsAvailable()).WillOnce(Return(false)); | 112 EXPECT_CALL(adm_, BuiltInAECIsAvailable()).WillOnce(Return(false)); |
| 114 EXPECT_CALL(adm_, BuiltInAGCIsAvailable()).WillOnce(Return(false)); | 113 EXPECT_CALL(adm_, BuiltInAGCIsAvailable()).WillOnce(Return(false)); |
| 115 EXPECT_CALL(adm_, BuiltInNSIsAvailable()).WillOnce(Return(false)); | 114 EXPECT_CALL(adm_, BuiltInNSIsAvailable()).WillOnce(Return(false)); |
| 116 EXPECT_CALL(apm_, ApplyConfig(testing::_)); | 115 EXPECT_CALL(apm_, ApplyConfig(testing::_)); |
| 117 EXPECT_CALL(apm_, SetExtraOptions(testing::_)); | 116 EXPECT_CALL(apm_, SetExtraOptions(testing::_)); |
| 118 EXPECT_CALL(apm_, Initialize()).WillOnce(Return(0)); | 117 EXPECT_CALL(apm_, Initialize()).WillOnce(Return(0)); |
| 119 engine_.reset(new cricket::WebRtcVoiceEngine(&adm_, factory, nullptr, | 118 // TODO(kwiberg): We should use a mock AudioDecoderFactory, but a bunch of |
| 120 new FakeVoEWrapper(&voe_))); | 119 // the tests here probe the specific set of codecs provided by the builtin |
| 120 // factory. Those tests should probably be moved elsewhere. | |
|
the sun
2016/12/15 15:34:13
Yes, good call to not do that in this CL though.
| |
| 121 engine_.reset(new cricket::WebRtcVoiceEngine( | |
| 122 &adm_, webrtc::CreateBuiltinAudioDecoderFactory(), nullptr, | |
| 123 new FakeVoEWrapper(&voe_))); | |
| 121 send_parameters_.codecs.push_back(kPcmuCodec); | 124 send_parameters_.codecs.push_back(kPcmuCodec); |
| 122 recv_parameters_.codecs.push_back(kPcmuCodec); | 125 recv_parameters_.codecs.push_back(kPcmuCodec); |
| 123 } | 126 } |
| 124 | 127 |
| 125 bool SetupChannel() { | 128 bool SetupChannel() { |
| 126 EXPECT_CALL(apm_, ApplyConfig(testing::_)); | 129 EXPECT_CALL(apm_, ApplyConfig(testing::_)); |
| 127 EXPECT_CALL(apm_, SetExtraOptions(testing::_)); | 130 EXPECT_CALL(apm_, SetExtraOptions(testing::_)); |
| 128 channel_ = engine_->CreateChannel(&call_, cricket::MediaConfig(), | 131 channel_ = engine_->CreateChannel(&call_, cricket::MediaConfig(), |
| 129 cricket::AudioOptions()); | 132 cricket::AudioOptions()); |
| 130 return (channel_ != nullptr); | 133 return (channel_ != nullptr); |
| (...skipping 732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 863 EXPECT_STREQ("telephone-event", gcodec.plname); | 866 EXPECT_STREQ("telephone-event", gcodec.plname); |
| 864 } | 867 } |
| 865 | 868 |
| 866 TEST_F(WebRtcVoiceEngineTestFake, SetRecvCodecsAfterAddingStreams) { | 869 TEST_F(WebRtcVoiceEngineTestFake, SetRecvCodecsAfterAddingStreams) { |
| 867 EXPECT_TRUE(SetupRecvStream()); | 870 EXPECT_TRUE(SetupRecvStream()); |
| 868 cricket::AudioRecvParameters parameters; | 871 cricket::AudioRecvParameters parameters; |
| 869 parameters.codecs.push_back(kIsacCodec); | 872 parameters.codecs.push_back(kIsacCodec); |
| 870 parameters.codecs[0].id = 106; // collide with existing CN 32k | 873 parameters.codecs[0].id = 106; // collide with existing CN 32k |
| 871 EXPECT_TRUE(channel_->SetRecvParameters(parameters)); | 874 EXPECT_TRUE(channel_->SetRecvParameters(parameters)); |
| 872 | 875 |
| 873 int channel_num2 = voe_.GetLastChannel(); | 876 const auto& dm = GetRecvStreamConfig(kSsrc1).decoder_map; |
| 874 webrtc::CodecInst gcodec; | 877 ASSERT_EQ(1, dm.count(106)); |
| 875 rtc::strcpyn(gcodec.plname, arraysize(gcodec.plname), "ISAC"); | 878 EXPECT_EQ(webrtc::SdpAudioFormat("isac", 16000, 1), dm.at(106)); |
| 876 gcodec.plfreq = 16000; | |
| 877 gcodec.channels = 1; | |
| 878 EXPECT_EQ(0, voe_.GetRecPayloadType(channel_num2, gcodec)); | |
| 879 EXPECT_EQ(106, gcodec.pltype); | |
| 880 EXPECT_STREQ("ISAC", gcodec.plname); | |
| 881 } | 879 } |
| 882 | 880 |
| 883 // Test that we can apply the same set of codecs again while playing. | 881 // Test that we can apply the same set of codecs again while playing. |
| 884 TEST_F(WebRtcVoiceEngineTestFake, SetRecvCodecsWhilePlaying) { | 882 TEST_F(WebRtcVoiceEngineTestFake, SetRecvCodecsWhilePlaying) { |
| 885 EXPECT_TRUE(SetupRecvStream()); | 883 EXPECT_TRUE(SetupRecvStream()); |
| 886 cricket::AudioRecvParameters parameters; | 884 cricket::AudioRecvParameters parameters; |
| 887 parameters.codecs.push_back(kIsacCodec); | 885 parameters.codecs.push_back(kIsacCodec); |
| 888 parameters.codecs.push_back(kCn16000Codec); | 886 parameters.codecs.push_back(kCn16000Codec); |
| 889 EXPECT_TRUE(channel_->SetRecvParameters(parameters)); | 887 EXPECT_TRUE(channel_->SetRecvParameters(parameters)); |
| 890 channel_->SetPlayout(true); | 888 channel_->SetPlayout(true); |
| (...skipping 2732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3623 nullptr, webrtc::CreateBuiltinAudioDecoderFactory(), nullptr); | 3621 nullptr, webrtc::CreateBuiltinAudioDecoderFactory(), nullptr); |
| 3624 webrtc::RtcEventLogNullImpl event_log; | 3622 webrtc::RtcEventLogNullImpl event_log; |
| 3625 std::unique_ptr<webrtc::Call> call( | 3623 std::unique_ptr<webrtc::Call> call( |
| 3626 webrtc::Call::Create(webrtc::Call::Config(&event_log))); | 3624 webrtc::Call::Create(webrtc::Call::Config(&event_log))); |
| 3627 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::MediaConfig(), | 3625 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::MediaConfig(), |
| 3628 cricket::AudioOptions(), call.get()); | 3626 cricket::AudioOptions(), call.get()); |
| 3629 cricket::AudioRecvParameters parameters; | 3627 cricket::AudioRecvParameters parameters; |
| 3630 parameters.codecs = engine.recv_codecs(); | 3628 parameters.codecs = engine.recv_codecs(); |
| 3631 EXPECT_TRUE(channel.SetRecvParameters(parameters)); | 3629 EXPECT_TRUE(channel.SetRecvParameters(parameters)); |
| 3632 } | 3630 } |
| OLD | NEW |