From 3df18d72ba20c25d729bd37d1a5b41b368dbe2b7 Mon Sep 17 00:00:00 2001 From: "henrik.lundin@webrtc.org" Date: Fri, 5 Oct 2012 08:23:32 +0000 Subject: [PATCH] Added test for NetEQ stereo with no input This test verifies that NetEQ behaves as it should when using stereo and not inserting any data before calling recout. The main purpose of the test is to find memory issues. BUG=http://code.google.com/p/webrtc/issues/detail?id=270 TEST=trybots, neteq_unittests Review URL: https://webrtc-codereview.appspot.com/863010 git-svn-id: http://webrtc.googlecode.com/svn/trunk@2875 4adac7df-926f-26a2-2b94-8c16560cd09d --- .../neteq/webrtc_neteq_unittest.cc | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/modules/audio_coding/neteq/webrtc_neteq_unittest.cc b/src/modules/audio_coding/neteq/webrtc_neteq_unittest.cc index fbb9cc206a..0d0edfabd7 100644 --- a/src/modules/audio_coding/neteq/webrtc_neteq_unittest.cc +++ b/src/modules/audio_coding/neteq/webrtc_neteq_unittest.cc @@ -602,4 +602,32 @@ TEST_F(NetEqDecodingTest, LongCngWithClockDrift) { EXPECT_GE(delay_after, delay_before - 20 * 16); } +TEST_F(NetEqDecodingTest, NoInputDataStereo) { + void *ms_info; + ms_info = malloc(WebRtcNetEQ_GetMasterSlaveInfoSize()); + neteq_inst_->setMaster(); + + // Slave instance without decoders (because it is easier). + WebRtcNetEQDecoder usedCodec[kDecoderReservedEnd - 1]; + usedCodec[0] = kDecoderPCMu; + NETEQTEST_NetEQClass* slave_inst = + new NETEQTEST_NetEQClass(usedCodec, 1, 8000, kTCPLargeJitter); + ASSERT_TRUE(slave_inst); + NETEQTEST_Decoder* dec = new decoder_PCMU(0); + ASSERT_TRUE(dec != NULL); + dec->loadToNetEQ(*slave_inst); + slave_inst->setSlave(); + + // Pull out data. + const int kNumFrames = 100; + for (int i = 0; i < kNumFrames; ++i) { + ASSERT_TRUE(kBlockSize8kHz == neteq_inst_->recOut(out_data_, ms_info)); + ASSERT_TRUE(kBlockSize8kHz == slave_inst->recOut(out_data_, ms_info)); + } + + delete dec; + delete slave_inst; + free(ms_info); +} + } // namespace