From 1948eb3ea6eee336e8cdab9b0c693f93f5f19993 Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Fri, 13 Apr 2012 16:50:19 -0700 Subject: Add support for deep audio buffers Allow AudioSink to use deep audio buffering when the source is audio only and its duration is more than a certain threshold. This helps improve battery life but implies higher audio latency. Change-Id: Ie79915b61c370292f05aabda9779356570e03cbb --- media/libstagefright/AwesomePlayer.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'media/libstagefright/AwesomePlayer.cpp') diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp index b67476b..b15cb67 100644 --- a/media/libstagefright/AwesomePlayer.cpp +++ b/media/libstagefright/AwesomePlayer.cpp @@ -870,7 +870,18 @@ status_t AwesomePlayer::play_l() { if (mAudioSource != NULL) { if (mAudioPlayer == NULL) { if (mAudioSink != NULL) { - mAudioPlayer = new AudioPlayer(mAudioSink, this); + bool allowDeepBuffering; + int64_t cachedDurationUs; + bool eos; + if (mVideoSource == NULL && (mDurationUs > AUDIO_SINK_MIN_DEEP_BUFFER_DURATION_US || + getCachedDuration_l(&cachedDurationUs, &eos) && + cachedDurationUs > AUDIO_SINK_MIN_DEEP_BUFFER_DURATION_US)) { + allowDeepBuffering = true; + } else { + allowDeepBuffering = false; + } + + mAudioPlayer = new AudioPlayer(mAudioSink, allowDeepBuffering, this); mAudioPlayer->setSource(mAudioSource); mTimeSource = mAudioPlayer; -- cgit v1.1