Chromium Code Reviews| Index: webrtc/modules/audio_coding/neteq/normal_unittest.cc |
| diff --git a/webrtc/modules/audio_coding/neteq/normal_unittest.cc b/webrtc/modules/audio_coding/neteq/normal_unittest.cc |
| index f98e99a82d8b80a17806206e6fcc257f5af00d77..5e1fc131e50fbd16ecaa19bbb962d9850218e201 100644 |
| --- a/webrtc/modules/audio_coding/neteq/normal_unittest.cc |
| +++ b/webrtc/modules/audio_coding/neteq/normal_unittest.cc |
| @@ -27,9 +27,20 @@ |
| #include "webrtc/modules/audio_coding/neteq/sync_buffer.h" |
| using ::testing::_; |
| +using ::testing::Invoke; |
| namespace webrtc { |
| +namespace { |
| + |
| +int ExpandProcess120ms(AudioMultiVector* output) { |
| + AudioMultiVector dummy_audio(1, 11520u); |
| + dummy_audio.CopyTo(output); |
| + return 0; |
| +} |
| + |
| +} // namespace |
| + |
| TEST(Normal, CreateAndDestroy) { |
| MockDecoderDatabase db; |
| int fs = 8000; |
| @@ -121,6 +132,45 @@ TEST(Normal, InputLengthAndChannelsDoNotMatch) { |
| EXPECT_CALL(expand, Die()); // Called when |expand| goes out of scope. |
| } |
| +TEST(Normal, LastModeExpand120msPacket) { |
| + WebRtcSpl_Init(); |
| + MockDecoderDatabase db; |
| + const int kFs = 48000; |
| + const size_t kPacketsizeBytes = 11520u; |
| + const size_t kChannels = 1; |
| + BackgroundNoise bgn(kChannels); |
| + SyncBuffer sync_buffer(kChannels, 1000); |
| + RandomVector random_vector; |
| + StatisticsCalculator statistics; |
| + MockExpand expand(&bgn, &sync_buffer, &random_vector, &statistics, kFs, |
| + kChannels); |
| + Normal normal(kFs, &db, bgn, &expand); |
| + |
| + int16_t input[kPacketsizeBytes] = {0}; |
| + |
| + std::unique_ptr<int16_t[]> mute_factor_array(new int16_t[kChannels]); |
| + for (size_t i = 0; i < kChannels; ++i) { |
|
minyue-webrtc
2016/05/02 10:44:53
this is the second fix
|
| + mute_factor_array[i] = 16384; |
| + } |
| + |
| + AudioMultiVector output(kChannels); |
| + |
| + EXPECT_CALL(expand, SetParametersForNormalAfterExpand()); |
| + EXPECT_CALL(expand, Process(_)).WillOnce(Invoke(ExpandProcess120ms)); |
| + EXPECT_CALL(expand, Reset()); |
| + EXPECT_EQ(static_cast<int>(kPacketsizeBytes), |
| + normal.Process(input, |
| + kPacketsizeBytes, |
| + kModeExpand, |
| + mute_factor_array.get(), |
| + &output)); |
| + |
| + EXPECT_EQ(kPacketsizeBytes, output.Size()); |
| + |
| + EXPECT_CALL(db, Die()); // Called when |db| goes out of scope. |
| + EXPECT_CALL(expand, Die()); // Called when |expand| goes out of scope. |
| +} |
| + |
| // TODO(hlundin): Write more tests. |
| } // namespace webrtc |