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
diff --git a/media/libaudioclient/AudioTrack.cpp b/media/libaudioclient/AudioTrack.cpp
index 8b35a85..96fccae 100644
--- a/media/libaudioclient/AudioTrack.cpp
+++ b/media/libaudioclient/AudioTrack.cpp
@@ -810,6 +810,13 @@
     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);