@@ -184,25 +184,25 @@ const char *SoundDriver_XAudio2::Start(c
// Create a source voice to stream our audio
WAVEFORMATEX wfex;
wfex.wFormatTag = WAVE_FORMAT_PCM;
wfex.nChannels = 2;
wfex.wBitsPerSample = 16;
wfex.nSamplesPerSec = GetDriverParamInt(parm, "hz", 44100);
wfex.nBlockAlign = (wfex.nChannels * wfex.wBitsPerSample) / 8;
wfex.nAvgBytesPerSec = wfex.nSamplesPerSec * wfex.nBlockAlign;
// Limit buffer size to prevent overflows
int bufsize = GetDriverParamInt(parm, "bufsize", 8192);
bufsize = min(bufsize, UINT16_MAX);
bufsize = std::min<int>(bufsize, UINT16_MAX);
_voice_context = new StreamingVoiceContext(bufsize * 4);
if (_voice_context == nullptr)
{
_mastering_voice->DestroyVoice();
_xaudio2.Reset();
FreeLibrary(_xaudio_dll_handle);
CoUninitialize();
return "Failed to create streaming voice context";
}