| 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 | 
|---|