summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2014-10-10 15:31:38 -0700
committerEric Laurent <elaurent@google.com>2014-10-10 15:39:14 -0700
commit95511add8ad4d440c67272503559f5042c4e6f1f (patch)
treea605077307327ac30bf9b553ad4e48bfa300e8cf /services
parentf5ada6edcc83bb1b313abcd4c4fbdc4f7724f04d (diff)
downloadframeworks_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.cpp12
-rw-r--r--services/audiopolicy/AudioPolicyManager.h2
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;