| Index: webrtc/modules/audio_coding/main/test/initial_delay_unittest.cc
 | 
| diff --git a/webrtc/modules/audio_coding/main/test/initial_delay_unittest.cc b/webrtc/modules/audio_coding/main/test/initial_delay_unittest.cc
 | 
| deleted file mode 100644
 | 
| index 8495e0e596466bc4877e7c4d953c5dcf78f8229a..0000000000000000000000000000000000000000
 | 
| --- a/webrtc/modules/audio_coding/main/test/initial_delay_unittest.cc
 | 
| +++ /dev/null
 | 
| @@ -1,175 +0,0 @@
 | 
| -/*
 | 
| - *  Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
 | 
| - *
 | 
| - *  Use of this source code is governed by a BSD-style license
 | 
| - *  that can be found in the LICENSE file in the root of the source
 | 
| - *  tree. An additional intellectual property rights grant can be found
 | 
| - *  in the file PATENTS.  All contributing project authors may
 | 
| - *  be found in the AUTHORS file in the root of the source tree.
 | 
| - */
 | 
| -
 | 
| -#include "webrtc/modules/audio_coding/main/include/audio_coding_module.h"
 | 
| -
 | 
| -#include <assert.h>
 | 
| -#include <math.h>
 | 
| -
 | 
| -#include <iostream>
 | 
| -
 | 
| -#include "testing/gtest/include/gtest/gtest.h"
 | 
| -#include "webrtc/base/scoped_ptr.h"
 | 
| -#include "webrtc/common_types.h"
 | 
| -#include "webrtc/engine_configurations.h"
 | 
| -#include "webrtc/modules/audio_coding/main/include/audio_coding_module_typedefs.h"
 | 
| -#include "webrtc/modules/audio_coding/main/test/Channel.h"
 | 
| -#include "webrtc/modules/audio_coding/main/test/PCMFile.h"
 | 
| -#include "webrtc/modules/audio_coding/main/test/utility.h"
 | 
| -#include "webrtc/system_wrappers/include/event_wrapper.h"
 | 
| -#include "webrtc/test/testsupport/fileutils.h"
 | 
| -#include "webrtc/test/testsupport/gtest_disable.h"
 | 
| -
 | 
