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

Unified Diff: chrome/browser/media/chrome_webrtc_audio_quality_browsertest.cc

Issue 611433002: Implementing WebRTC audio quality test for Mac. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added instructions. Created 6 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 | « no previous file | chrome/test/data/webrtc/resources/human-voice-mac.wav.sha1 » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/media/chrome_webrtc_audio_quality_browsertest.cc
diff --git a/chrome/browser/media/chrome_webrtc_audio_quality_browsertest.cc b/chrome/browser/media/chrome_webrtc_audio_quality_browsertest.cc
index 897649434f40e53178c318f7cef44de0f1c25abc..11c5c61abdea8fd88b052878c3b4588be625de89 100644
--- a/chrome/browser/media/chrome_webrtc_audio_quality_browsertest.cc
+++ b/chrome/browser/media/chrome_webrtc_audio_quality_browsertest.cc
@@ -29,6 +29,8 @@
static const base::FilePath::CharType kReferenceFile[] =
#if defined (OS_WIN)
FILE_PATH_LITERAL("human-voice-win.wav");
+#elif defined (OS_MACOSX)
+ FILE_PATH_LITERAL("human-voice-mac.wav");
#else
FILE_PATH_LITERAL("human-voice-linux.wav");
#endif
@@ -39,6 +41,8 @@ static const base::FilePath::CharType kReferenceFile[] =
static const char kReferenceFileRelativeUrl[] =
#if defined (OS_WIN)
"resources/human-voice-win.wav";
+#elif defined (OS_MACOSX)
+ "resources/human-voice-mac.wav";
#else
"resources/human-voice-linux.wav";
#endif
@@ -70,6 +74,21 @@ static const char kMainWebrtcTestHtmlPage[] =
// Note: the volume for ALL your input devices will be forced to 100% by
// running this test on Linux.
//
+// On Mac:
+// 1. Get SoundFlower: http://rogueamoeba.com/freebies/soundflower/download.php
+// 2. Install it + reboot.
+// 3. Install MacPorts (http://www.macports.org/).
+// 4. Install sox: sudo port install sox.
+// 5. In Sound Preferences, set both input and output to Soundflower (2ch).
+// Note: You will no longer hear audio on this machine, and it will no
+// longer use any built-in mics.
+// 6. Ensure the output volume is max and the input volume at about 20%.
+// 7. Try launching chrome as the target user on the target machine, try
+// playing, say, a YouTube video, and record with 'rec test.wav trim 0 5'.
+// Stop the video in chrome and try playing back the file; you should hear
+// a recording of the video (note; if you play back on the target machine
+// you must revert the changes in step 3 first).
+//
// On Windows 7:
// 1. Control panel > Sound > Manage audio devices.
// 2. In the recording tab, right-click in an empty space in the pane with the
@@ -163,6 +182,21 @@ class AudioRecorder {
command_line.AppendArgPath(output_file);
command_line.AppendArg("/DURATION");
command_line.AppendArg(duration_in_hms);
+#elif defined(OS_MACOSX)
+ command_line.SetProgram(base::FilePath("rec"));
+ command_line.AppendArg("-b");
+ command_line.AppendArg("16");
+ command_line.AppendArg("-q");
+ command_line.AppendArgPath(output_file);
+ command_line.AppendArg("trim");
+ command_line.AppendArg("0");
+ command_line.AppendArg(base::StringPrintf("%d", duration_sec));
+ command_line.AppendArg("rate");
+ command_line.AppendArg("16k");
+ if (mono) {
+ command_line.AppendArg("remix");
+ command_line.AppendArg("-");
+ }
#else
int num_channels = mono ? 1 : 2;
command_line.SetProgram(base::FilePath("arecord"));
@@ -201,6 +235,8 @@ bool ForceMicrophoneVolumeTo100Percent() {
LOG(ERROR) << "Failed to set source volume: output was " << result;
return false;
}
+#elif defined(OS_MACOSX)
+ // TODO(phoglund): implement.
#else
// Just force the volume of, say the first 5 devices. A machine will rarely
// have more input sources than that. This is way easier than finding the
@@ -297,6 +333,9 @@ bool RunPesq(const base::FilePath& reference_file,
#if defined(OS_WIN)
base::FilePath pesq_path =
test::GetReferenceFilesDir().Append(FILE_PATH_LITERAL("tools/pesq.exe"));
+#elif defined(OS_MACOSX)
+ base::FilePath pesq_path =
+ test::GetReferenceFilesDir().Append(FILE_PATH_LITERAL("tools/pesq_mac"));
#else
base::FilePath pesq_path =
test::GetReferenceFilesDir().Append(FILE_PATH_LITERAL("tools/pesq"));
« no previous file with comments | « no previous file | chrome/test/data/webrtc/resources/human-voice-mac.wav.sha1 » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698