From f65d01b5d35b2339d2b5afaa0f85cdcf832b4636 Mon Sep 17 00:00:00 2001
From: gdkchan <gab.dark.100@gmail.com>
Date: Mon, 27 Dec 2021 18:25:21 -0300
Subject: [PATCH] Use minimum stream sample count on SDL2 audio backend (#2948)

---
 Ryujinx.Audio.Backends.SDL2/SDL2HardwareDeviceSession.cs | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/Ryujinx.Audio.Backends.SDL2/SDL2HardwareDeviceSession.cs b/Ryujinx.Audio.Backends.SDL2/SDL2HardwareDeviceSession.cs
index 33e1632dde..b39f196ac1 100644
--- a/Ryujinx.Audio.Backends.SDL2/SDL2HardwareDeviceSession.cs
+++ b/Ryujinx.Audio.Backends.SDL2/SDL2HardwareDeviceSession.cs
@@ -42,11 +42,13 @@ namespace Ryujinx.Audio.Backends.SDL2
 
         private void EnsureAudioStreamSetup(AudioBuffer buffer)
         {
-            bool needAudioSetup = _outputStream == 0 || ((uint)GetSampleCount(buffer) % _sampleCount) != 0;
+            uint bufferSampleCount = (uint)GetSampleCount(buffer);
+            bool needAudioSetup = _outputStream == 0 ||
+                (bufferSampleCount >= Constants.TargetSampleCount && bufferSampleCount < _sampleCount);
 
             if (needAudioSetup)
             {
-                _sampleCount = Math.Max(Constants.TargetSampleCount, (uint)GetSampleCount(buffer));
+                _sampleCount = Math.Max(Constants.TargetSampleCount, bufferSampleCount);
 
                 uint newOutputStream = SDL2HardwareDeviceDriver.OpenStream(RequestedSampleFormat, RequestedSampleRate, RequestedChannelCount, _sampleCount, _callbackDelegate);