Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7c325276 authored by Oscar Azucena's avatar Oscar Azucena
Browse files

Added fix for Support non PCM output requests

Added check to only support non PCM output request with dynamic audio
policy for non-loopback audio policy mixes.

Bug: 242015801
Test: Ran audio capture with MP3 playback
Change-Id: I006be240d60648aa547b31ddc54ebf365b90d8fc
Merged-In: I006be240d60648aa547b31ddc54ebf365b90d8fc
(cherry picked from commit 2a603284)
parent 6edb934c
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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
+2 −1
Original line number Diff line number Diff line
@@ -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;