diff options
author | Andy Hung <hunga@google.com> | 2014-07-28 16:16:31 -0700 |
---|---|---|
committer | Andy Hung <hunga@google.com> | 2014-07-28 16:16:31 -0700 |
commit | 9a60538b9ee2b097770dcd378281b31f4218ae56 (patch) | |
tree | 2c1e28a60d4d561e7131d1b77ff67e933b9210d0 /services | |
parent | 141670d465d7673dfa6ad712ad100f84882dfa95 (diff) | |
download | frameworks_av-9a60538b9ee2b097770dcd378281b31f4218ae56.zip frameworks_av-9a60538b9ee2b097770dcd378281b31f4218ae56.tar.gz frameworks_av-9a60538b9ee2b097770dcd378281b31f4218ae56.tar.bz2 |
Update multichannel audio policy handling
Ensure AUDIO_FORMAT_PCM_FLOAT and AUDIO_FORMAT_PCM_32_BIT
have proper precedence.
Allow more mixer channels than 2.
Change-Id: I02af97dad6218b25cbada4d93077a213314c6725
Diffstat (limited to 'services')
-rw-r--r-- | services/audiopolicy/AudioPolicyManager.cpp | 6 | ||||
-rw-r--r-- | services/audiopolicy/AudioPolicyManager.h | 5 |
2 files changed, 6 insertions, 5 deletions
diff --git a/services/audiopolicy/AudioPolicyManager.cpp b/services/audiopolicy/AudioPolicyManager.cpp index c5248fe..a0322d6 100644 --- a/services/audiopolicy/AudioPolicyManager.cpp +++ b/services/audiopolicy/AudioPolicyManager.cpp @@ -5494,12 +5494,14 @@ audio_channel_mask_t AudioPolicyManager::AudioPort::pickChannelMask() const return channelMask; } +/* format in order of increasing preference */ const audio_format_t AudioPolicyManager::AudioPort::sPcmFormatCompareTable[] = { AUDIO_FORMAT_DEFAULT, AUDIO_FORMAT_PCM_16_BIT, AUDIO_FORMAT_PCM_8_24_BIT, AUDIO_FORMAT_PCM_24_BIT_PACKED, AUDIO_FORMAT_PCM_32_BIT, + AUDIO_FORMAT_PCM_FLOAT, }; int AudioPolicyManager::AudioPort::compareFormats(audio_format_t format1, @@ -5541,7 +5543,9 @@ audio_format_t AudioPolicyManager::AudioPort::pickFormat() const } audio_format_t format = AUDIO_FORMAT_DEFAULT; - audio_format_t bestFormat = BEST_MIXER_FORMAT; + audio_format_t bestFormat = + AudioPolicyManager::AudioPort::sPcmFormatCompareTable[ + ARRAY_SIZE(AudioPolicyManager::AudioPort::sPcmFormatCompareTable) - 1]; // For mixed output and inputs, use best mixer output format. Do not // limit format otherwise if ((mType != AUDIO_PORT_TYPE_MIX) || diff --git a/services/audiopolicy/AudioPolicyManager.h b/services/audiopolicy/AudioPolicyManager.h index 62b3ce5..13a9cf0 100644 --- a/services/audiopolicy/AudioPolicyManager.h +++ b/services/audiopolicy/AudioPolicyManager.h @@ -53,10 +53,7 @@ namespace android { #define OFFLOAD_DEFAULT_MIN_DURATION_SECS 60 #define MAX_MIXER_SAMPLING_RATE 48000 -#define MAX_MIXER_CHANNEL_COUNT 2 -// See AudioPort::compareFormats() -#define WORST_MIXER_FORMAT AUDIO_FORMAT_PCM_16_BIT -#define BEST_MIXER_FORMAT AUDIO_FORMAT_PCM_24_BIT_PACKED +#define MAX_MIXER_CHANNEL_COUNT 8 // ---------------------------------------------------------------------------- // AudioPolicyManager implements audio policy manager behavior common to all platforms. |