System: Fix sync to host refresh audio stretching
This commit is contained in:
@ -2681,6 +2681,11 @@ float System::GetTargetSpeed()
|
||||
return s_target_speed;
|
||||
}
|
||||
|
||||
float System::GetAudioNominalRate()
|
||||
{
|
||||
return s_throttler_enabled ? s_target_speed : 1.0f;
|
||||
}
|
||||
|
||||
void System::UpdatePerformanceCounters()
|
||||
{
|
||||
const float frame_time = static_cast<float>(s_frame_timer.GetTimeMillisecondsAndReset());
|
||||
@ -2869,15 +2874,7 @@ void System::UpdateSpeedLimiterState()
|
||||
// Update audio output.
|
||||
AudioStream* stream = SPU::GetOutputStream();
|
||||
stream->SetOutputVolume(GetAudioOutputVolume());
|
||||
|
||||
// Adjust nominal rate when resampling, or syncing to host.
|
||||
const bool rate_adjust =
|
||||
(s_syncing_to_host || g_settings.audio_stream_parameters.stretch_mode == AudioStretchMode::Resample) &&
|
||||
s_target_speed > 0.0f;
|
||||
stream->SetNominalRate(rate_adjust ? s_target_speed : 1.0f);
|
||||
|
||||
if (old_target_speed < s_target_speed)
|
||||
stream->UpdateTargetTempo(s_target_speed);
|
||||
stream->SetNominalRate(GetAudioNominalRate());
|
||||
|
||||
UpdateThrottlePeriod();
|
||||
ResetThrottler();
|
||||
|
||||
Reference in New Issue
Block a user