summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@android.com>2014-01-29 17:53:44 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-01-29 17:53:44 +0000
commitd2dc66a223b611142da8a019ebde79e3f8dc18f5 (patch)
tree8955825ac7bd77217744b35ad071a7c950e5f539
parent06f7d1513ee325b5792ef26b77aeaae373f83ddc (diff)
parent1bf0eecd2ec6a3b3e29ad2c91bcefda76abef2fe (diff)
downloadframeworks_av-d2dc66a223b611142da8a019ebde79e3f8dc18f5.zip
frameworks_av-d2dc66a223b611142da8a019ebde79e3f8dc18f5.tar.gz
frameworks_av-d2dc66a223b611142da8a019ebde79e3f8dc18f5.tar.bz2
am 1bf0eecd: Merge "AudioMixer: Remove tracks from enabledTracks after reseting outTemp"
* commit '1bf0eecd2ec6a3b3e29ad2c91bcefda76abef2fe': AudioMixer: Remove tracks from enabledTracks after reseting outTemp
-rw-r--r--services/audioflinger/AudioMixer.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/services/audioflinger/AudioMixer.cpp b/services/audioflinger/AudioMixer.cpp
index df4e029..07dc6dd 100644
--- a/services/audioflinger/AudioMixer.cpp
+++ b/services/audioflinger/AudioMixer.cpp
@@ -1122,10 +1122,6 @@ void AudioMixer::process__genericNoResampling(state_t* state, int64_t pts)
t.bufferProvider->getNextBuffer(&t.buffer, pts);
t.frameCount = t.buffer.frameCount;
t.in = t.buffer.raw;
- // t.in == NULL can happen if the track was flushed just after having
- // been enabled for mixing.
- if (t.in == NULL)
- enabledTracks &= ~(1<<i);
}
e0 = enabledTracks;
@@ -1161,6 +1157,13 @@ void AudioMixer::process__genericNoResampling(state_t* state, int64_t pts)
aux = t.auxBuffer + numFrames;
}
while (outFrames) {
+ // t.in == NULL can happen if the track was flushed just after having
+ // been enabled for mixing.
+ if (t.in == NULL) {
+ enabledTracks &= ~(1<<i);
+ e1 &= ~(1<<i);
+ break;
+ }
size_t inFrames = (t.frameCount > outFrames)?outFrames:t.frameCount;
if (inFrames) {
t.hook(&t, outTemp + (BLOCKSIZE-outFrames)*MAX_NUM_CHANNELS, inFrames,