aaudio: set buffer size to at least one burst
Clip setBufferSizeInFrames() to at least one burst
for Legacy streams to avoid underruns.
Bug: 129545119
Test: Look at BufferSize when you run this.
Test: adb shell write_sine_callback -pn -n0
Test: It should not glitch.
Change-Id: Id82862d59122ba2d9dd98dff579b5c147e40fab5
diff --git a/media/libaaudio/src/legacy/AudioStreamTrack.cpp b/media/libaaudio/src/legacy/AudioStreamTrack.cpp
index ff95aed..16b10bc 100644
--- a/media/libaaudio/src/legacy/AudioStreamTrack.cpp
+++ b/media/libaaudio/src/legacy/AudioStreamTrack.cpp
@@ -420,6 +420,10 @@
aaudio_result_t AudioStreamTrack::setBufferSize(int32_t requestedFrames)
{
+ // Do not ask for less than one burst.
+ if (requestedFrames < getFramesPerBurst()) {
+ requestedFrames = getFramesPerBurst();
+ }
ssize_t result = mAudioTrack->setBufferSizeInFrames(requestedFrames);
if (result < 0) {
return AAudioConvert_androidToAAudioResult(result);