summaryrefslogtreecommitdiffstats
path: root/services/audioflinger
diff options
context:
space:
mode:
authorRicardo Garcia <rago@google.com>2015-05-29 01:28:47 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-05-29 01:28:48 +0000
commit76b1d55b69f0d1d36bb96ab0c206ef1eff715d82 (patch)
tree0755e0d33e740bf4c66c8ee852cc309857e3b39d /services/audioflinger
parentdb431db53fbbb9024b6e72c528e2d195d63ad544 (diff)
parentd11da70f0e1d06ee6c7b2f83fcfb06257a1c90f2 (diff)
downloadframeworks_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.cpp10
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();