diff options
author | Jean-Michel Trivi <jmtrivi@google.com> | 2014-12-19 09:34:07 -0800 |
---|---|---|
committer | Rachad Alao <rachad@google.com> | 2014-12-22 18:15:32 +0000 |
commit | 43bcd8fa74711dddfc27d696e7b9c0a9c4beff08 (patch) | |
tree | 77b4539d2cc7cbc01a4d34f897ad46958522c644 /media/java | |
parent | 2281e7d6a18e4eebea602c8093ec7cb6541f2960 (diff) | |
download | frameworks_base-43bcd8fa74711dddfc27d696e7b9c0a9c4beff08.zip frameworks_base-43bcd8fa74711dddfc27d696e7b9c0a9c4beff08.tar.gz frameworks_base-43bcd8fa74711dddfc27d696e7b9c0a9c4beff08.tar.bz2 |
AudioRecord: filter attributes
When creating an AudioRecord instance, filter the tags in the
AudioAttributes to remove tags that are handled at the Java
layer.
Bug: 18733215
Bug: 18736417
Change-Id: I16a3497742086deced4e8677bd6231290396c5f6
Diffstat (limited to 'media/java')
-rw-r--r-- | media/java/android/media/AudioRecord.java | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/media/java/android/media/AudioRecord.java b/media/java/android/media/AudioRecord.java index ce78bb6..de10ef9 100644 --- a/media/java/android/media/AudioRecord.java +++ b/media/java/android/media/AudioRecord.java @@ -273,18 +273,23 @@ public class AudioRecord mInitializationLooper = Looper.getMainLooper(); } - mAudioAttributes = attributes; - // is this AudioRecord using REMOTE_SUBMIX at full volume? - if (mAudioAttributes.getCapturePreset() == MediaRecorder.AudioSource.REMOTE_SUBMIX) { - final Iterator<String> tagsIter = mAudioAttributes.getTags().iterator(); + if (attributes.getCapturePreset() == MediaRecorder.AudioSource.REMOTE_SUBMIX) { + final AudioAttributes.Builder filteredAttr = new AudioAttributes.Builder(); + final Iterator<String> tagsIter = attributes.getTags().iterator(); while (tagsIter.hasNext()) { - if (tagsIter.next().equalsIgnoreCase(SUBMIX_FIXED_VOLUME)) { + final String tag = tagsIter.next(); + if (tag.equalsIgnoreCase(SUBMIX_FIXED_VOLUME)) { mIsSubmixFullVolume = true; Log.v(TAG, "Will record from REMOTE_SUBMIX at full fixed volume"); - break; + } else { // SUBMIX_FIXED_VOLUME: is not to be propagated to the native layers + filteredAttr.addTag(tag); } } + filteredAttr.setInternalCapturePreset(attributes.getCapturePreset()); + mAudioAttributes = filteredAttr.build(); + } else { + mAudioAttributes = attributes; } int rate = 0; |