summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSharad Sangle <assangle@codeaurora.org>2015-12-24 19:58:54 +0530
committerSteve Kondik <steve@cyngn.com>2016-01-18 23:52:20 -0800
commitf6e8c701024f6c5dac552e794dcc61016a7f1bf7 (patch)
treed4809dc1e96cb290bd277c5d61376500506ee21c
parent427887bc50ea2d9297f2710843a7c9b5c508f0fd (diff)
downloadframeworks_av-f6e8c701024f6c5dac552e794dcc61016a7f1bf7.zip
frameworks_av-f6e8c701024f6c5dac552e794dcc61016a7f1bf7.tar.gz
frameworks_av-f6e8c701024f6c5dac552e794dcc61016a7f1bf7.tar.bz2
AudioMixer: delete reformatBuffer provider in proper order
If mixer is creating reformatBufferProvider and downMixerBufferProvider while adding a track it first creates downMixerProvider then reformatBufferProvider. While deleting track it first deletes downMixerBufferProvider and then reformatBufferProvider, which should be in reverse order, the object created last should be deleted first. Change-Id: I844e7862280fe37c3167b31e92bbb27aa9463315
-rw-r--r--services/audioflinger/AudioMixer.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/services/audioflinger/AudioMixer.cpp b/services/audioflinger/AudioMixer.cpp
index 27a2f65..b830985 100644
--- a/services/audioflinger/AudioMixer.cpp
+++ b/services/audioflinger/AudioMixer.cpp
@@ -445,10 +445,10 @@ void AudioMixer::deleteTrackName(int name)
// delete the resampler
delete track.resampler;
track.resampler = NULL;
- // delete the downmixer
- mState.tracks[name].unprepareForDownmix();
// delete the reformatter
mState.tracks[name].unprepareForReformat();
+ // delete the downmixer
+ mState.tracks[name].unprepareForDownmix();
// delete the timestretch provider
delete track.mTimestretchBufferProvider;
track.mTimestretchBufferProvider = NULL;