summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/AudioMixer.cpp
diff options
context:
space:
mode:
authorJean-Baptiste Queru <jbq@google.com>2012-08-10 12:48:51 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-08-10 12:48:51 -0700
commit037ac53aac0f51f2ccfaaa91822365c1c73c4365 (patch)
tree6552c46685738bf5baf41d8708066b823aaf64f5 /services/audioflinger/AudioMixer.cpp
parent7f3a8e4cb89fadffe31a12859721866d5ca02353 (diff)
parent0efd035854ad2c8d20100a740e054c4bf7b3e9a4 (diff)
downloadframeworks_av-037ac53aac0f51f2ccfaaa91822365c1c73c4365.zip
frameworks_av-037ac53aac0f51f2ccfaaa91822365c1c73c4365.tar.gz
frameworks_av-037ac53aac0f51f2ccfaaa91822365c1c73c4365.tar.bz2
am 0efd0358: am fcfc61da: am ff4c64d6: am c64a1787: Merge "Fix initialization of audio mixer track resources for MIPS."
* commit '0efd035854ad2c8d20100a740e054c4bf7b3e9a4': Fix initialization of audio mixer track resources for MIPS.
Diffstat (limited to 'services/audioflinger/AudioMixer.cpp')
-rw-r--r--services/audioflinger/AudioMixer.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/services/audioflinger/AudioMixer.cpp b/services/audioflinger/AudioMixer.cpp
index 5b0867d..183c1f3 100644
--- a/services/audioflinger/AudioMixer.cpp
+++ b/services/audioflinger/AudioMixer.cpp
@@ -93,8 +93,12 @@ bool AudioMixer::isMultichannelCapable = false;
effect_descriptor_t AudioMixer::dwnmFxDesc;
+// Ensure mConfiguredNames bitmask is initialized properly on all architectures.
+// The value of 1 << x is undefined in C when x >= 32.
+
AudioMixer::AudioMixer(size_t frameCount, uint32_t sampleRate, uint32_t maxNumTracks)
- : mTrackNames(0), mConfiguredNames((1 << maxNumTracks) - 1), mSampleRate(sampleRate)
+ : mTrackNames(0), mConfiguredNames((maxNumTracks >= 32 ? 0 : 1 << maxNumTracks) - 1),
+ mSampleRate(sampleRate)
{
// AudioMixer is not yet capable of multi-channel beyond stereo
COMPILE_TIME_ASSERT_FUNCTION_SCOPE(2 == MAX_NUM_CHANNELS);