Loading services/audiopolicy/AudioPolicyManager.cpp +11 −1 Original line number Diff line number Diff line Loading @@ -927,13 +927,21 @@ audio_io_handle_t AudioPolicyManager::getOutputForDevice( flags = (audio_output_flags_t)(flags | AUDIO_OUTPUT_FLAG_DIRECT); } sp<IOProfile> profile; // skip direct output selection if the request can obviously be attached to a mixed output if (audio_is_linear_pcm(format) && samplingRate <= MAX_MIXER_SAMPLING_RATE && audio_channel_count_from_out_mask(channelMask) <= 2) { goto non_direct_output; } // Do not allow offloading if one non offloadable effect is enabled. This prevents from // creating an offloaded track and tearing it down immediately after start when audioflinger // detects there is an active non offloadable effect. // FIXME: We should check the audio session here but we do not have it in this context. // This may prevent offloading in rare situations where effects are left active by apps // in the background. sp<IOProfile> profile; if (((flags & AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD) == 0) || !isNonOffloadableEffectEnabled()) { profile = getProfileForDirectOutput(device, Loading Loading @@ -1016,6 +1024,8 @@ audio_io_handle_t AudioPolicyManager::getOutputForDevice( return output; } non_direct_output: // ignoring channel mask due to downmix capability in mixer // open a non direct output Loading Loading
services/audiopolicy/AudioPolicyManager.cpp +11 −1 Original line number Diff line number Diff line Loading @@ -927,13 +927,21 @@ audio_io_handle_t AudioPolicyManager::getOutputForDevice( flags = (audio_output_flags_t)(flags | AUDIO_OUTPUT_FLAG_DIRECT); } sp<IOProfile> profile; // skip direct output selection if the request can obviously be attached to a mixed output if (audio_is_linear_pcm(format) && samplingRate <= MAX_MIXER_SAMPLING_RATE && audio_channel_count_from_out_mask(channelMask) <= 2) { goto non_direct_output; } // Do not allow offloading if one non offloadable effect is enabled. This prevents from // creating an offloaded track and tearing it down immediately after start when audioflinger // detects there is an active non offloadable effect. // FIXME: We should check the audio session here but we do not have it in this context. // This may prevent offloading in rare situations where effects are left active by apps // in the background. sp<IOProfile> profile; if (((flags & AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD) == 0) || !isNonOffloadableEffectEnabled()) { profile = getProfileForDirectOutput(device, Loading Loading @@ -1016,6 +1024,8 @@ audio_io_handle_t AudioPolicyManager::getOutputForDevice( return output; } non_direct_output: // ignoring channel mask due to downmix capability in mixer // open a non direct output Loading