| Index: webrtc/modules/audio_coding/test/SpatialAudio.cc
|
| diff --git a/webrtc/modules/audio_coding/test/SpatialAudio.cc b/webrtc/modules/audio_coding/test/SpatialAudio.cc
|
| deleted file mode 100644
|
| index c9f80808260f1a6e1f3897ac3451a98bf21b1636..0000000000000000000000000000000000000000
|
| --- a/webrtc/modules/audio_coding/test/SpatialAudio.cc
|
| +++ /dev/null
|
| @@ -1,196 +0,0 @@
|
| -/*
|
| - * Copyright (c) 2012 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 <stdio.h>
|
| -#include <string.h>
|
| -
|
| -#include <math.h>
|
| -
|
| -#include "webrtc/common_types.h"
|
| -#include "webrtc/modules/audio_coding/test/SpatialAudio.h"
|
| -#include "webrtc/system_wrappers/include/trace.h"
|
| -#include "webrtc/system_wrappers/include/trace.h"
|
| -#include "webrtc/test/testsupport/fileutils.h"
|
| -
|
| -namespace webrtc {
|
| -
|
| -#define NUM_PANN_COEFFS 10
|
| -
|
| -SpatialAudio::SpatialAudio(int testMode)
|
| - : _acmLeft(AudioCodingModule::Create(1)),
|
| - _acmRight(AudioCodingModule::Create(2)),
|
| - _acmReceiver(AudioCodingModule::Create(3)),
|
| - _testMode(testMode) {
|
| -}
|
| -
|
| -SpatialAudio::~SpatialAudio() {
|
| - delete _channel;
|
| - _inFile.Close();
|
| - _outFile.Close();
|
| -}
|
| -
|
| -int16_t SpatialAudio::Setup() {
|
| - _channel = new Channel;
|
| -
|
| - // Register callback for the sender side.
|
| - CHECK_ERROR(_acmLeft->RegisterTransportCallback(_channel));
|
| - CHECK_ERROR(_acmRight->RegisterTransportCallback(_channel));
|
| - // Register the receiver ACM in channel
|
| - _channel->RegisterReceiverACM(_acmReceiver.get());
|
| -
|
| - uint16_t sampFreqHz = 32000;
|
| -
|
| - const std::string file_name = webrtc::test::ResourcePath(
|
| - "audio_coding/testfile32kHz", "pcm");
|
| - _inFile.Open(file_name, sampFreqHz, "rb", false);
|
| -
|
| - std::string output_file = webrtc::test::OutputPath()
|
| - + "out_spatial_autotest.pcm";
|
| - if (_testMode == 1) {
|
| - output_file = webrtc::test::OutputPath() + "testspatial_out.pcm";
|
| - printf("\n");
|
| - printf("Enter the output file [%s]: ", output_file.c_str());
|
| - PCMFile::ChooseFile(&output_file, MAX_FILE_NAME_LENGTH_BYTE, &sampFreqHz);
|
| - } else {
|
| - output_file = webrtc::test::OutputPath() + "testspatial_out.pcm";
|
| - }
|
| - _outFile.Open(output_file, sampFreqHz, "wb", false);
|
| - _outFile.SaveStereo(true);
|
| -
|
| - // Register all available codes as receiving codecs.
|
| - CodecInst codecInst;
|
| - int status;
|
| - uint8_t num_encoders = _acmReceiver->NumberOfCodecs();
|
| - // Register all available codes as receiving codecs once more.
|
| - for (uint8_t n = 0; n < num_encoders; n++) {
|
| - status = _acmReceiver->Codec(n, &codecInst);
|
| - if (status < 0) {
|
| - printf("Error in Codec(), no matching codec found");
|
| - }
|
| - status = _acmReceiver->RegisterReceiveCodec(codecInst);
|
| - if (status < 0) {
|
| - printf("Error in RegisterReceiveCodec() for payload type %d",
|
| - codecInst.pltype);
|
| - }
|
| - }
|
| -
|
| - return 0;
|
| -}
|
| -
|
| -void SpatialAudio::Perform() {
|
| - if (_testMode == 0) {
|
| - printf("Running SpatialAudio Test");
|
| - WEBRTC_TRACE(webrtc::kTraceStateInfo, webrtc::kTraceAudioCoding, -1,
|
| - "---------- SpatialAudio ----------");
|
| - }
|
| -
|
| - Setup();
|
| -
|
| - CodecInst codecInst;
|
| - _acmLeft->Codec((uint8_t) 1, &codecInst);
|
| - CHECK_ERROR(_acmLeft->RegisterSendCodec(codecInst));
|
| - EncodeDecode();
|
| -
|
| - int16_t pannCntr = 0;
|
| -
|
| - double leftPanning[NUM_PANN_COEFFS] = { 1.00, 0.95, 0.90, 0.85, 0.80, 0.75,
|
| - 0.70, 0.60, 0.55, 0.50 };
|
| - double rightPanning[NUM_PANN_COEFFS] = { 0.50, 0.55, 0.60, 0.70, 0.75, 0.80,
|
| - 0.85, 0.90, 0.95, 1.00 };
|
| -
|
| - while ((pannCntr + 1) < NUM_PANN_COEFFS) {
|
| - _acmLeft->Codec((uint8_t) 0, &codecInst);
|
| - codecInst.pacsize = 480;
|
| - CHECK_ERROR(_acmLeft->RegisterSendCodec(codecInst));
|
| - CHECK_ERROR(_acmRight->RegisterSendCodec(codecInst));
|
| -
|
| - EncodeDecode(leftPanning[pannCntr], rightPanning[pannCntr]);
|
| - pannCntr++;
|
| -
|
| - // Change codec
|
| - _acmLeft->Codec((uint8_t) 3, &codecInst);
|
| - codecInst.pacsize = 320;
|
| - CHECK_ERROR(_acmLeft->RegisterSendCodec(codecInst));
|
| - CHECK_ERROR(_acmRight->RegisterSendCodec(codecInst));
|
| -
|
| - EncodeDecode(leftPanning[pannCntr], rightPanning[pannCntr]);
|
| - pannCntr++;
|
| - if (_testMode == 0) {
|
| - printf(".");
|
| - }
|
| - }
|
| -
|
| - _acmLeft->Codec((uint8_t) 4, &codecInst);
|
| - CHECK_ERROR(_acmLeft->RegisterSendCodec(codecInst));
|
| - EncodeDecode();
|
| -
|
| - _acmLeft->Codec((uint8_t) 0, &codecInst);
|
| - codecInst.pacsize = 480;
|
| - CHECK_ERROR(_acmLeft->RegisterSendCodec(codecInst));
|
| - CHECK_ERROR(_acmRight->RegisterSendCodec(codecInst));
|
| - pannCntr = NUM_PANN_COEFFS - 1;
|
| - while (pannCntr >= 0) {
|
| - EncodeDecode(leftPanning[pannCntr], rightPanning[pannCntr]);
|
| - pannCntr--;
|
| - if (_testMode == 0) {
|
| - printf(".");
|
| - }
|
| - }
|
| - if (_testMode == 0) {
|
| - printf("Done!\n");
|
| - }
|
| -}
|
| -
|
| -void SpatialAudio::EncodeDecode(const double leftPanning,
|
| - const double rightPanning) {
|
| - AudioFrame audioFrame;
|
| - int32_t outFileSampFreq = _outFile.SamplingFrequency();
|
| -
|
| - const double rightToLeftRatio = rightPanning / leftPanning;
|
| -
|
| - _channel->SetIsStereo(true);
|
| -
|
| - while (!_inFile.EndOfFile()) {
|
| - _inFile.Read10MsData(audioFrame);
|
| - for (size_t n = 0; n < audioFrame.samples_per_channel_; n++) {
|
| - audioFrame.data_[n] = (int16_t) floor(
|
| - audioFrame.data_[n] * leftPanning + 0.5);
|
| - }
|
| - CHECK_ERROR(_acmLeft->Add10MsData(audioFrame));
|
| -
|
| - for (size_t n = 0; n < audioFrame.samples_per_channel_; n++) {
|
| - audioFrame.data_[n] = (int16_t) floor(
|
| - audioFrame.data_[n] * rightToLeftRatio + 0.5);
|
| - }
|
| - CHECK_ERROR(_acmRight->Add10MsData(audioFrame));
|
| -
|
| - CHECK_ERROR(_acmReceiver->PlayoutData10Ms(outFileSampFreq, &audioFrame));
|
| - _outFile.Write10MsData(audioFrame);
|
| - }
|
| - _inFile.Rewind();
|
| -}
|
| -
|
| -void SpatialAudio::EncodeDecode() {
|
| - AudioFrame audioFrame;
|
| - int32_t outFileSampFreq = _outFile.SamplingFrequency();
|
| -
|
| - _channel->SetIsStereo(false);
|
| -
|
| - while (!_inFile.EndOfFile()) {
|
| - _inFile.Read10MsData(audioFrame);
|
| - CHECK_ERROR(_acmLeft->Add10MsData(audioFrame));
|
| -
|
| - CHECK_ERROR(_acmReceiver->PlayoutData10Ms(outFileSampFreq, &audioFrame));
|
| - _outFile.Write10MsData(audioFrame);
|
| - }
|
| - _inFile.Rewind();
|
| -}
|
| -
|
| -} // namespace webrtc
|
|
|