diff options
author | Andy Hung <hunga@google.com> | 2014-05-29 15:53:09 -0700 |
---|---|---|
committer | Andy Hung <hunga@google.com> | 2014-05-29 15:56:33 -0700 |
commit | 1d26ddf715182d6082804ff70086c47fb8c354b8 (patch) | |
tree | 83c47b23e1ba0cd3180d5845746c83c6fba3c037 | |
parent | 798ce934571bc7eb5715bf1c03cbe5436a1220e3 (diff) | |
download | frameworks_av-1d26ddf715182d6082804ff70086c47fb8c354b8.zip frameworks_av-1d26ddf715182d6082804ff70086c47fb8c354b8.tar.gz frameworks_av-1d26ddf715182d6082804ff70086c47fb8c354b8.tar.bz2 |
Avoid resetting BufferProviders in mixer unnecessarily
Change-Id: Iad85c4dfd21be1dbf89dc11906106b34219376f8
-rw-r--r-- | services/audioflinger/AudioMixer.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/services/audioflinger/AudioMixer.cpp b/services/audioflinger/AudioMixer.cpp index 8d57451..ace3bf1 100644 --- a/services/audioflinger/AudioMixer.cpp +++ b/services/audioflinger/AudioMixer.cpp @@ -750,6 +750,9 @@ void AudioMixer::setBufferProvider(int name, AudioBufferProvider* bufferProvider name -= TRACK0; ALOG_ASSERT(uint32_t(name) < MAX_NUM_TRACKS, "bad track name %d", name); + if (mState.tracks[name].mInputBufferProvider == bufferProvider) { + return; // don't reset any buffer providers if identical. + } if (mState.tracks[name].mReformatBufferProvider != NULL) { mState.tracks[name].mReformatBufferProvider->reset(); } else if (mState.tracks[name].downmixerBufferProvider != NULL) { |