diff --git a/src/audio_core/stream.cpp b/src/audio_core/stream.cpp index 4ca98f8ea7..b89ef6649a 100644 --- a/src/audio_core/stream.cpp +++ b/src/audio_core/stream.cpp @@ -11,8 +11,10 @@ #include "audio_core/stream.h" #include "common/assert.h" #include "common/logging/log.h" +#include "core/core.h" #include "core/core_timing.h" #include "core/core_timing_util.h" +#include "core/perf_stats.h" #include "core/settings.h" namespace AudioCore { @@ -61,8 +63,11 @@ Stream::State Stream::GetState() const { s64 Stream::GetBufferReleaseCycles(const Buffer& buffer) const { const std::size_t num_samples{buffer.GetSamples().size() / GetNumChannels()}; - const auto us = - std::chrono::microseconds((static_cast(num_samples) * 1000000) / sample_rate); + const double time_scale{Settings::values.enable_realtime_audio + ? Core::System::GetInstance().GetPerfStats().GetLastFrameTimeScale() + : 1.0f}; + const auto us{std::chrono::microseconds( + (static_cast(num_samples) * static_cast(1000000 / time_scale)) / sample_rate)}; return Core::Timing::usToCycles(us); }