summaryrefslogtreecommitdiffstats
path: root/media/java
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2014-12-19 09:34:07 -0800
committerRachad Alao <rachad@google.com>2014-12-22 18:15:32 +0000
commit43bcd8fa74711dddfc27d696e7b9c0a9c4beff08 (patch)
tree77b4539d2cc7cbc01a4d34f897ad46958522c644 /media/java
parent2281e7d6a18e4eebea602c8093ec7cb6541f2960 (diff)
downloadframeworks_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.java17
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;