AudioSystem JNI: fix audio gain channel count
Use audio utility function instead of popcount
to get channel count from channel mask
Bug: 14815883.
Change-Id: Ia9a898c9f7f03d22caeefb418be1e33f65f7b7bb
diff --git a/core/jni/android_media_AudioSystem.cpp b/core/jni/android_media_AudioSystem.cpp
index 0f7e140..bf47dd3 100644
--- a/core/jni/android_media_AudioSystem.cpp
+++ b/core/jni/android_media_AudioSystem.cpp
@@ -613,8 +613,12 @@
goto exit;
}
}
- //TODO: replace popcount by audio utils function mask to count
- int numValues = popcount(nAudioPortConfig->gain.channel_mask);
+ int numValues;
+ if (useInMask) {
+ numValues = audio_channel_count_from_in_mask(nAudioPortConfig->gain.channel_mask);
+ } else {
+ numValues = audio_channel_count_from_out_mask(nAudioPortConfig->gain.channel_mask);
+ }
jGainValues = env->NewIntArray(numValues);
if (jGainValues == NULL) {
ALOGV("convertAudioPortConfigFromNative could not create gain values %d", numValues);