diff --git a/src/engine/enginebuffer.cpp b/src/engine/enginebuffer.cpp index 6b6807050c5..4d3163bd3ad 100644 --- a/src/engine/enginebuffer.cpp +++ b/src/engine/enginebuffer.cpp @@ -1140,8 +1140,8 @@ void EngineBuffer::process(CSAMPLE* pOutput, const int iBufferSize) { m_pScaleST->setSampleRate(m_sampleRate); m_pScaleRB->setSampleRate(m_sampleRate); - bool bTrackLoading = m_iTrackLoading.loadAcquire() != 0; - if (!bTrackLoading && m_pause.tryLock()) { + bool hasStableTrack = m_pTrackLoaded->toBool() && m_iTrackLoading.loadAcquire() == 0; + if (hasStableTrack && m_pause.tryLock()) { processTrackLocked(pOutput, iBufferSize, m_sampleRate); // release the pauselock m_pause.unlock();