Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(218)

Unified Diff: webrtc/tools/e2e_quality/audio/run_audio_test.py

Issue 2295283004: Remove unused audio_e2e_harness.cc and infrastructure. (Closed)
Patch Set: rebase Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/tools/e2e_quality/audio/perf ('k') | webrtc/tools/tools.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/tools/e2e_quality/audio/run_audio_test.py
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 51caa42cd9e45eb1bd23cbba7a02751be6ab6150..0000000000000000000000000000000000000000
--- 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))
« no previous file with comments | « webrtc/tools/e2e_quality/audio/perf ('k') | webrtc/tools/tools.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698