From 73e62e2ea12e46825958eba718bd8d5e23064ec5 Mon Sep 17 00:00:00 2001 From: Andy Hung Date: Mon, 20 Apr 2015 12:06:38 -0700 Subject: Fix single channel playback that does not use AUDIO_CHANNEL_OUT_MONO Mono channel playback without resampling and not using AUDIO_CHANNEL_OUT_MONO can show low frequency garbling. Bug: 20463456 Change-Id: I0c1bbf957ea439bb8d8da57b9e78938e1acb4793 --- services/audioflinger/AudioMixer.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'services') diff --git a/services/audioflinger/AudioMixer.cpp b/services/audioflinger/AudioMixer.cpp index c2c791f..f28c625 100644 --- a/services/audioflinger/AudioMixer.cpp +++ b/services/audioflinger/AudioMixer.cpp @@ -319,7 +319,7 @@ status_t AudioMixer::track_t::prepareForDownmix() // discard the previous downmixer if there was one unprepareForDownmix(); - // Only remix (upmix or downmix) if the track and mixer/device channel masks + // MONO_HACK Only remix (upmix or downmix) if the track and mixer/device channel masks // are not the same and not handled internally, as mono -> stereo currently is. if (channelMask == mMixerChannelMask || (channelMask == AUDIO_CHANNEL_OUT_MONO @@ -914,7 +914,8 @@ void AudioMixer::process__validate(state_t* state, int64_t pts) } else { if ((n & NEEDS_CHANNEL_COUNT__MASK) == NEEDS_CHANNEL_1){ t.hook = getTrackHook( - t.mMixerChannelCount == 2 // TODO: MONO_HACK. + (t.mMixerChannelMask == AUDIO_CHANNEL_OUT_STEREO // TODO: MONO_HACK + && t.channelMask == AUDIO_CHANNEL_OUT_MONO) ? TRACKTYPE_NORESAMPLEMONO : TRACKTYPE_NORESAMPLE, t.mMixerChannelCount, t.mMixerInFormat, t.mMixerFormat); -- cgit v1.1