[MSACM32] Sync with Wine Staging 1.7.55. CORE-10536
authorAmine Khaldi <amine.khaldi@reactos.org>
Sun, 22 Nov 2015 10:27:33 +0000 (10:27 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Sun, 22 Nov 2015 10:27:33 +0000 (10:27 +0000)
svn path=/trunk/; revision=70018

reactos/dll/win32/msacm32/format.c
reactos/dll/win32/msacm32/pcmconverter.c
reactos/media/doc/README.WINE

index cefdded..14bec09 100644 (file)
@@ -660,6 +660,9 @@ MMRESULT WINAPI acmFormatSuggest(HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
     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;
index cdbf8af..49143f9 100644 (file)
@@ -820,28 +820,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) {
index 5a85a11..eb76eee 100644 (file)
@@ -103,7 +103,7 @@ reactos/dll/win32/mlang               # Synced to WineStaging-1.7.47
 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