summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorAndy Hung <hunga@google.com>2015-04-01 01:41:41 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-04-01 01:41:41 +0000
commit7260af3af195da47cf9d5ad51cb854627f8fd672 (patch)
treee948ba71284ce1b2d415c0e427d8d039af9786c3 /media
parent253930b927d375413a42f170fa1ef8d98b8f7cb4 (diff)
parent5cbb5785a58655e21f5f7805274b8c78b986216b (diff)
downloadframeworks_av-7260af3af195da47cf9d5ad51cb854627f8fd672.zip
frameworks_av-7260af3af195da47cf9d5ad51cb854627f8fd672.tar.gz
frameworks_av-7260af3af195da47cf9d5ad51cb854627f8fd672.tar.bz2
Merge "Reject sample rate changes for fast tracks"
Diffstat (limited to 'media')
-rw-r--r--media/libmedia/AudioTrack.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp
index 98f64fe..ce30c62 100644
--- a/media/libmedia/AudioTrack.cpp
+++ b/media/libmedia/AudioTrack.cpp
@@ -667,14 +667,18 @@ void AudioTrack::getAuxEffectSendLevel(float* level) const
status_t AudioTrack::setSampleRate(uint32_t rate)
{
- if (mIsTimed || isOffloadedOrDirect()) {
+ AutoMutex lock(mLock);
+ if (rate == mSampleRate) {
+ return NO_ERROR;
+ }
+ if (mIsTimed || isOffloadedOrDirect_l() || (mFlags & AUDIO_OUTPUT_FLAG_FAST)) {
return INVALID_OPERATION;
}
-
- AutoMutex lock(mLock);
if (mOutput == AUDIO_IO_HANDLE_NONE) {
return NO_INIT;
}
+ // NOTE: it is theoretically possible, but highly unlikely, that a device change
+ // could mean a previously allowed sampling rate is no longer allowed.
uint32_t afSamplingRate;
if (AudioSystem::getSamplingRate(mOutput, &afSamplingRate) != NO_ERROR) {
return NO_INIT;