autotest: Add audiovideo_AudioBasicHeadphone test

Adds a basic headphone test using Chameleon test framework.
This test uses fixed frequency sine wave as test data and compares
the frequency difference between recorded data and golden data.
Lets playback method to be non-blocking so in the test we can start
playback then start recording.
The audio cable connecting Cros device headphone to Chameleon Line-In
must be plugged in before the test starts.
This patch also changes how channel map setting is implemented since
different links have different channel maps.

BUG=chromium:437678
TEST=test_that --args "chameleon_host=$CHAMELEON_IP" $DUT_IP
audiovideo_AudioBasicHeadphone
TEST=test_that --args "chameleon_host=$CHAMELEON_IP" $DUT_IP
audiovideo_AudioBasicHDMI

Change-Id: Iff95799c8badc9ec292d7bbb235f88c5e0ffbc2d
Reviewed-on: https://chromium-review.googlesource.com/232258
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>
Tested-by: Cheng-Yi Chiang <cychiang@chromium.org>
Commit-Queue: Wai-Hong Tam <waihong@chromium.org>
diff --git a/client/cros/audio/sox_utils.py b/client/cros/audio/sox_utils.py
index 693ef4d..7870001 100644
--- a/client/cros/audio/sox_utils.py
+++ b/client/cros/audio/sox_utils.py
@@ -7,7 +7,7 @@
 
 from autotest_lib.client.cros.audio import cmd_utils
 
-SOX_PATH = '/usr/local/bin/sox'
+SOX_PATH = 'sox'
 
 def _raw_format_args(channels, bits, rate):
     args = ['-t', 'raw', '-e', 'signed']