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
gugelfrei
Jean-Michel Trivi 6 years ago
parent c40d87ea84
commit a60e9a209e

@ -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);

Loading…
Cancel
Save