TRACE("(%p, %p, %p, %d, %d)\n",
had, pwfxSrc, pwfxDst, cbwfxDst, fdwSuggest);
+ if (!pwfxSrc || !pwfxDst)
+ return MMSYSERR_INVALPARAM;
+
if (fdwSuggest & ~(ACM_FORMATSUGGESTF_NCHANNELS|ACM_FORMATSUGGESTF_NSAMPLESPERSEC|
ACM_FORMATSUGGESTF_WBITSPERSAMPLE|ACM_FORMATSUGGESTF_WFORMATTAG))
return MMSYSERR_INVALFLAG;
/* some tests ... */
if (adfs->cbwfxSrc < sizeof(PCMWAVEFORMAT) ||
- adfs->cbwfxDst < sizeof(PCMWAVEFORMAT) ||
- PCM_GetFormatIndex(adfs->pwfxSrc) == 0xFFFFFFFF) {
+ adfs->cbwfxDst < sizeof(PCMWAVEFORMAT) ||
+ PCM_GetFormatIndex(adfs->pwfxSrc) == 0xFFFFFFFF) {
WARN("not possible\n");
return ACMERR_NOTPOSSIBLE;
}
/* is no suggestion for destination, then copy source value */
if (!(adfs->fdwSuggest & ACM_FORMATSUGGESTF_NCHANNELS)) {
- adfs->pwfxDst->nChannels = adfs->pwfxSrc->nChannels;
+ adfs->pwfxDst->nChannels = adfs->pwfxSrc->nChannels;
}
if (!(adfs->fdwSuggest & ACM_FORMATSUGGESTF_NSAMPLESPERSEC)) {
- adfs->pwfxDst->nSamplesPerSec = adfs->pwfxSrc->nSamplesPerSec;
+ adfs->pwfxDst->nSamplesPerSec = adfs->pwfxSrc->nSamplesPerSec;
}
if (!(adfs->fdwSuggest & ACM_FORMATSUGGESTF_WBITSPERSAMPLE)) {
- adfs->pwfxDst->wBitsPerSample = adfs->pwfxSrc->wBitsPerSample;
+ adfs->pwfxDst->wBitsPerSample = adfs->pwfxSrc->wBitsPerSample;
}
if (!(adfs->fdwSuggest & ACM_FORMATSUGGESTF_WFORMATTAG)) {
- if (adfs->pwfxSrc->wFormatTag != WAVE_FORMAT_PCM) {
- WARN("not possible\n");
+ if (adfs->pwfxSrc->wFormatTag != WAVE_FORMAT_PCM) {
+ WARN("source format 0x%x not supported\n", adfs->pwfxSrc->wFormatTag);
+ return ACMERR_NOTPOSSIBLE;
+ }
+ adfs->pwfxDst->wFormatTag = adfs->pwfxSrc->wFormatTag;
+ } else {
+ if (adfs->pwfxDst->wFormatTag != WAVE_FORMAT_PCM) {
+ WARN("destination format 0x%x not supported\n", adfs->pwfxDst->wFormatTag);
return ACMERR_NOTPOSSIBLE;
}
- adfs->pwfxDst->wFormatTag = adfs->pwfxSrc->wFormatTag;
}
/* check if result is ok */
if (PCM_GetFormatIndex(adfs->pwfxDst) == 0xFFFFFFFF) {
reactos/dll/win32/mmdevapi # Synced to WineStaging-1.7.47
reactos/dll/win32/mpr # Synced to WineStaging-1.7.55
reactos/dll/win32/mprapi # Synced to WineStaging-1.7.47
-reactos/dll/win32/msacm32 # Synced to WineStaging-1.7.47
+reactos/dll/win32/msacm32 # Synced to WineStaging-1.7.55
reactos/dll/win32/msacm32/msacm32.drv # Synced to WineStaging-1.7.47
reactos/dll/win32/msadp32.acm # Synced to WineStaging-1.7.47
reactos/dll/win32/mscat32 # Synced to WineStaging-1.7.47