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