Merge "Check for bad attributes in StreamRecorder." into oreo-cts-dev
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralRecordActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralRecordActivity.java
index 428c475..9a01b35 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralRecordActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralRecordActivity.java
@@ -146,9 +146,10 @@
             case R.id.uap_recordRecordBtn:
                 Log.i(TAG, "Record Button Pressed");
                 if (!isPlaying()) {
-                    startRecording(false);
-                    mRecordBtn.setText(getString(R.string.audio_uap_record_stopBtn));
-                    mRecordLoopbackBtn.setEnabled(false);
+                    if (startRecording(false)) {
+                        mRecordBtn.setText(getString(R.string.audio_uap_record_stopBtn));
+                        mRecordLoopbackBtn.setEnabled(false);
+                    }
                 } else {
                     stopRecording();
                     mRecordBtn.setText(getString(R.string.audio_uap_record_recordBtn));
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/audio/audiolib/AudioUtils.java b/apps/CtsVerifier/src/com/android/cts/verifier/audio/audiolib/AudioUtils.java
index 002f460..7190af9 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/audio/audiolib/AudioUtils.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/audio/audiolib/AudioUtils.java
@@ -19,6 +19,7 @@
 import android.media.AudioFormat;
 import android.media.AudioRecord;
 import android.media.AudioTrack;
+import android.util.Log;
 
 // TODO - This functionality probably exists in the framework function. Remove this and
 //    use that instead.
@@ -31,7 +32,10 @@
     }
 
     public static int countToIndexMask(int chanCount) {
-        return  (1 << chanCount) - 1;
+        // From the documentation for AudioFormat:
+        // The canonical channel index masks by channel count are given by the formula
+        // (1 << channelCount) - 1.
+        return (1 << chanCount) - 1;
     }
 
     public static int countToOutPositionMask(int channelCount) {
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/audio/audiolib/StreamRecorder.java b/apps/CtsVerifier/src/com/android/cts/verifier/audio/audiolib/StreamRecorder.java
index ed25743..dc73543 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/audio/audiolib/StreamRecorder.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/audio/audiolib/StreamRecorder.java
@@ -121,8 +121,8 @@
         mSampleRate = sampleRate;
 
         int chanMask = AudioUtils.countToIndexMask(numChans);
-        int bufferSizeInBytes =
-            AudioRecord.getMinBufferSize(mSampleRate, chanMask, AudioFormat.ENCODING_PCM_FLOAT);
+        int bufferSizeInBytes = 2048;   // Some, non-critical value
+
         try {
             mAudioRecord = new AudioRecord.Builder()
                     .setAudioFormat(new AudioFormat.Builder()