diff options
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 |
commit | 6f7e097ee5a495b224dc64edc64e8fc36eb9ee44 (patch) | |
tree | ef14a7e3142edbc5765d37d90df2b1d73c49b628 /libs/audioflinger/AudioFlinger.cpp | |
parent | 36093d4e5f6a77902fb9498453537ef6ef73e025 (diff) | |
download | frameworks_base-6f7e097ee5a495b224dc64edc64e8fc36eb9ee44.zip frameworks_base-6f7e097ee5a495b224dc64edc64e8fc36eb9ee44.tar.gz frameworks_base-6f7e097ee5a495b224dc64edc64e8fc36eb9ee44.tar.bz2 |
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.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libs/audioflinger/AudioFlinger.cpp b/libs/audioflinger/AudioFlinger.cpp index d019097..2e947d6 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); } |