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

Commit f7667505 authored by yucliu's avatar yucliu Committed by Yuchen Liu
Browse files

Force DIRECT flag on direct output thread.

Force DIRECT flag if current playback thread is direct output thread.

This can happen when the playback is re-routed to direct output stream
by dynamic audio policy.

Bug: 130296239
Test: manual
Change-Id: I24efd87f74bacf6b769d3663e9521eb27b1704e9
parent cc79094c
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -2088,6 +2088,12 @@ sp<AudioFlinger::PlaybackThread::Track> AudioFlinger::PlaybackThread::createTrac
        outputFlags = (audio_output_flags_t)(outputFlags | AUDIO_OUTPUT_FLAG_FAST);
    }

    // Set DIRECT flag if current thread is DirectOutputThread. This can happen when the playback is
    // rerouted to direct output thread by dynamic audio policy.
    if (mType == DIRECT) {
        *flags = (audio_output_flags_t)(*flags | AUDIO_OUTPUT_FLAG_DIRECT);
    }

    // Check if requested flags are compatible with output stream flags
    if ((*flags & outputFlags) != *flags) {
        ALOGW("createTrack_l(): mismatch between requested flags (%08x) and output flags (%08x)",