Index: webrtc/voice_engine/voe_codec_unittest.cc |
diff --git a/webrtc/voice_engine/voe_codec_unittest.cc b/webrtc/voice_engine/voe_codec_unittest.cc |
index 73e576bf51db50c10cfb0d794142aa79f3bf90e9..2563083a62d79eedba7319d40dc04d8fc713a3fe 100644 |
--- a/webrtc/voice_engine/voe_codec_unittest.cc |
+++ b/webrtc/voice_engine/voe_codec_unittest.cc |
@@ -151,6 +151,36 @@ TEST(VoECodecInst, TestCompareCodecInstances) { |
EXPECT_FALSE(codec1 == codec2); |
} |
+// This is a regression test for |
+// https://bugs.chromium.org/p/webrtc/issues/detail?id=6020 |
+// The Opus DTX setting was being forgotten after unrelated VoE calls. |
minyue-webrtc
2016/07/25 16:13:01
do you know what the fixture "VoECodecTest" does?
ivoc
2016/07/25 17:11:10
I tried reusing it, but it causes a crash (it's ca
minyue-webrtc
2016/07/26 09:37:01
sure, we can remove it in a following CL. Or you c
ivoc
2016/07/26 12:28:31
I think removing is better in this case, since I d
|
+TEST(VoECodecInst, RememberOpusDtxAfterSettingChange) { |
+ VoiceEngine* voe(VoiceEngine::Create()); |
+ VoEBase* base(VoEBase::GetInterface(voe)); |
+ VoECodec* voe_codec(VoECodec::GetInterface(voe)); |
+ std::unique_ptr<FakeAudioDeviceModule> adm(new FakeAudioDeviceModule); |
+ |
+ base->Init(adm.get()); |
+ |
+ CodecInst codec = {111, "opus", 48000, 960, 1, 32000}; |
+ |
+ int channel = base->CreateChannel(); |
+ |
+ bool DTX = false; |
+ |
+ EXPECT_EQ(0, voe_codec->SetSendCodec(channel, codec)); |
+ EXPECT_EQ(0, voe_codec->SetOpusDtx(channel, true)); |
+ EXPECT_EQ(0, voe_codec->SetFECStatus(channel, true)); |
+ EXPECT_EQ(0, voe_codec->GetOpusDtx(channel, &DTX)); |
+ EXPECT_TRUE(DTX); |
+ |
+ base->DeleteChannel(channel); |
+ base->Terminate(); |
+ base->Release(); |
+ voe_codec->Release(); |
+ VoiceEngine::Delete(voe); |
+} |
+ |
} // namespace |
} // namespace voe |
} // namespace webrtc |