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

Commit a60e9a20 authored by Jean-Michel Trivi's avatar Jean-Michel Trivi
Browse files

AudioTrack offload: fix EVENT_STREAM_END not called

If the track thread is paused, EVENT_STREAM_END will not delivered
 for offload. This event is required for PRESENTATION_END to
 be delivered for Java AudioTrack offload.

Bug: 86837964
Test: cts-tradefed run cts -m CtsMediaTestCases -t android.media.cts.AudioTrackOffloadTest

Change-Id: I491cdb0a6faa69e5c37139c0364b5c9079ff1f14
parent c40d87ea
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -810,6 +810,13 @@ void AudioTrack::stop()
    if (t != 0) {
        if (!isOffloaded_l()) {
            t->pause();
        } else if (mTransfer == TRANSFER_SYNC_NOTIF_CALLBACK) {
            const sp<AudioTrackThread> t = mAudioTrackThread;
            if (t != 0) {
                // causes wake up of the playback thread, that will callback the client for
                // EVENT_STREAM_END in processAudioBuffer()
                t->wake();
            }
        }
    } else {
        setpriority(PRIO_PROCESS, 0, mPreviousPriority);