From a82797faddb37adb2d441737884576684c8515cb Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Fri, 30 Jan 2015 11:49:43 -0800 Subject: audio policy: add fallback for output selection When getOutputForDevice() finds a matching direct output profile but fails to open it, try to fallback to downmix on mixer output when format is PCM and sampling rate allows it. Bug: 19197137. Change-Id: I197b9b202504265b6928e69740875cb7aba5c2c5 --- services/audiopolicy/AudioPolicyManager.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'services/audiopolicy') diff --git a/services/audiopolicy/AudioPolicyManager.cpp b/services/audiopolicy/AudioPolicyManager.cpp index fb74d66..c1c6c57 100644 --- a/services/audiopolicy/AudioPolicyManager.cpp +++ b/services/audiopolicy/AudioPolicyManager.cpp @@ -1098,6 +1098,10 @@ audio_io_handle_t AudioPolicyManager::getOutputForDevice( if (output != AUDIO_IO_HANDLE_NONE) { mpClientInterface->closeOutput(output); } + // fall back to mixer output if possible when the direct output could not be open + if (audio_is_linear_pcm(format) && samplingRate <= MAX_MIXER_SAMPLING_RATE) { + goto non_direct_output; + } return AUDIO_IO_HANDLE_NONE; } outputDesc->mSamplingRate = config.sample_rate; -- cgit v1.1