Remove unused audio_e2e_harness.cc and infrastructure.

BUG=webrtc:4690

Review-Url: https://codereview.webrtc.org/2295283004
Cr-Commit-Position: refs/heads/master@{#14165}
diff --git a/webrtc/tools/BUILD.gn b/webrtc/tools/BUILD.gn
index 04c4543..37f015c 100644
--- a/webrtc/tools/BUILD.gn
+++ b/webrtc/tools/BUILD.gn
@@ -219,28 +219,6 @@
     ]
   }
 
-  rtc_executable("audio_e2e_harness") {
-    testonly = true
-    sources = [
-      "e2e_quality/audio/audio_e2e_harness.cc",
-    ]
-
-    if (is_clang) {
-      # Suppress warnings from the Chromium Clang plugin.
-      # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
-      suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
-    }
-
-    deps = [
-      "../system_wrappers:system_wrappers_default",
-      "../test:channel_transport",
-      "../voice_engine",
-      "//build/win:default_exe_manifest",
-      "//testing/gtest",
-      "//third_party/gflags",
-    ]
-  }
-
   if (is_android || is_ios) {
     tools_unittests_resources = [ "//resources/foreman_cif.yuv" ]
   }
diff --git a/webrtc/tools/DEPS b/webrtc/tools/DEPS
index e4b85c8..0352450 100644
--- a/webrtc/tools/DEPS
+++ b/webrtc/tools/DEPS
@@ -6,6 +6,5 @@
   "+webrtc/modules/congestion_controller",
   "+webrtc/modules/rtp_rtcp",
   "+webrtc/system_wrappers",
-  "+webrtc/voice_engine",
 ]
 
