Add PESQ precompiled tool for audio quality testing

BUG=webrtc:7229

Review-Url: https://codereview.webrtc.org/2715933003
Cr-Commit-Position: refs/heads/master@{#17055}
diff --git a/.gitignore b/.gitignore
index 5cf7c6b..42cd042 100644
--- a/.gitignore
+++ b/.gitignore
@@ -48,6 +48,9 @@
 /tools
 /tools-webrtc/android/profiling/flamegraph
 /tools-webrtc/android/profiling/simpleperf
+/tools-webrtc/audio_quality/linux/pesq
+/tools-webrtc/audio_quality/mac/pesq
+/tools-webrtc/audio_quality/win/*.exe
 /tools-webrtc/video_quality_toolchain/linux/ffmpeg
 /tools-webrtc/video_quality_toolchain/linux/zxing
 /tools-webrtc/video_quality_toolchain/mac/ffmpeg
diff --git a/tools-webrtc/audio_quality/README b/tools-webrtc/audio_quality/README
new file mode 100644
index 0000000..66bdd8a
--- /dev/null
+++ b/tools-webrtc/audio_quality/README
@@ -0,0 +1,4 @@
+Use ../download_tools.py to download the files in this directory. Note that
+they are downloaded from gs://chrome-webrtc-resources, which is a
+google-internal bucket. If you're a non-Googler you'll have to download and
+compile these tools manually in order to use them.
diff --git a/tools-webrtc/audio_quality/linux/pesq.sha1 b/tools-webrtc/audio_quality/linux/pesq.sha1
new file mode 100644
index 0000000..24f8a05
--- /dev/null
+++ b/tools-webrtc/audio_quality/linux/pesq.sha1
@@ -0,0 +1 @@
+bfbf5fa8fd9d6be5b4aa3f50caedbd786b0a034b
\ No newline at end of file
diff --git a/tools-webrtc/audio_quality/mac/pesq.sha1 b/tools-webrtc/audio_quality/mac/pesq.sha1
new file mode 100644
index 0000000..08b19a6
--- /dev/null
+++ b/tools-webrtc/audio_quality/mac/pesq.sha1
@@ -0,0 +1 @@
+9b9349dd7ef47709ca497cd66d9c453ab2b5c732
\ No newline at end of file
diff --git a/tools-webrtc/audio_quality/win/pesq.exe.sha1 b/tools-webrtc/audio_quality/win/pesq.exe.sha1
new file mode 100644
index 0000000..23c9869
--- /dev/null
+++ b/tools-webrtc/audio_quality/win/pesq.exe.sha1
@@ -0,0 +1 @@
+67726dd1d186b142a95914efc93233b8a9e583fe
\ No newline at end of file
diff --git a/tools-webrtc/download_tools.py b/tools-webrtc/download_tools.py
new file mode 100755
index 0000000..dc64ebf
--- /dev/null
+++ b/tools-webrtc/download_tools.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+# Copyright (c) 2016 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.
+
+"""Downloads precompiled tools.
+
+These are checked into the repository as SHA-1 hashes (see *.sha1 files in
+subdirectories). Note that chrome-webrtc-resources is a Google-internal bucket,
+so please download and compile these tools manually if this script fails.
+"""
+
+import os
+import subprocess
+import sys
+
+
+SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
+
+
+def main(directories):
+  if not directories:
+    directories = [SCRIPT_DIR]
+
+  for path in directories:
+    cmd = [
+      'download_from_google_storage',
+      '--directory',
+      '--num_threads=10',
+      '--bucket', 'chrome-webrtc-resources',
+      '--auto_platform',
+      '--recursive',
+      path,
+    ]
+    print 'Downloading precompiled tools...'
+    subprocess.check_call(cmd)
+
+
+if __name__ == '__main__':
+  sys.exit(main(sys.argv[1:]))
diff --git a/tools-webrtc/video_quality_toolchain/README b/tools-webrtc/video_quality_toolchain/README
index 9e8ace7..66bdd8a 100644
--- a/tools-webrtc/video_quality_toolchain/README
+++ b/tools-webrtc/video_quality_toolchain/README
@@ -1,3 +1,4 @@
-The files in this directory are downloaded from gs://chrome-webrtc-resources,
-which is a google-internal bucket. If you're a non-Googler you'll have to download
-and compile these tools manually in order to use them.
+Use ../download_tools.py to download the files in this directory. Note that
+they are downloaded from gs://chrome-webrtc-resources, which is a
+google-internal bucket. If you're a non-Googler you'll have to download and
+compile these tools manually in order to use them.
diff --git a/tools-webrtc/video_quality_toolchain/download.py b/tools-webrtc/video_quality_toolchain/download.py
deleted file mode 100755
index 24c243a..0000000
--- a/tools-webrtc/video_quality_toolchain/download.py
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2016 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.
-
-"""Downloads precompiled tools needed for video quality analysis."""
-
-import os
-import subprocess
-import sys
-
-
-SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
-
-
-def main():
-  cmd = [
-    'download_from_google_storage',
-    '--directory',
-    '--num_threads=10',
-    '--bucket', 'chrome-webrtc-resources',
-    '--auto_platform',
-    '--recursive',
-    SCRIPT_DIR,
-  ]
-  print 'Downloading video quality analysis tools...'
-  subprocess.check_call(cmd)
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/webrtc/examples/androidtests/video_quality_loopback_test.py b/webrtc/examples/androidtests/video_quality_loopback_test.py
index dd11275..a6115f3 100755
--- a/webrtc/examples/androidtests/video_quality_loopback_test.py
+++ b/webrtc/examples/androidtests/video_quality_loopback_test.py
@@ -73,12 +73,12 @@
     _RunCommand(['gn', 'gen', build_dir_x86])
     _RunCommand(['ninja', '-C', build_dir_x86, 'frame_analyzer'])
 
-  toolchain_dir = os.path.join(SRC_DIR, 'tools-webrtc',
-      'video_quality_toolchain')
+  tools_dir = os.path.join(SRC_DIR, 'tools-webrtc')
+  toolchain_dir = os.path.join(tools_dir, 'video_quality_toolchain')
 
   # Download ffmpeg and zxing.
-  download_script = os.path.join(toolchain_dir, 'download.py')
-  _RunCommand([sys.executable, download_script])
+  download_script = os.path.join(tools_dir, 'download_tools.py')
+  _RunCommand([sys.executable, download_script, toolchain_dir])
 
   # Run the Espresso code.
   test_script = os.path.join(build_dir_android,