Bruno Jesus : msacm32: Quit on unsupported destination format in PCM_FormatSuggest.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Sep 9 09:57:36 CDT 2015
Module: wine
Branch: master
Commit: c6afba8979500af43cb48fee1c33eae5fb544d03
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c6afba8979500af43cb48fee1c33eae5fb544d03
Author: Bruno Jesus <00cpxxx at gmail.com>
Date: Wed Sep 9 12:10:55 2015 +0800
msacm32: Quit on unsupported destination format in PCM_FormatSuggest.
---
dlls/msacm32/pcmconverter.c | 21 +++++++++++++--------
dlls/msacm32/tests/msacm.c | 1 -
2 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/dlls/msacm32/pcmconverter.c b/dlls/msacm32/pcmconverter.c
index cf92d93..f56d155 100644
--- a/dlls/msacm32/pcmconverter.c
+++ b/dlls/msacm32/pcmconverter.c
@@ -839,28 +839,33 @@ static LRESULT PCM_FormatSuggest(PACMDRVFORMATSUGGEST adfs)
/* 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) {
diff --git a/dlls/msacm32/tests/msacm.c b/dlls/msacm32/tests/msacm.c
index e897fc9..88ad330 100644
--- a/dlls/msacm32/tests/msacm.c
+++ b/dlls/msacm32/tests/msacm.c
@@ -652,7 +652,6 @@ todo_wine
| ACM_FORMATSUGGESTF_WBITSPERSAMPLE
| ACM_FORMATSUGGESTF_WFORMATTAG;
rc = acmFormatSuggest(NULL, &src, &dst, sizeof(dst), suggest);
-todo_wine
ok(rc == ACMERR_NOTPOSSIBLE, "failed with error 0x%x\n", rc);
memset(&dst, 0, sizeof(dst));
suggest = 0;
More information about the wine-cvs
mailing list