summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2014-10-11 00:23:54 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-10-11 00:23:54 +0000
commit6337f6032e7bdbf0b4654fb07512a00bd33ef696 (patch)
tree292f01377a5807e796639b99de5fa392b688616c /services/audiopolicy
parent92ab9962203f72c69308b0c2a3fed0702f6e1192 (diff)
parentffd5cdbd3e3faa203539e26adc755f860c8cac80 (diff)
downloadframeworks_av-6337f6032e7bdbf0b4654fb07512a00bd33ef696.zip
frameworks_av-6337f6032e7bdbf0b4654fb07512a00bd33ef696.tar.gz
frameworks_av-6337f6032e7bdbf0b4654fb07512a00bd33ef696.tar.bz2
am ffd5cdbd: Merge "audio policy: add support for ro.audio.media_deep_buffer" into lmp-dev
* commit 'ffd5cdbd3e3faa203539e26adc755f860c8cac80': audio policy: add support for ro.audio.media_deep_buffer
Diffstat (limited to 'services/audiopolicy')
-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 c437551..bb34416 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 7dbd73f..98ac66c 100644
--- a/services/audiopolicy/AudioPolicyManager.h
+++ b/services/audiopolicy/AudioPolicyManager.h
@@ -808,6 +808,8 @@ protected:
sp<AudioPatch> mCallTxPatch;
sp<AudioPatch> mCallRxPatch;
+ bool mForceDeepBufferForMedia;
+
#ifdef AUDIO_POLICY_TEST
Mutex mLock;
Condition mWaitWorkCV;