| 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 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 const cricket::AudioOptions* options = nullptr) { | 214 const cricket::AudioOptions* options = nullptr) { |
| 215 EXPECT_CALL(apm_, set_output_will_be_muted(!enable)); | 215 EXPECT_CALL(apm_, set_output_will_be_muted(!enable)); |
| 216 ASSERT_TRUE(channel_); | 216 ASSERT_TRUE(channel_); |
| 217 if (enable && options) { | 217 if (enable && options) { |
| 218 EXPECT_CALL(apm_, ApplyConfig(testing::_)); | 218 EXPECT_CALL(apm_, ApplyConfig(testing::_)); |
| 219 EXPECT_CALL(apm_, SetExtraOptions(testing::_)); | 219 EXPECT_CALL(apm_, SetExtraOptions(testing::_)); |
| 220 } | 220 } |
| 221 EXPECT_TRUE(channel_->SetAudioSend(ssrc, enable, options, source)); | 221 EXPECT_TRUE(channel_->SetAudioSend(ssrc, enable, options, source)); |
| 222 } | 222 } |
| 223 | 223 |
| 224 void TestInsertDtmf(uint32_t ssrc, bool caller) { | 224 void TestInsertDtmf(uint32_t ssrc, bool caller, |
| 225 const cricket::AudioCodec& codec) { |
| 225 EXPECT_TRUE(SetupChannel()); | 226 EXPECT_TRUE(SetupChannel()); |
| 226 if (caller) { | 227 if (caller) { |
| 227 // If this is a caller, local description will be applied and add the | 228 // If this is a caller, local description will be applied and add the |
| 228 // send stream. | 229 // send stream. |
| 229 EXPECT_TRUE(channel_->AddSendStream( | 230 EXPECT_TRUE(channel_->AddSendStream( |
| 230 cricket::StreamParams::CreateLegacy(kSsrc1))); | 231 cricket::StreamParams::CreateLegacy(kSsrc1))); |
| 231 } | 232 } |
| 232 | 233 |
| 233 // Test we can only InsertDtmf when the other side supports telephone-event. | 234 // Test we can only InsertDtmf when the other side supports telephone-event. |
| 234 SetSendParameters(send_parameters_); | 235 SetSendParameters(send_parameters_); |
| 235 SetSend(true); | 236 SetSend(true); |
| 236 EXPECT_FALSE(channel_->CanInsertDtmf()); | 237 EXPECT_FALSE(channel_->CanInsertDtmf()); |
| 237 EXPECT_FALSE(channel_->InsertDtmf(ssrc, 1, 111)); | 238 EXPECT_FALSE(channel_->InsertDtmf(ssrc, 1, 111)); |
| 238 send_parameters_.codecs.push_back(kTelephoneEventCodec1); | 239 send_parameters_.codecs.push_back(codec); |
| 239 SetSendParameters(send_parameters_); | 240 SetSendParameters(send_parameters_); |
| 240 EXPECT_TRUE(channel_->CanInsertDtmf()); | 241 EXPECT_TRUE(channel_->CanInsertDtmf()); |
| 241 | 242 |
| 242 if (!caller) { | 243 if (!caller) { |
| 243 // If this is callee, there's no active send channel yet. | 244 // If this is callee, there's no active send channel yet. |
| 244 EXPECT_FALSE(channel_->InsertDtmf(ssrc, 2, 123)); | 245 EXPECT_FALSE(channel_->InsertDtmf(ssrc, 2, 123)); |
| 245 EXPECT_TRUE(channel_->AddSendStream( | 246 EXPECT_TRUE(channel_->AddSendStream( |
| 246 cricket::StreamParams::CreateLegacy(kSsrc1))); | 247 cricket::StreamParams::CreateLegacy(kSsrc1))); |
| 247 } | 248 } |
| 248 | 249 |
| 249 // Check we fail if the ssrc is invalid. | 250 // Check we fail if the ssrc is invalid. |
| 250 EXPECT_FALSE(channel_->InsertDtmf(-1, 1, 111)); | 251 EXPECT_FALSE(channel_->InsertDtmf(-1, 1, 111)); |
| 251 | 252 |
| 252 // Test send. | 253 // Test send. |
| 253 cricket::FakeAudioSendStream::TelephoneEvent telephone_event = | 254 cricket::FakeAudioSendStream::TelephoneEvent telephone_event = |
| 254 GetSendStream(kSsrc1).GetLatestTelephoneEvent(); | 255 GetSendStream(kSsrc1).GetLatestTelephoneEvent(); |
| 255 EXPECT_EQ(-1, telephone_event.payload_type); | 256 EXPECT_EQ(-1, telephone_event.payload_type); |
| 256 EXPECT_TRUE(channel_->InsertDtmf(ssrc, 2, 123)); | 257 EXPECT_TRUE(channel_->InsertDtmf(ssrc, 2, 123)); |
| 257 telephone_event = GetSendStream(kSsrc1).GetLatestTelephoneEvent(); | 258 telephone_event = GetSendStream(kSsrc1).GetLatestTelephoneEvent(); |
| 258 EXPECT_EQ(kTelephoneEventCodec1.id, telephone_event.payload_type); | 259 EXPECT_EQ(codec.id, telephone_event.payload_type); |
| 260 EXPECT_EQ(codec.clockrate, telephone_event.payload_frequency); |
| 259 EXPECT_EQ(2, telephone_event.event_code); | 261 EXPECT_EQ(2, telephone_event.event_code); |
| 260 EXPECT_EQ(123, telephone_event.duration_ms); | 262 EXPECT_EQ(123, telephone_event.duration_ms); |
| 261 } | 263 } |
| 262 | 264 |
| 263 // Test that send bandwidth is set correctly. | 265 // Test that send bandwidth is set correctly. |
| 264 // |codec| is the codec under test. | 266 // |codec| is the codec under test. |
| 265 // |max_bitrate| is a parameter to set to SetMaxSendBandwidth(). | 267 // |max_bitrate| is a parameter to set to SetMaxSendBandwidth(). |
| 266 // |expected_result| is the expected result from SetMaxSendBandwidth(). | 268 // |expected_result| is the expected result from SetMaxSendBandwidth(). |
| 267 // |expected_bitrate| is the expected audio bitrate afterward. | 269 // |expected_bitrate| is the expected audio bitrate afterward. |
| 268 void TestMaxSendBandwidth(const cricket::AudioCodec& codec, | 270 void TestMaxSendBandwidth(const cricket::AudioCodec& codec, |
| (...skipping 1608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1877 const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; | 1879 const auto& gcodec = GetSendStreamConfig(kSsrc1).send_codec_spec.codec_inst; |
| 1878 EXPECT_EQ(96, gcodec.pltype); | 1880 EXPECT_EQ(96, gcodec.pltype); |
| 1879 EXPECT_STREQ("ISAC", gcodec.plname); | 1881 EXPECT_STREQ("ISAC", gcodec.plname); |
| 1880 EXPECT_TRUE(channel_->CanInsertDtmf()); | 1882 EXPECT_TRUE(channel_->CanInsertDtmf()); |
| 1881 } | 1883 } |
| 1882 | 1884 |
| 1883 // Test that payload type range is limited for telephone-event codec. | 1885 // Test that payload type range is limited for telephone-event codec. |
| 1884 TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsDTMFPayloadTypeOutOfRange) { | 1886 TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsDTMFPayloadTypeOutOfRange) { |
| 1885 EXPECT_TRUE(SetupSendStream()); | 1887 EXPECT_TRUE(SetupSendStream()); |
| 1886 cricket::AudioSendParameters parameters; | 1888 cricket::AudioSendParameters parameters; |
| 1887 parameters.codecs.push_back(kTelephoneEventCodec1); | 1889 parameters.codecs.push_back(kTelephoneEventCodec2); |
| 1888 parameters.codecs.push_back(kIsacCodec); | 1890 parameters.codecs.push_back(kIsacCodec); |
| 1889 parameters.codecs[0].id = 0; // DTMF | 1891 parameters.codecs[0].id = 0; // DTMF |
| 1890 parameters.codecs[1].id = 96; | 1892 parameters.codecs[1].id = 96; |
| 1891 SetSendParameters(parameters); | 1893 SetSendParameters(parameters); |
| 1892 EXPECT_TRUE(channel_->CanInsertDtmf()); | 1894 EXPECT_TRUE(channel_->CanInsertDtmf()); |
| 1893 parameters.codecs[0].id = 128; // DTMF | 1895 parameters.codecs[0].id = 128; // DTMF |
| 1894 EXPECT_FALSE(channel_->SetSendParameters(parameters)); | 1896 EXPECT_FALSE(channel_->SetSendParameters(parameters)); |
| 1895 EXPECT_FALSE(channel_->CanInsertDtmf()); | 1897 EXPECT_FALSE(channel_->CanInsertDtmf()); |
| 1896 parameters.codecs[0].id = 127; | 1898 parameters.codecs[0].id = 127; |
| 1897 SetSendParameters(parameters); | 1899 SetSendParameters(parameters); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1945 | 1947 |
| 1946 // Test that we set VAD and DTMF types correctly as callee. | 1948 // Test that we set VAD and DTMF types correctly as callee. |
| 1947 TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNandDTMFAsCallee) { | 1949 TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsCNandDTMFAsCallee) { |
| 1948 EXPECT_TRUE(SetupChannel()); | 1950 EXPECT_TRUE(SetupChannel()); |
| 1949 cricket::AudioSendParameters parameters; | 1951 cricket::AudioSendParameters parameters; |
| 1950 parameters.codecs.push_back(kIsacCodec); | 1952 parameters.codecs.push_back(kIsacCodec); |
| 1951 parameters.codecs.push_back(kPcmuCodec); | 1953 parameters.codecs.push_back(kPcmuCodec); |
| 1952 // TODO(juberti): cn 32000 | 1954 // TODO(juberti): cn 32000 |
| 1953 parameters.codecs.push_back(kCn16000Codec); | 1955 parameters.codecs.push_back(kCn16000Codec); |
| 1954 parameters.codecs.push_back(kCn8000Codec); | 1956 parameters.codecs.push_back(kCn8000Codec); |
| 1955 parameters.codecs.push_back(kTelephoneEventCodec1); | 1957 parameters.codecs.push_back(kTelephoneEventCodec2); |
| 1956 parameters.codecs[0].id = 96; | 1958 parameters.codecs[0].id = 96; |
| 1957 parameters.codecs[2].id = 97; // wideband CN | 1959 parameters.codecs[2].id = 97; // wideband CN |
| 1958 parameters.codecs[4].id = 98; // DTMF | 1960 parameters.codecs[4].id = 98; // DTMF |
| 1959 SetSendParameters(parameters); | 1961 SetSendParameters(parameters); |
| 1960 EXPECT_TRUE(channel_->AddSendStream( | 1962 EXPECT_TRUE(channel_->AddSendStream( |
| 1961 cricket::StreamParams::CreateLegacy(kSsrc1))); | 1963 cricket::StreamParams::CreateLegacy(kSsrc1))); |
| 1962 | 1964 |
| 1963 const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; | 1965 const auto& send_codec_spec = GetSendStreamConfig(kSsrc1).send_codec_spec; |
| 1964 EXPECT_EQ(96, send_codec_spec.codec_inst.pltype); | 1966 EXPECT_EQ(96, send_codec_spec.codec_inst.pltype); |
| 1965 EXPECT_STREQ("ISAC", send_codec_spec.codec_inst.plname); | 1967 EXPECT_STREQ("ISAC", send_codec_spec.codec_inst.plname); |
| (...skipping 759 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2725 // Add recv stream 2 should work. | 2727 // Add recv stream 2 should work. |
| 2726 EXPECT_TRUE(AddRecvStream(2)); | 2728 EXPECT_TRUE(AddRecvStream(2)); |
| 2727 int new_channel = voe_.GetLastChannel(); | 2729 int new_channel = voe_.GetLastChannel(); |
| 2728 EXPECT_NE(channel, new_channel); | 2730 EXPECT_NE(channel, new_channel); |
| 2729 // The last created channel is deleted too. | 2731 // The last created channel is deleted too. |
| 2730 EXPECT_EQ(0, voe_.DeleteChannel(new_channel)); | 2732 EXPECT_EQ(0, voe_.DeleteChannel(new_channel)); |
| 2731 } | 2733 } |
| 2732 | 2734 |
| 2733 // Test the InsertDtmf on default send stream as caller. | 2735 // Test the InsertDtmf on default send stream as caller. |
| 2734 TEST_F(WebRtcVoiceEngineTestFake, InsertDtmfOnDefaultSendStreamAsCaller) { | 2736 TEST_F(WebRtcVoiceEngineTestFake, InsertDtmfOnDefaultSendStreamAsCaller) { |
| 2735 TestInsertDtmf(0, true); | 2737 TestInsertDtmf(0, true, kTelephoneEventCodec1); |
| 2736 } | 2738 } |
| 2737 | 2739 |
| 2738 // Test the InsertDtmf on default send stream as callee | 2740 // Test the InsertDtmf on default send stream as callee |
| 2739 TEST_F(WebRtcVoiceEngineTestFake, InsertDtmfOnDefaultSendStreamAsCallee) { | 2741 TEST_F(WebRtcVoiceEngineTestFake, InsertDtmfOnDefaultSendStreamAsCallee) { |
| 2740 TestInsertDtmf(0, false); | 2742 TestInsertDtmf(0, false, kTelephoneEventCodec2); |
| 2741 } | 2743 } |
| 2742 | 2744 |
| 2743 // Test the InsertDtmf on specified send stream as caller. | 2745 // Test the InsertDtmf on specified send stream as caller. |
| 2744 TEST_F(WebRtcVoiceEngineTestFake, InsertDtmfOnSendStreamAsCaller) { | 2746 TEST_F(WebRtcVoiceEngineTestFake, InsertDtmfOnSendStreamAsCaller) { |
| 2745 TestInsertDtmf(kSsrc1, true); | 2747 TestInsertDtmf(kSsrc1, true, kTelephoneEventCodec2); |
| 2746 } | 2748 } |
| 2747 | 2749 |
| 2748 // Test the InsertDtmf on specified send stream as callee. | 2750 // Test the InsertDtmf on specified send stream as callee. |
| 2749 TEST_F(WebRtcVoiceEngineTestFake, InsertDtmfOnSendStreamAsCallee) { | 2751 TEST_F(WebRtcVoiceEngineTestFake, InsertDtmfOnSendStreamAsCallee) { |
| 2750 TestInsertDtmf(kSsrc1, false); | 2752 TestInsertDtmf(kSsrc1, false, kTelephoneEventCodec1); |
| 2751 } | 2753 } |
| 2752 | 2754 |
| 2753 TEST_F(WebRtcVoiceEngineTestFake, SetAudioOptions) { | 2755 TEST_F(WebRtcVoiceEngineTestFake, SetAudioOptions) { |
| 2754 EXPECT_TRUE(SetupSendStream()); | 2756 EXPECT_TRUE(SetupSendStream()); |
| 2755 EXPECT_CALL(adm_, | 2757 EXPECT_CALL(adm_, |
| 2756 BuiltInAECIsAvailable()).Times(9).WillRepeatedly(Return(false)); | 2758 BuiltInAECIsAvailable()).Times(9).WillRepeatedly(Return(false)); |
| 2757 EXPECT_CALL(adm_, | 2759 EXPECT_CALL(adm_, |
| 2758 BuiltInAGCIsAvailable()).Times(4).WillRepeatedly(Return(false)); | 2760 BuiltInAGCIsAvailable()).Times(4).WillRepeatedly(Return(false)); |
| 2759 EXPECT_CALL(adm_, | 2761 EXPECT_CALL(adm_, |
| 2760 BuiltInNSIsAvailable()).Times(2).WillRepeatedly(Return(false)); | 2762 BuiltInNSIsAvailable()).Times(2).WillRepeatedly(Return(false)); |
| (...skipping 768 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3529 nullptr, webrtc::CreateBuiltinAudioDecoderFactory()); | 3531 nullptr, webrtc::CreateBuiltinAudioDecoderFactory()); |
| 3530 webrtc::RtcEventLogNullImpl event_log; | 3532 webrtc::RtcEventLogNullImpl event_log; |
| 3531 std::unique_ptr<webrtc::Call> call( | 3533 std::unique_ptr<webrtc::Call> call( |
| 3532 webrtc::Call::Create(webrtc::Call::Config(&event_log))); | 3534 webrtc::Call::Create(webrtc::Call::Config(&event_log))); |
| 3533 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::MediaConfig(), | 3535 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::MediaConfig(), |
| 3534 cricket::AudioOptions(), call.get()); | 3536 cricket::AudioOptions(), call.get()); |
| 3535 cricket::AudioRecvParameters parameters; | 3537 cricket::AudioRecvParameters parameters; |
| 3536 parameters.codecs = engine.recv_codecs(); | 3538 parameters.codecs = engine.recv_codecs(); |
| 3537 EXPECT_TRUE(channel.SetRecvParameters(parameters)); | 3539 EXPECT_TRUE(channel.SetRecvParameters(parameters)); |
| 3538 } | 3540 } |
| OLD | NEW |