summaryrefslogtreecommitdiff
path: root/libs/audioflinger/AudioFlinger.cpp
diff options
context:
space:
mode:
author Eric Laurent <elaurent@google.com> 2009-08-10 08:15:12 -0700
committer Eric Laurent <elaurent@google.com> 2009-08-10 08:15:12 -0700
commit878c0e1d686bbd804cf33e3b4ea8304f79523263 (patch)
treea9b3ff8d2d7ecdd42810dca14f967143f0ee0ace /libs/audioflinger/AudioFlinger.cpp
parentae07aadd2620297bb1296448b088ef2155ec1a77 (diff)
Limit AudioFlinger mixer track sampling rate.
When changing the audio output stream sampling rate with setParameters() make sure that all tracks have a sampling rate less or equal to 2 times the new output sampling rate.
Diffstat (limited to 'libs/audioflinger/AudioFlinger.cpp')
-rw-r--r--libs/audioflinger/AudioFlinger.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/libs/audioflinger/AudioFlinger.cpp b/libs/audioflinger/AudioFlinger.cpp
index d019097c5c..2e947d6b7d 100644
--- a/libs/audioflinger/AudioFlinger.cpp
+++ b/libs/audioflinger/AudioFlinger.cpp
@@ -1512,6 +1512,10 @@ bool AudioFlinger::MixerThread::checkForNewParameters_l()
int name = getTrackName_l();
if (name < 0) break;
mTracks[i]->mName = name;
+ // limit track sample rate to 2 x new output sample rate
+ if (mTracks[i]->mCblk->sampleRate > 2 * sampleRate()) {
+ mTracks[i]->mCblk->sampleRate = 2 * sampleRate();
+ }
}
sendConfigEvent_l(AudioSystem::OUTPUT_CONFIG_CHANGED);
}