diff --git a/README.md b/README.md index a642833..623db78 100644 --- a/README.md +++ b/README.md @@ -134,6 +134,7 @@ example:
``` +- Install the IVSHMEM driver from [here](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/upstream-virtio/). - To make the driver use IVSHMEM, add a DWORD `HKLM\SYSTEM\CurrentControlSet\Services\Scream\Options\UseIVSHMEM`, with the value being the size of the device in MB (2, as recommended). Please note that scream will identify the device by its size, so you should only diff --git a/Scream/minwave.cpp b/Scream/minwave.cpp index 55726ce..34d9143 100644 --- a/Scream/minwave.cpp +++ b/Scream/minwave.cpp @@ -529,9 +529,9 @@ Return Value: else if ((pWfx->wFormatTag == WAVE_FORMAT_EXTENSIBLE) && (pWfx->cbSize == CB_EXTENSIBLE)) { WAVEFORMATEXTENSIBLE* pWfxT = (WAVEFORMATEXTENSIBLE*)pWfx; // The channel mask can be greater than 0x07FF, but only in exotic configurations. - // It's important that the number of channels is even, to fit in PCM_PAYLOAD_SIZE. The only known case of odd number is 6.1 surround. + // It's important that the number of channels is even, to fit in PCM_PAYLOAD_SIZE. Mono is an exception. // This restriction doesn't apply if IVSHMEM is used, because the packet size is dynamic there. - if ((pWfx->nChannels >= 1) && (pWfx->nChannels <= 8) && (pWfxT->dwChannelMask <= 0x07FF) && (g_UseIVSHMEM || pWfx->nChannels % 2 == 0)) { + if ((pWfx->nChannels >= 1) && (pWfx->nChannels <= 8) && (pWfxT->dwChannelMask <= 0x07FF) && (g_UseIVSHMEM || pWfx->nChannels == 1 || pWfx->nChannels % 2 == 0)) { ntStatus = STATUS_SUCCESS; } }