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

Commit 57088b5c authored by Marco Nelissen's avatar Marco Nelissen
Browse files

Clear effect buffer before sending to chain

otherwise the effect might get a buffer with previous data instead
of silence.

Bug: 18023017
Change-Id: Ic6be5ce0e74552aac2a0cce9c660893f9ad27f5c
parent 380757ba
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -3670,6 +3670,9 @@ track_is_ready: ;

    if (getEffectChain_l(AUDIO_SESSION_OUTPUT_MIX) != 0) {
        mEffectBufferValid = true;
        // as long as there are effects we should clear the effects buffer, to avoid
        // passing a non-clean buffer to the effect chain
        memset(mEffectBuffer, 0, mEffectBufferSize);
    }

    // sink or mix buffer must be cleared if all tracks are connected to an
@@ -3690,10 +3693,6 @@ track_is_ready: ;
            // must imply MIXER_TRACKS_READY.
            // Later, we may clear buffers regardless, and skip much of this logic.
        }
        // TODO - either mEffectBuffer or mSinkBuffer needs to be cleared.
        if (mEffectBufferValid) {
            memset(mEffectBuffer, 0, mEffectBufferSize);
        }
        // FIXME as a performance optimization, should remember previous zero status
        memset(mSinkBuffer, 0, mNormalFrameCount * mFrameSize);
    }