AudioTrackShared: fix min buffer size
Fast Tracks can have very low buffer sizes.
Bug: 27765661
Bug: 27765632
Change-Id: I70262b2a0136aea3c0936aec85f15b0fc78d168f
Signed-off-by: Phil Burk <philburk@google.com>
diff --git a/media/libmedia/AudioTrackShared.cpp b/media/libmedia/AudioTrackShared.cpp
index e5d6fc3..f7baa15 100644
--- a/media/libmedia/AudioTrackShared.cpp
+++ b/media/libmedia/AudioTrackShared.cpp
@@ -88,13 +88,14 @@
uint32_t ClientProxy::setBufferSizeInFrames(uint32_t size)
{
- // TODO set minimum to 2X the fast mixer buffer size.
// The minimum should be greater than zero and less than the size
// at which underruns will occur.
- const uint32_t minimum = 128 * 2; // arbitrary
+ const uint32_t minimum = 16; // based on AudioMixer::BLOCKSIZE
const uint32_t maximum = frameCount();
uint32_t clippedSize = size;
- if (clippedSize < minimum) {
+ if (maximum < minimum) {
+ clippedSize = maximum;
+ } else if (clippedSize < minimum) {
clippedSize = minimum;
} else if (clippedSize > maximum) {
clippedSize = maximum;