Loading media/libaudioclient/include/media/AudioPolicy.h +5 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,11 @@ static inline bool is_mix_loopback_render(uint32_t routeFlags) { == MIX_ROUTE_FLAG_LOOP_BACK_AND_RENDER; } static inline bool is_mix_loopback(uint32_t routeFlags) { return (routeFlags & MIX_ROUTE_FLAG_LOOP_BACK) == MIX_ROUTE_FLAG_LOOP_BACK; } }; // namespace android #endif // ANDROID_AUDIO_POLICY_H services/audiopolicy/common/managerdefinitions/src/AudioPolicyMix.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -232,7 +232,8 @@ AudioPolicyMixCollection::MixMatchStatus AudioPolicyMixCollection::mixMatch( // Permit match only if requested format and mix format are PCM and can be format // adapted by the mixer, or are the same (compressed) format. if (!((audio_is_linear_pcm(config.format) && audio_is_linear_pcm(mix->mFormat.format)) || if (!is_mix_loopback(mix->mRouteFlags) && !((audio_is_linear_pcm(config.format) && audio_is_linear_pcm(mix->mFormat.format)) || (config.format == mix->mFormat.format)) && config.format != AUDIO_CONFIG_BASE_INITIALIZER.format) { return MixMatchStatus::NO_MATCH; Loading Loading
media/libaudioclient/include/media/AudioPolicy.h +5 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,11 @@ static inline bool is_mix_loopback_render(uint32_t routeFlags) { == MIX_ROUTE_FLAG_LOOP_BACK_AND_RENDER; } static inline bool is_mix_loopback(uint32_t routeFlags) { return (routeFlags & MIX_ROUTE_FLAG_LOOP_BACK) == MIX_ROUTE_FLAG_LOOP_BACK; } }; // namespace android #endif // ANDROID_AUDIO_POLICY_H
services/audiopolicy/common/managerdefinitions/src/AudioPolicyMix.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -232,7 +232,8 @@ AudioPolicyMixCollection::MixMatchStatus AudioPolicyMixCollection::mixMatch( // Permit match only if requested format and mix format are PCM and can be format // adapted by the mixer, or are the same (compressed) format. if (!((audio_is_linear_pcm(config.format) && audio_is_linear_pcm(mix->mFormat.format)) || if (!is_mix_loopback(mix->mRouteFlags) && !((audio_is_linear_pcm(config.format) && audio_is_linear_pcm(mix->mFormat.format)) || (config.format == mix->mFormat.format)) && config.format != AUDIO_CONFIG_BASE_INITIALIZER.format) { return MixMatchStatus::NO_MATCH; Loading