diff --git a/dll/win32/wdmaud.drv/legacy.c b/dll/win32/wdmaud.drv/legacy.c index 00c9507341..29d97e25b8 100644 --- a/dll/win32/wdmaud.drv/legacy.c +++ b/dll/win32/wdmaud.drv/legacy.c @@ -519,6 +519,17 @@ WdmAudSetWaveDeviceFormatByLegacy( DeviceInfo.u.WaveFormatEx.nSamplesPerSec = WaveFormat->nSamplesPerSec; DeviceInfo.u.WaveFormatEx.nBlockAlign = WaveFormat->nBlockAlign; DeviceInfo.u.WaveFormatEx.nAvgBytesPerSec = WaveFormat->nAvgBytesPerSec; + + if (DeviceInfo.u.WaveFormatEx.nSamplesPerSec == 0) + { + DPRINT1("DeviceInfo.u.WaveFormatEx.nSamplesPerSec is zero. Using 44100 instead.\n"); + DeviceInfo.u.WaveFormatEx.nSamplesPerSec = 44100; + } + if (DeviceInfo.u.WaveFormatEx.nChannels == 0) + { + DPRINT1("DeviceInfo.u.WaveFormatEx.nChannels is zero. Using 2 instead.\n"); + DeviceInfo.u.WaveFormatEx.nChannels = 2; + } DeviceInfo.u.WaveFormatEx.wBitsPerSample = (DeviceInfo.u.WaveFormatEx.nAvgBytesPerSec * 8) / (DeviceInfo.u.WaveFormatEx.nSamplesPerSec * DeviceInfo.u.WaveFormatEx.nChannels); #endif