| Index: talk/media/webrtc/webrtcvoiceengine_unittest.cc
|
| diff --git a/talk/media/webrtc/webrtcvoiceengine_unittest.cc b/talk/media/webrtc/webrtcvoiceengine_unittest.cc
|
| index b52f6fc4fe29b4bda6875a8a883470eeb26b3071..888de7d8a485e4254a9edaa898efa06edf75a080 100644
|
| --- a/talk/media/webrtc/webrtcvoiceengine_unittest.cc
|
| +++ b/talk/media/webrtc/webrtcvoiceengine_unittest.cc
|
| @@ -54,10 +54,6 @@ const cricket::AudioCodec kCn8000Codec(13, "CN", 8000, 0, 1, 0);
|
| const cricket::AudioCodec kCn16000Codec(105, "CN", 16000, 0, 1, 0);
|
| const cricket::AudioCodec kTelephoneEventCodec(106, "telephone-event", 8000, 0,
|
| 1, 0);
|
| -const cricket::AudioCodec* const kAudioCodecs[] = {
|
| - &kPcmuCodec, &kIsacCodec, &kOpusCodec, &kG722CodecVoE, &kRedCodec,
|
| - &kCn8000Codec, &kCn16000Codec, &kTelephoneEventCodec,
|
| -};
|
| const uint32_t kSsrc1 = 0x99;
|
| const uint32_t kSsrc2 = 0x98;
|
| const uint32_t kSsrcs4[] = { 1, 2, 3, 4 };
|
| @@ -81,7 +77,6 @@ class WebRtcVoiceEngineTestFake : public testing::Test {
|
| public:
|
| WebRtcVoiceEngineTestFake()
|
| : call_(webrtc::Call::Config()),
|
| - voe_(kAudioCodecs, arraysize(kAudioCodecs)),
|
| engine_(new FakeVoEWrapper(&voe_)),
|
| channel_(nullptr) {
|
| send_parameters_.codecs.push_back(kPcmuCodec);
|
| @@ -451,32 +446,33 @@ TEST_F(WebRtcVoiceEngineTestFake, FindCodec) {
|
| cricket::AudioCodec codec;
|
| webrtc::CodecInst codec_inst;
|
| // Find PCMU with explicit clockrate and bitrate.
|
| - EXPECT_TRUE(engine_.FindWebRtcCodec(kPcmuCodec, &codec_inst));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(kPcmuCodec, &codec_inst));
|
| // Find ISAC with explicit clockrate and 0 bitrate.
|
| - EXPECT_TRUE(engine_.FindWebRtcCodec(kIsacCodec, &codec_inst));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(kIsacCodec, &codec_inst));
|
| // Find telephone-event with explicit clockrate and 0 bitrate.
|
| - EXPECT_TRUE(engine_.FindWebRtcCodec(kTelephoneEventCodec, &codec_inst));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(kTelephoneEventCodec,
|
| + &codec_inst));
|
| // Find ISAC with a different payload id.
|
| codec = kIsacCodec;
|
| codec.id = 127;
|
| - EXPECT_TRUE(engine_.FindWebRtcCodec(codec, &codec_inst));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(codec, &codec_inst));
|
| EXPECT_EQ(codec.id, codec_inst.pltype);
|
| // Find PCMU with a 0 clockrate.
|
| codec = kPcmuCodec;
|
| codec.clockrate = 0;
|
| - EXPECT_TRUE(engine_.FindWebRtcCodec(codec, &codec_inst));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(codec, &codec_inst));
|
| EXPECT_EQ(codec.id, codec_inst.pltype);
|
| EXPECT_EQ(8000, codec_inst.plfreq);
|
| // Find PCMU with a 0 bitrate.
|
| codec = kPcmuCodec;
|
| codec.bitrate = 0;
|
| - EXPECT_TRUE(engine_.FindWebRtcCodec(codec, &codec_inst));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(codec, &codec_inst));
|
| EXPECT_EQ(codec.id, codec_inst.pltype);
|
| EXPECT_EQ(64000, codec_inst.rate);
|
| // Find ISAC with an explicit bitrate.
|
| codec = kIsacCodec;
|
| codec.bitrate = 32000;
|
| - EXPECT_TRUE(engine_.FindWebRtcCodec(codec, &codec_inst));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(codec, &codec_inst));
|
| EXPECT_EQ(codec.id, codec_inst.pltype);
|
| EXPECT_EQ(32000, codec_inst.rate);
|
| }
|
| @@ -539,7 +535,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetRecvCodecsWithOpusNoStereo) {
|
| cricket::StreamParams::CreateLegacy(kSsrc1)));
|
| int channel_num = voe_.GetLastChannel();
|
| webrtc::CodecInst opus;
|
| - engine_.FindWebRtcCodec(kOpusCodec, &opus);
|
| + cricket::WebRtcVoiceEngine::ToCodecInst(kOpusCodec, &opus);
|
| // Even without stereo parameters, recv codecs still specify channels = 2.
|
| EXPECT_EQ(2, opus.channels);
|
| EXPECT_EQ(111, opus.pltype);
|
| @@ -562,7 +558,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetRecvCodecsWithOpus0Stereo) {
|
| cricket::StreamParams::CreateLegacy(kSsrc1)));
|
| int channel_num2 = voe_.GetLastChannel();
|
| webrtc::CodecInst opus;
|
| - engine_.FindWebRtcCodec(kOpusCodec, &opus);
|
| + cricket::WebRtcVoiceEngine::ToCodecInst(kOpusCodec, &opus);
|
| // Even when stereo is off, recv codecs still specify channels = 2.
|
| EXPECT_EQ(2, opus.channels);
|
| EXPECT_EQ(111, opus.pltype);
|
| @@ -585,7 +581,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetRecvCodecsWithOpus1Stereo) {
|
| cricket::StreamParams::CreateLegacy(kSsrc1)));
|
| int channel_num2 = voe_.GetLastChannel();
|
| webrtc::CodecInst opus;
|
| - engine_.FindWebRtcCodec(kOpusCodec, &opus);
|
| + cricket::WebRtcVoiceEngine::ToCodecInst(kOpusCodec, &opus);
|
| EXPECT_EQ(2, opus.channels);
|
| EXPECT_EQ(111, opus.pltype);
|
| EXPECT_STREQ("opus", opus.plname);
|
| @@ -670,7 +666,7 @@ TEST_F(WebRtcVoiceEngineTestFake, AddRecvCodecsWhilePlaying) {
|
| int channel_num = voe_.GetLastChannel();
|
| EXPECT_TRUE(voe_.GetPlayout(channel_num));
|
| webrtc::CodecInst gcodec;
|
| - EXPECT_TRUE(engine_.FindWebRtcCodec(kOpusCodec, &gcodec));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(kOpusCodec, &gcodec));
|
| EXPECT_EQ(kOpusCodec.id, gcodec.pltype);
|
| }
|
|
|
| @@ -3246,54 +3242,60 @@ TEST(WebRtcVoiceEngineTest, StartupShutdown) {
|
|
|
| // Tests that the library is configured with the codecs we want.
|
| TEST(WebRtcVoiceEngineTest, HasCorrectCodecs) {
|
| - cricket::WebRtcVoiceEngine engine;
|
| // Check codecs by name.
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(96, "OPUS", 48000, 0, 2, 0)));
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(96, "ISAC", 16000, 0, 1, 0)));
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(96, "ISAC", 32000, 0, 1, 0)));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(96, "OPUS", 48000, 0, 2, 0), nullptr));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(96, "ISAC", 16000, 0, 1, 0), nullptr));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(96, "ISAC", 32000, 0, 1, 0), nullptr));
|
| // Check that name matching is case-insensitive.
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(96, "ILBC", 8000, 0, 1, 0)));
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(96, "iLBC", 8000, 0, 1, 0)));
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(96, "PCMU", 8000, 0, 1, 0)));
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(96, "PCMA", 8000, 0, 1, 0)));
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(96, "G722", 8000, 0, 1, 0)));
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(96, "red", 8000, 0, 1, 0)));
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(96, "CN", 32000, 0, 1, 0)));
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(96, "CN", 16000, 0, 1, 0)));
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(96, "CN", 8000, 0, 1, 0)));
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(96, "telephone-event", 8000, 0, 1, 0)));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(96, "ILBC", 8000, 0, 1, 0), nullptr));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(96, "iLBC", 8000, 0, 1, 0), nullptr));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(96, "PCMU", 8000, 0, 1, 0), nullptr));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(96, "PCMA", 8000, 0, 1, 0), nullptr));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(96, "G722", 8000, 0, 1, 0), nullptr));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(96, "red", 8000, 0, 1, 0), nullptr));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(96, "CN", 32000, 0, 1, 0), nullptr));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(96, "CN", 16000, 0, 1, 0), nullptr));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(96, "CN", 8000, 0, 1, 0), nullptr));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(96, "telephone-event", 8000, 0, 1, 0), nullptr));
|
| // Check codecs with an id by id.
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(0, "", 8000, 0, 1, 0))); // PCMU
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(8, "", 8000, 0, 1, 0))); // PCMA
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(9, "", 8000, 0, 1, 0))); // G722
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(13, "", 8000, 0, 1, 0))); // CN
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(0, "", 8000, 0, 1, 0), nullptr)); // PCMU
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(8, "", 8000, 0, 1, 0), nullptr)); // PCMA
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(9, "", 8000, 0, 1, 0), nullptr)); // G722
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(13, "", 8000, 0, 1, 0), nullptr)); // CN
|
| // Check sample/bitrate matching.
|
| - EXPECT_TRUE(engine.FindCodec(
|
| - cricket::AudioCodec(0, "PCMU", 8000, 64000, 1, 0)));
|
| + EXPECT_TRUE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(0, "PCMU", 8000, 64000, 1, 0), nullptr));
|
| // Check that bad codecs fail.
|
| - EXPECT_FALSE(engine.FindCodec(cricket::AudioCodec(99, "ABCD", 0, 0, 1, 0)));
|
| - EXPECT_FALSE(engine.FindCodec(cricket::AudioCodec(88, "", 0, 0, 1, 0)));
|
| - EXPECT_FALSE(engine.FindCodec(cricket::AudioCodec(0, "", 0, 0, 2, 0)));
|
| - EXPECT_FALSE(engine.FindCodec(cricket::AudioCodec(0, "", 5000, 0, 1, 0)));
|
| - EXPECT_FALSE(engine.FindCodec(cricket::AudioCodec(0, "", 0, 5000, 1, 0)));
|
| + EXPECT_FALSE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(99, "ABCD", 0, 0, 1, 0), nullptr));
|
| + EXPECT_FALSE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(88, "", 0, 0, 1, 0), nullptr));
|
| + EXPECT_FALSE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(0, "", 0, 0, 2, 0), nullptr));
|
| + EXPECT_FALSE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(0, "", 5000, 0, 1, 0), nullptr));
|
| + EXPECT_FALSE(cricket::WebRtcVoiceEngine::ToCodecInst(
|
| + cricket::AudioCodec(0, "", 0, 5000, 1, 0), nullptr));
|
| +
|
| // Verify the payload id of common audio codecs, including CN, ISAC, and G722.
|
| + cricket::WebRtcVoiceEngine engine;
|
| for (std::vector<cricket::AudioCodec>::const_iterator it =
|
| engine.codecs().begin(); it != engine.codecs().end(); ++it) {
|
| if (it->name == "CN" && it->clockrate == 16000) {
|
| @@ -3320,7 +3322,6 @@ TEST(WebRtcVoiceEngineTest, HasCorrectCodecs) {
|
| EXPECT_EQ("1", it->params.find("useinbandfec")->second);
|
| }
|
| }
|
| -
|
| engine.Terminate();
|
| }
|
|
|
|
|