diff --git a/webrtc/tools/e2e_quality/audio/README b/webrtc/tools/e2e_quality/audio/README
deleted file mode 100644
index aa85385..0000000
--- a/webrtc/tools/e2e_quality/audio/README
+++ /dev/null
@@ -1,27 +0,0 @@
-The tools here run an end-to-end audio quality test on Linux using PulseAudio.
-
-INSTALLATION
-The test depends on PulseAudio virtual devices (null sinks). Without additional
-arguments, run_audio_test.py expects a pair of sinks named "capture" and
-"render". To create these devices at machine startup, place the provided
-default.pa file in ~/.pulse. Alternately, the "pacmd" commands therein can be
-run on the command-line to create the devices.
-
-Similarly, place the provided daemon.conf file in ~/.pulse to use high quality
-resampling in PulseAudio. This will reduce the resampling impact on the outcome
-of the test.
-
-Build all WebRTC targets as usual (or just the audio_e2e_harness target) to
-generate the VoiceEngine harness.
-
-USAGE
-Run run_audio_test.py to start. The script has reasonable defaults and will
-use the expected location of audio_e2e_harness. Some settings will usually
-be provided by the user, particularly the comparison tool command-line and
-regular expression to extract the quality metric.
-
-An example command-line, run from trunk/
-
-webrtc/tools/e2e_quality/audio/run_audio_test.py \
---input=data/voice_engine/audio_short16.pcm --output=e2e_audio_out.pcm \
---codec=L16 --compare="comparison-tool" --regexp="(\d\.\d{3})"
diff --git a/webrtc/tools/e2e_quality/audio/audio_e2e_harness.cc b/webrtc/tools/e2e_quality/audio/audio_e2e_harness.cc
deleted file mode 100644
index fb07b56..0000000
--- a/webrtc/tools/e2e_quality/audio/audio_e2e_harness.cc
+++ /dev/null
@@ -1,109 +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.
- */
-
-// Sets up a simple VoiceEngine loopback call with the default audio devices
-// and runs forever. Some parameters can be configured through command-line
-// flags.
-
-#include <memory>
-
-#include "gflags/gflags.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-#include "webrtc/test/channel_transport/channel_transport.h"
-#include "webrtc/voice_engine/include/voe_audio_processing.h"
-#include "webrtc/voice_engine/include/voe_base.h"
-#include "webrtc/voice_engine/include/voe_codec.h"
-#include "webrtc/voice_engine/include/voe_hardware.h"
-#include "webrtc/voice_engine/include/voe_network.h"
-
-DEFINE_string(render, "render", "render device name");
-DEFINE_string(codec, "ISAC", "codec name");
-DEFINE_int32(rate, 16000, "codec sample rate in Hz");
-
-namespace webrtc {
-namespace test {
-
-void RunHarness() {
-  VoiceEngine* voe = VoiceEngine::Create();
-  ASSERT_TRUE(voe != NULL);
-  VoEAudioProcessing* audio = VoEAudioProcessing::GetInterface(voe);
-  ASSERT_TRUE(audio != NULL);
-  VoEBase* base = VoEBase::GetInterface(voe);
-  ASSERT_TRUE(base != NULL);
-  VoECodec* codec = VoECodec::GetInterface(voe);
-  ASSERT_TRUE(codec != NULL);
-  VoEHardware* hardware = VoEHardware::GetInterface(voe);
-  ASSERT_TRUE(hardware != NULL);
-  VoENetwork* network = VoENetwork::GetInterface(voe);
-  ASSERT_TRUE(network != NULL);
-
-  ASSERT_EQ(0, base->Init());
-  int channel = base->CreateChannel();
-  ASSERT_NE(-1, channel);
-
-  std::unique_ptr<VoiceChannelTransport> voice_channel_transport(
-      new VoiceChannelTransport(network, channel));
-
-  ASSERT_EQ(0, voice_channel_transport->SetSendDestination("127.0.0.1", 1234));
-  ASSERT_EQ(0, voice_channel_transport->SetLocalReceiver(1234));
-
-  CodecInst codec_params = {0};
-  bool codec_found = false;
-  for (int i = 0; i < codec->NumOfCodecs(); i++) {
-    ASSERT_EQ(0, codec->GetCodec(i, codec_params));
-    if (FLAGS_codec.compare(codec_params.plname) == 0 &&
-        FLAGS_rate == codec_params.plfreq) {
-      codec_found = true;
-      break;
-    }
-  }
-  ASSERT_TRUE(codec_found);
-  ASSERT_EQ(0, codec->SetSendCodec(channel, codec_params));
-
-  int num_devices = 0;
-  ASSERT_EQ(0, hardware->GetNumOfPlayoutDevices(num_devices));
-  char device_name[128] = {0};
-  char guid[128] = {0};
-  bool device_found = false;
-  int device_index;
-  for (device_index = 0; device_index < num_devices; device_index++) {
-    ASSERT_EQ(0, hardware->GetPlayoutDeviceName(device_index, device_name,
-                                                guid));
-    if (FLAGS_render.compare(device_name) == 0) {
-      device_found = true;
-      break;
-    }
-  }
-  ASSERT_TRUE(device_found);
-  ASSERT_EQ(0, hardware->SetPlayoutDevice(device_index));
-
-  // Disable all audio processing.
-  ASSERT_EQ(0, audio->SetAgcStatus(false));
-  ASSERT_EQ(0, audio->SetEcStatus(false));
-  ASSERT_EQ(0, audio->EnableHighPassFilter(false));
-  ASSERT_EQ(0, audio->SetNsStatus(false));
-
-  ASSERT_EQ(0, base->StartReceive(channel));
-  ASSERT_EQ(0, base->StartPlayout(channel));
-  ASSERT_EQ(0, base->StartSend(channel));
-
-  // Run forever...
-  while (1) {
-  }
-}
-
-}  // namespace test
-}  // namespace webrtc
-
-int main(int argc, char** argv) {
-  google::ParseCommandLineFlags(&argc, &argv, true);
-  webrtc::test::RunHarness();
-}
diff --git a/webrtc/tools/e2e_quality/audio/daemon.conf b/webrtc/tools/e2e_quality/audio/daemon.conf
deleted file mode 100644
index 26c4df4..0000000
--- a/webrtc/tools/e2e_quality/audio/daemon.conf
+++ /dev/null
@@ -1 +0,0 @@
-resample-method = speex-float-9
diff --git a/webrtc/tools/e2e_quality/audio/default.pa b/webrtc/tools/e2e_quality/audio/default.pa
deleted file mode 100755
index adef2db..0000000
--- a/webrtc/tools/e2e_quality/audio/default.pa
+++ /dev/null
@@ -1,6 +0,0 @@
-# Place in ~/.pulse/ to add null sinks for the audio end-to-end quality test.
-
-.include /etc/pulse/default.pa
-
-load-module module-null-sink sink_name=render sink_properties=device.description=render format=s16 rate=48000 channels=1
-load-module module-null-sink sink_name=capture sink_properties=device.description=capture format=s16 rate=48000 channels=1
diff --git a/webrtc/tools/e2e_quality/audio/perf b/webrtc/tools/e2e_quality/audio/perf
deleted file mode 120000
index fa37c96..0000000
--- a/webrtc/tools/e2e_quality/audio/perf
+++ /dev/null
@@ -1 +0,0 @@
-../../../../tools/perf
\ No newline at end of file
diff --git a/webrtc/tools/e2e_quality/audio/run_audio_test.py b/webrtc/tools/e2e_quality/audio/run_audio_test.py
deleted file mode 100755
index 51caa42..0000000
--- a/webrtc/tools/e2e_quality/audio/run_audio_test.py
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/usr/bin/env python
-#
-# 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.
-
-"""Runs an end-to-end audio quality test on Linux.
-
-Expects the presence of PulseAudio virtual devices (null sinks). These are
-configured as default devices for a VoiceEngine audio call. A PulseAudio
-utility (pacat) is used to play to and record from the virtual devices.
-
-The input reference file is then compared to the output file.
-"""
-
-import optparse
-import os
-import re
-import shlex
-import subprocess
-import sys
-import time
-
-import perf.perf_utils
-
-def main(argv):
-  parser = optparse.OptionParser()
-  usage = 'Usage: %prog [options]'
-  parser.set_usage(usage)
-  parser.add_option('--input', default='input.pcm', help='input PCM file')
-  parser.add_option('--output', default='output.pcm', help='output PCM file')
-  parser.add_option('--codec', default='ISAC', help='codec name')
-  parser.add_option('--rate', default='16000', help='sample rate in Hz')
-  parser.add_option('--channels', default='1', help='number of channels')
-  parser.add_option('--play_sink', default='capture',
-      help='name of PulseAudio sink to which to play audio')
-  parser.add_option('--rec_sink', default='render',
-      help='name of PulseAudio sink whose monitor will be recorded')
-  parser.add_option('--harness',
-      default=os.path.abspath(os.path.dirname(sys.argv[0]) +
-          '/../../../out/Debug/audio_e2e_harness'),
-      help='path to audio harness executable')
-  parser.add_option('--compare',
-                    help='command-line arguments for comparison tool')
-  parser.add_option('--regexp',
-                    help='regular expression to extract the comparison metric')
-  options, _ = parser.parse_args(argv[1:])
-
-  # Get the initial default capture device, to restore later.
-  command = ['pacmd', 'list-sources']
-  print ' '.join(command)
-  proc = subprocess.Popen(command, stdout=subprocess.PIPE)
-  output = proc.communicate()[0]
-  if proc.returncode != 0:
-    return proc.returncode
-  default_source = re.search(r'(^  \* index: )([0-9]+$)', output,
-                             re.MULTILINE).group(2)
-
-  # Set the default capture device to be used by VoiceEngine. We unfortunately
-  # need to do this rather than select the devices directly through the harness
-  # because monitor sources don't appear in VoiceEngine except as defaults.
-  #
-  # We pass the render device for VoiceEngine to select because (for unknown
-  # reasons) the virtual device is sometimes not used when the default.
-  command = ['pacmd', 'set-default-source', options.play_sink + '.monitor']
-  print ' '.join(command)
-  retcode = subprocess.call(command, stdout=subprocess.PIPE)
-  if retcode != 0:
-    return retcode
-
-  command = [options.harness, '--render=' + options.rec_sink,
-      '--codec=' + options.codec, '--rate=' + options.rate]
-  print ' '.join(command)
-  voe_proc = subprocess.Popen(command)
-
-  # If recording starts before there is data available, pacat sometimes
-  # inexplicably adds a large delay to the start of the file. We wait here in
-  # an attempt to prevent that, because VoE often takes some time to startup a
-  # call.
-  time.sleep(5)
-
-  format_args = ['--format=s16le', '--rate=' + options.rate,
-      '--channels=' + options.channels, '--raw']
-  command = (['pacat', '-p', '-d', options.play_sink] + format_args +
-      [options.input])
-  print ' '.join(command)
-  play_proc = subprocess.Popen(command)
-
-  command = (['pacat', '-r', '-d', options.rec_sink + '.monitor'] +
-      format_args + [options.output])
-  print ' '.join(command)
-  record_proc = subprocess.Popen(command)
-
-  retcode = play_proc.wait()
-  # If these ended early, an exception will be thrown here.
-  record_proc.kill()
-  voe_proc.kill()
-  if retcode != 0:
-    return retcode
-
-  # Restore the initial default capture device.
-  command = ['pacmd', 'set-default-source', default_source]
-  print ' '.join(command)
-  retcode = subprocess.call(command, stdout=subprocess.PIPE)
-  if retcode != 0:
-    return retcode
-
-  if options.compare and options.regexp:
-    command = shlex.split(options.compare) + [options.input, options.output]
-    print ' '.join(command)
-    proc = subprocess.Popen(command, stdout=subprocess.PIPE)
-    output = proc.communicate()[0]
-    if proc.returncode != 0:
-      return proc.returncode
-
-    # The list should only contain one item.
-    value = ''.join(re.findall(options.regexp, output))
-
-    perf.perf_utils.PrintPerfResult(graph_name='audio_e2e_score',
-                                    series_name='e2e_score',
-                                    data_point=value,
-                                    units='MOS')  # Assuming we run PESQ.
-
-  return 0
-
-if __name__ == '__main__':
-  sys.exit(main(sys.argv))
diff --git a/webrtc/tools/tools.gyp b/webrtc/tools/tools.gyp
index 1477a83..12eff5d 100644
--- a/webrtc/tools/tools.gyp
+++ b/webrtc/tools/tools.gyp
@@ -177,20 +177,6 @@
           ],
         },  # activity_metric
         {
-          'target_name': 'audio_e2e_harness',
-          'type': 'executable',
-          'dependencies': [
-            '<(webrtc_root)/test/test.gyp:channel_transport',
-            '<(webrtc_root)/voice_engine/voice_engine.gyp:voice_engine',
-            '<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers_default',
-            '<(DEPTH)/testing/gtest.gyp:gtest',
-            '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
-          ],
-          'sources': [
-            'e2e_quality/audio/audio_e2e_harness.cc',
-          ],
-        }, # audio_e2e_harness
-        {
           'target_name': 'tools_unittests',
           'type': '<(gtest_target_type)',
           'dependencies': [