diff options
author | Ricardo Garcia <rago@google.com> | 2015-05-29 01:28:47 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-05-29 01:28:48 +0000 |
commit | 76b1d55b69f0d1d36bb96ab0c206ef1eff715d82 (patch) | |
tree | 0755e0d33e740bf4c66c8ee852cc309857e3b39d /services/audioflinger | |
parent | db431db53fbbb9024b6e72c528e2d195d63ad544 (diff) | |
parent | d11da70f0e1d06ee6c7b2f83fcfb06257a1c90f2 (diff) | |
download | frameworks_av-76b1d55b69f0d1d36bb96ab0c206ef1eff715d82.zip frameworks_av-76b1d55b69f0d1d36bb96ab0c206ef1eff715d82.tar.gz frameworks_av-76b1d55b69f0d1d36bb96ab0c206ef1eff715d82.tar.bz2 |
Merge "Fix for audio effects in offload path for mono content" into mnc-dev
Diffstat (limited to 'services/audioflinger')
-rw-r--r-- | services/audioflinger/Effects.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/services/audioflinger/Effects.cpp b/services/audioflinger/Effects.cpp index 8bccb47..949c91d 100644 --- a/services/audioflinger/Effects.cpp +++ b/services/audioflinger/Effects.cpp @@ -335,13 +335,21 @@ status_t AudioFlinger::EffectModule::configure() // TODO: handle configuration of effects replacing track process channelMask = thread->channelMask(); + mConfig.outputCfg.channels = channelMask; if ((mDescriptor.flags & EFFECT_FLAG_TYPE_MASK) == EFFECT_FLAG_TYPE_AUXILIARY) { mConfig.inputCfg.channels = AUDIO_CHANNEL_OUT_MONO; } else { mConfig.inputCfg.channels = channelMask; + // TODO: Update this logic when multichannel effects are implemented. + // For offloaded tracks consider mono output as stereo for proper effect initialization + if (channelMask == AUDIO_CHANNEL_OUT_MONO) { + mConfig.inputCfg.channels = AUDIO_CHANNEL_OUT_STEREO; + mConfig.outputCfg.channels = AUDIO_CHANNEL_OUT_STEREO; + ALOGV("Overriding effect input and output as STEREO"); + } } - mConfig.outputCfg.channels = channelMask; + mConfig.inputCfg.format = AUDIO_FORMAT_PCM_16_BIT; mConfig.outputCfg.format = AUDIO_FORMAT_PCM_16_BIT; mConfig.inputCfg.samplingRate = thread->sampleRate(); |