Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22b74bcd authored by Glenn Kasten's avatar Glenn Kasten Committed by The Android Automerger
Browse files

A reference cannot be re-bound

Bug: 8213067
Bug: 6490974
Change-Id: If546215641fbc9a0fb1e8af8b85cc01f0a4b26ab
parent c6d26a3c
Loading
Loading
Loading
Loading
+24 −20
Original line number Diff line number Diff line
@@ -1064,6 +1064,7 @@ void AudioMixer::process__nop(state_t* state, int64_t pts)
        // avoid multiple memset() on same buffer
        uint32_t e1 = e0, e2 = e0;
        int i = 31 - __builtin_clz(e1);
        {
            track_t& t1 = state->tracks[i];
            e2 &= ~(1<<i);
            while (e2) {
@@ -1077,20 +1078,23 @@ void AudioMixer::process__nop(state_t* state, int64_t pts)
            e0 &= ~(e1);

            memset(t1.mainBuffer, 0, bufSize);
        }

        while (e1) {
            i = 31 - __builtin_clz(e1);
            e1 &= ~(1<<i);
            t1 = state->tracks[i];
            {
                track_t& t3 = state->tracks[i];
                size_t outFrames = state->frameCount;
                while (outFrames) {
                t1.buffer.frameCount = outFrames;
                    t3.buffer.frameCount = outFrames;
                    int64_t outputPTS = calculateOutputPTS(
                    t1, pts, state->frameCount - outFrames);
                t1.bufferProvider->getNextBuffer(&t1.buffer, outputPTS);
                if (t1.buffer.raw == NULL) break;
                outFrames -= t1.buffer.frameCount;
                t1.bufferProvider->releaseBuffer(&t1.buffer);
                        t3, pts, state->frameCount - outFrames);
                    t3.bufferProvider->getNextBuffer(&t3.buffer, outputPTS);
                    if (t3.buffer.raw == NULL) break;
                    outFrames -= t3.buffer.frameCount;
                    t3.bufferProvider->releaseBuffer(&t3.buffer);
                }
            }
        }
    }