diff options
author | Andy Hung <hunga@google.com> | 2015-06-18 17:34:40 -0700 |
---|---|---|
committer | The Android Automerger <android-build@google.com> | 2015-06-19 11:37:23 -0700 |
commit | 2c8232f4738696f5d2557185adea9a37aa1220f4 (patch) | |
tree | 569b785f9cf52c0fe0b3e9a87b6b75f784b128a2 | |
parent | 3ea12b8b3173f33cd8f216c65162739774aae773 (diff) | |
download | frameworks_av-2c8232f4738696f5d2557185adea9a37aa1220f4.zip frameworks_av-2c8232f4738696f5d2557185adea9a37aa1220f4.tar.gz frameworks_av-2c8232f4738696f5d2557185adea9a37aa1220f4.tar.bz2 |
Fix clamp issue with AudioMixer with float input and int16 output
Bug: 20706338
Change-Id: I7e3ab0da96901870cc57fbe2e79163bc81157465
-rw-r--r-- | services/audioflinger/AudioMixerOps.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/services/audioflinger/AudioMixerOps.h b/services/audioflinger/AudioMixerOps.h index 2678857..8d74024 100644 --- a/services/audioflinger/AudioMixerOps.h +++ b/services/audioflinger/AudioMixerOps.h @@ -164,13 +164,12 @@ inline int32_t MixMul<int32_t, int16_t, float>(int16_t value, float volume) { template <> inline int16_t MixMul<int16_t, int16_t, float>(int16_t value, float volume) { LOG_ALWAYS_FATAL("MixMul<int16_t, int16_t, float> Runtime Should not be here"); - return value * volume; + return clamp16_from_float(MixMul<float, int16_t, float>(value, volume)); } template <> inline int16_t MixMul<int16_t, float, float>(float value, float volume) { - static const float q_15_from_float = (1 << 15); - return value * volume * q_15_from_float; + return clamp16_from_float(value * volume); } /* |