audioflinger: various offload playback fixes
Revert underrun sleep time optimization added for
offload by commit 51716185 which can cause music to pause for a few
seconds in some corner cases.
Allow underruns in STOPPING_1 state to avoid dropping last buffer
received by the AudioTrack callback after stop() is called by the
client.
Allow interruption of thread loop sleep if a command is pending to
speed up track start sequence.
Do not wait for a full AudioTrack buffer before writing to audio HAL
when resuming playback or transitioning to next track.
Also moved log level for underruns in AudioSink from I to D to reduce
spam on user builds.
Bug: 28545177
Bug: 27682362
Bug: 28347796
Change-Id: I05b651b7878a2d2eedcac43cd669e32add171d40
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index 1d575b3..2b0d4c8 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -1843,8 +1843,7 @@
PlaybackThread *thread;
if (flags & AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD) {
- thread = new OffloadThread(this, outputStream, *output, devices, mSystemReady,
- config->offload_info.bit_rate);
+ thread = new OffloadThread(this, outputStream, *output, devices, mSystemReady);
ALOGV("openOutput_l() created offload output: ID %d thread %p", *output, thread);
} else if ((flags & AUDIO_OUTPUT_FLAG_DIRECT)
|| !isValidPcmSinkFormat(config->format)