diff options
author | Eric Laurent <elaurent@google.com> | 2014-10-10 15:31:38 -0700 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2014-10-10 15:39:14 -0700 |
commit | 95511add8ad4d440c67272503559f5042c4e6f1f (patch) | |
tree | a605077307327ac30bf9b553ad4e48bfa300e8cf /services | |
parent | f5ada6edcc83bb1b313abcd4c4fbdc4f7724f04d (diff) | |
download | frameworks_av-95511add8ad4d440c67272503559f5042c4e6f1f.zip frameworks_av-95511add8ad4d440c67272503559f5042c4e6f1f.tar.gz frameworks_av-95511add8ad4d440c67272503559f5042c4e6f1f.tar.bz2 |
audio policy: add support for ro.audio.media_deep_buffer
Bug: 17931716.
Change-Id: Ife170f20f5d02b71059fbd384bd29759fafee826
Diffstat (limited to 'services')
-rw-r--r-- | services/audiopolicy/AudioPolicyManager.cpp | 12 | ||||
-rw-r--r-- | services/audiopolicy/AudioPolicyManager.h | 2 |
2 files changed, 13 insertions, 1 deletions
diff --git a/services/audiopolicy/AudioPolicyManager.cpp b/services/audiopolicy/AudioPolicyManager.cpp index 536987a..e4d785c 100644 --- a/services/audiopolicy/AudioPolicyManager.cpp +++ b/services/audiopolicy/AudioPolicyManager.cpp @@ -926,6 +926,10 @@ audio_io_handle_t AudioPolicyManager::getOutputForDevice( if ((flags & AUDIO_OUTPUT_FLAG_HW_AV_SYNC) != 0) { flags = (audio_output_flags_t)(flags | AUDIO_OUTPUT_FLAG_DIRECT); } + if (mForceDeepBufferForMedia && (flags & AUDIO_OUTPUT_FLAG_DIRECT) == 0 && + stream == AUDIO_STREAM_MUSIC) { + flags = (audio_output_flags_t)(flags | AUDIO_OUTPUT_FLAG_DEEP_BUFFER); + } sp<IOProfile> profile; @@ -2653,8 +2657,14 @@ AudioPolicyManager::AudioPolicyManager(AudioPolicyClientInterface *clientInterfa mTotalEffectsCpuLoad(0), mTotalEffectsMemory(0), mA2dpSuspended(false), mSpeakerDrcEnabled(false), mNextUniqueId(1), - mAudioPortGeneration(1) + mAudioPortGeneration(1), + mForceDeepBufferForMedia(false) { + char propValue[PROPERTY_VALUE_MAX]; + if (property_get("ro.audio.media_deep_buffer", propValue, "0")) { + mForceDeepBufferForMedia = atoi(propValue); + } + mUidCached = getuid(); mpClientInterface = clientInterface; diff --git a/services/audiopolicy/AudioPolicyManager.h b/services/audiopolicy/AudioPolicyManager.h index 0ea7b97..b57a295 100644 --- a/services/audiopolicy/AudioPolicyManager.h +++ b/services/audiopolicy/AudioPolicyManager.h @@ -806,6 +806,8 @@ protected: sp<AudioPatch> mCallTxPatch; sp<AudioPatch> mCallRxPatch; + bool mForceDeepBufferForMedia; + #ifdef AUDIO_POLICY_TEST Mutex mLock; Condition mWaitWorkCV; |