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

Commit 6170cc6f authored by Eric Laurent's avatar Eric Laurent Committed by Android Git Automerger
Browse files

am 4b33e083: Merge "audioflinger: flush HAL when transitioning to next direct track" into mnc-dev

* commit '4b33e083':
  audioflinger: flush HAL when transitioning to next direct track
parents 68b733d4 4b33e083
Loading
Loading
Loading
Loading
+12 −9
Original line number Diff line number Diff line
@@ -4487,10 +4487,17 @@ void AudioFlinger::DirectOutputThread::onAddNewTrack_l()
    sp<Track> previousTrack = mPreviousTrack.promote();
    sp<Track> latestTrack = mLatestActiveTrack.promote();

    if (previousTrack != 0 && latestTrack != 0 &&
        (previousTrack->sessionId() != latestTrack->sessionId())) {
    if (previousTrack != 0 && latestTrack != 0) {
        if (mType == DIRECT) {
            if (previousTrack.get() != latestTrack.get()) {
                mFlushPending = true;
            }
        } else /* mType == OFFLOAD */ {
            if (previousTrack->sessionId() != latestTrack->sessionId()) {
                mFlushPending = true;
            }
        }
    }
    PlaybackThread::onAddNewTrack_l();
}

@@ -4582,14 +4589,10 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::DirectOutputThread::prep
                    if (track != previousTrack.get()) {
                        // Flush any data still being written from last track
                        mBytesRemaining = 0;
                        // flush data already sent if changing audio session as audio
                        // comes from a different source. Also invalidate previous track to force a
                        // seek when resuming.
                        if (previousTrack->sessionId() != track->sessionId()) {
                        // Invalidate previous track to force a seek when resuming.
                        previousTrack->invalidate();
                    }
                }
                }
                mPreviousTrack = track;

                // reset retry count