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

Commit 05083ac1 authored by Andy Hung's avatar Andy Hung
Browse files

EffectModule: robust computation of mMaxDisableWaitCnt

To compensate for overflow / underflow.

Test: Solo Tester and CTS effects
Bug: 70684279
Change-Id: I7ac3d74c43320a2c6427ba2b424c8edb5a0250b1
parent 62aef7d3
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -578,8 +578,11 @@ status_t AudioFlinger::EffectModule::configure()
        }
    }

    mMaxDisableWaitCnt = (MAX_DISABLE_TIME_MS * mConfig.outputCfg.samplingRate) /
            (1000 * mConfig.outputCfg.buffer.frameCount);
    // mConfig.outputCfg.buffer.frameCount cannot be zero.
    mMaxDisableWaitCnt = (uint32_t)std::max(
            (uint64_t)1, // mMaxDisableWaitCnt must be greater than zero.
            (uint64_t)MAX_DISABLE_TIME_MS * mConfig.outputCfg.samplingRate
                / ((uint64_t)1000 * mConfig.outputCfg.buffer.frameCount));

exit:
    // TODO: consider clearing mConfig on error.