Normal tracks use triple buffering if resampling
Bug: 26230944
Change-Id: I40f6cd7147db1be95f297af406c77c6404a76f37
diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp
index 472f6c0..3ea5f15 100644
--- a/media/libmedia/AudioTrack.cpp
+++ b/media/libmedia/AudioTrack.cpp
@@ -1468,8 +1468,9 @@
// notify every HAL buffer, regardless of the size of the track buffer
maxNotificationFrames = afFrameCountHAL;
} else {
- // For normal tracks, use double-buffering
- const int nBuffering = 2;
+ // For normal tracks, use at least double-buffering if no sample rate conversion,
+ // or at least triple-buffering if there is sample rate conversion
+ const int nBuffering = mOriginalSampleRate == mAfSampleRate ? 2 : 3;
maxNotificationFrames = frameCount / nBuffering;
}
if (mNotificationFramesAct == 0 || mNotificationFramesAct > maxNotificationFrames) {