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(); |
} |