| -namespace webrtc {
 | 
| -
 | 
| -namespace {
 | 
| -
 | 
| -double FrameRms(AudioFrame& frame) {
 | 
| -  size_t samples = frame.num_channels_ * frame.samples_per_channel_;
 | 
| -  double rms = 0;
 | 
| -  for (size_t n = 0; n < samples; ++n)
 | 
| -    rms += frame.data_[n] * frame.data_[n];
 | 
| -  rms /= samples;
 | 
| -  rms = sqrt(rms);
 | 
| -  return rms;
 | 
| -}
 | 
| -
 | 
| -}
 | 
| -
 | 
| -class InitialPlayoutDelayTest : public ::testing::Test {
 | 
| - protected:
 | 
| -  InitialPlayoutDelayTest()
 | 
| -      : acm_a_(AudioCodingModule::Create(0)),
 | 
| -        acm_b_(AudioCodingModule::Create(1)),
 | 
| -        channel_a2b_(NULL) {}
 | 
| -
 | 
| -  ~InitialPlayoutDelayTest() {
 | 
| -    if (channel_a2b_ != NULL) {
 | 
| -      delete channel_a2b_;
 | 
| -      channel_a2b_ = NULL;
 | 
| -    }
 | 
| -  }
 | 
| -
 | 
| -  void SetUp() {
 | 
| -    ASSERT_TRUE(acm_a_.get() != NULL);
 | 
| -    ASSERT_TRUE(acm_b_.get() != NULL);
 | 
| -
 | 
| -    EXPECT_EQ(0, acm_b_->InitializeReceiver());
 | 
| -    EXPECT_EQ(0, acm_a_->InitializeReceiver());
 | 
| -
 | 
| -    // Register all L16 codecs in receiver.
 | 
| -    CodecInst codec;
 | 
| -    const int kFsHz[3] = { 8000, 16000, 32000 };
 | 
| -    const int kChannels[2] = { 1, 2 };
 | 
| -    for (int n = 0; n < 3; ++n) {
 | 
| -      for (int k = 0; k < 2; ++k) {
 | 
| -        AudioCodingModule::Codec("L16", &codec, kFsHz[n], kChannels[k]);
 | 
| -        acm_b_->RegisterReceiveCodec(codec);
 | 
| -      }
 | 
| -    }
 | 
| -
 | 
| -    // Create and connect the channel
 | 
| -    channel_a2b_ = new Channel;
 | 
| -    acm_a_->RegisterTransportCallback(channel_a2b_);
 | 
| -    channel_a2b_->RegisterReceiverACM(acm_b_.get());
 | 
| -  }
 | 
| -
 | 
| -  void NbMono() {
 | 
| -    CodecInst codec;
 | 
| -    AudioCodingModule::Codec("L16", &codec, 8000, 1);
 | 
| -    codec.pacsize = codec.plfreq * 30 / 1000;  // 30 ms packets.
 | 
| -    Run(codec, 1000);
 | 
| -  }
 | 
| -
 | 
| -  void WbMono() {
 | 
| -    CodecInst codec;
 | 
| -    AudioCodingModule::Codec("L16", &codec, 16000, 1);
 | 
| -    codec.pacsize = codec.plfreq * 30 / 1000;  // 30 ms packets.
 | 
| -    Run(codec, 1000);
 | 
| -  }
 | 
| -
 | 
| -  void SwbMono() {
 | 
| -    CodecInst codec;
 | 
| -    AudioCodingModule::Codec("L16", &codec, 32000, 1);
 | 
| -    codec.pacsize = codec.plfreq * 10 / 1000;  // 10 ms packets.
 | 
| -    Run(codec, 400);  // Memory constraints limit the buffer at <500 ms.
 | 
| -  }
 | 
| -
 | 
| -  void NbStereo() {
 | 
| -    CodecInst codec;
 | 
| -    AudioCodingModule::Codec("L16", &codec, 8000, 2);
 | 
| -    codec.pacsize = codec.plfreq * 30 / 1000;  // 30 ms packets.
 | 
| -    Run(codec, 1000);
 | 
| -  }
 | 
| -
 | 
| -  void WbStereo() {
 | 
| -    CodecInst codec;
 | 
| -    AudioCodingModule::Codec("L16", &codec, 16000, 2);
 | 
| -    codec.pacsize = codec.plfreq * 30 / 1000;  // 30 ms packets.
 | 
| -    Run(codec, 1000);
 | 
| -  }
 | 
| -
 | 
| -  void SwbStereo() {
 | 
| -    CodecInst codec;
 | 
| -    AudioCodingModule::Codec("L16", &codec, 32000, 2);
 | 
| -    codec.pacsize = codec.plfreq * 10 / 1000;  // 10 ms packets.
 | 
| -    Run(codec, 400);  // Memory constraints limit the buffer at <500 ms.
 | 
| -  }
 | 
| -
 | 
| - private:
 | 
| -  void Run(CodecInst codec, int initial_delay_ms) {
 | 
| -    AudioFrame in_audio_frame;
 | 
| -    AudioFrame out_audio_frame;
 | 
| -    int num_frames = 0;
 | 
| -    const int kAmp = 10000;
 | 
| -    in_audio_frame.sample_rate_hz_ = codec.plfreq;
 | 
| -    in_audio_frame.num_channels_ = codec.channels;
 | 
| -    in_audio_frame.samples_per_channel_ = codec.plfreq / 100;  // 10 ms.
 | 
| -    size_t samples = in_audio_frame.num_channels_ *
 | 
| -        in_audio_frame.samples_per_channel_;
 | 
| -    for (size_t n = 0; n < samples; ++n) {
 | 
| -      in_audio_frame.data_[n] = kAmp;
 | 
| -    }
 | 
| -
 | 
| -    uint32_t timestamp = 0;
 | 
| -    double rms = 0;
 | 
| -    ASSERT_EQ(0, acm_a_->RegisterSendCodec(codec));
 | 
| -    acm_b_->SetInitialPlayoutDelay(initial_delay_ms);
 | 
| -    while (rms < kAmp / 2) {
 | 
| -      in_audio_frame.timestamp_ = timestamp;
 | 
| -      timestamp += static_cast<uint32_t>(in_audio_frame.samples_per_channel_);
 | 
| -      ASSERT_GE(acm_a_->Add10MsData(in_audio_frame), 0);
 | 
| -      ASSERT_EQ(0, acm_b_->PlayoutData10Ms(codec.plfreq, &out_audio_frame));
 | 
| -      rms = FrameRms(out_audio_frame);
 | 
| -      ++num_frames;
 | 
| -    }
 | 
| -
 | 
| -    ASSERT_GE(num_frames * 10, initial_delay_ms);
 | 
| -    ASSERT_LE(num_frames * 10, initial_delay_ms + 100);
 | 
| -  }
 | 
| -
 | 
| -  rtc::scoped_ptr<AudioCodingModule> acm_a_;
 | 
| -  rtc::scoped_ptr<AudioCodingModule> acm_b_;
 | 
| -  Channel* channel_a2b_;
 | 
| -};
 | 
| -
 | 
| -TEST_F(InitialPlayoutDelayTest, NbMono) { NbMono(); }
 | 
| -
 | 
| -TEST_F(InitialPlayoutDelayTest, WbMono) { WbMono(); }
 | 
| -
 | 
| -TEST_F(InitialPlayoutDelayTest, SwbMono) { SwbMono(); }
 | 
| -
 | 
| -TEST_F(InitialPlayoutDelayTest, NbStereo) { NbStereo(); }
 | 
| -
 | 
| -TEST_F(InitialPlayoutDelayTest, WbStereo) { WbStereo(); }
 | 
| -
 | 
| -TEST_F(InitialPlayoutDelayTest, SwbStereo) { SwbStereo(); }
 | 
| -
 | 
| -}  // namespace webrtc
 | 
| 
 |