[WINEMP3.ACM] Sync with Wine Staging 1.9.23. CORE-12409
authorAmine Khaldi <amine.khaldi@reactos.org>
Thu, 17 Nov 2016 23:24:47 +0000 (23:24 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Thu, 17 Nov 2016 23:24:47 +0000 (23:24 +0000)
svn path=/trunk/; revision=73305

reactos/dll/win32/winemp3.acm/mpegl3.c
reactos/media/doc/README.WINE

index 6acc664..5d779a5 100644 (file)
@@ -215,6 +215,7 @@ static void MPEG3_Reset(PACMDRVSTREAMINSTANCE adsi, AcmMpeg3Data* aad)
  */
 static LRESULT MPEG3_StreamOpen(PACMDRVSTREAMINSTANCE adsi)
 {
+    LRESULT error = MMSYSERR_NOTSUPPORTED;
     AcmMpeg3Data*      aad;
     int err;
 
@@ -238,6 +239,18 @@ static     LRESULT MPEG3_StreamOpen(PACMDRVSTREAMINSTANCE adsi)
               adsi->pwfxSrc->wFormatTag == WAVE_FORMAT_MPEG) &&
              adsi->pwfxDst->wFormatTag == WAVE_FORMAT_PCM)
     {
+        if (adsi->pwfxSrc->wFormatTag == WAVE_FORMAT_MPEGLAYER3)
+        {
+            MPEGLAYER3WAVEFORMAT *formatmp3 = (MPEGLAYER3WAVEFORMAT *)adsi->pwfxSrc;
+
+            if (adsi->pwfxSrc->cbSize < MPEGLAYER3_WFX_EXTRA_BYTES ||
+                formatmp3->wID != MPEGLAYER3_ID_MPEG)
+            {
+                error = ACMERR_NOTPOSSIBLE;
+                goto theEnd;
+            }
+        }
+
        /* resampling or mono <=> stereo not available
          * MPEG3 algo only define 16 bit per sample output
          */
@@ -261,7 +274,7 @@ static      LRESULT MPEG3_StreamOpen(PACMDRVSTREAMINSTANCE adsi)
  theEnd:
     HeapFree(GetProcessHeap(), 0, aad);
     adsi->dwDriver = 0L;
-    return MMSYSERR_NOTSUPPORTED;
+    return error;
 }
 
 /***********************************************************************
index 01cceed..2dd2850 100644 (file)
@@ -198,7 +198,7 @@ reactos/dll/win32/wbemdisp            # Synced to WineStaging-1.9.16
 reactos/dll/win32/wbemprox            # Synced to WineStaging-1.9.23
 reactos/dll/win32/windowscodecs       # Synced to WineStaging-1.9.23
 reactos/dll/win32/windowscodecsext    # Synced to WineStaging-1.9.11
-reactos/dll/win32/winemp3.acm         # Synced to WineStaging-1.9.11
+reactos/dll/win32/winemp3.acm         # Synced to WineStaging-1.9.23
 reactos/dll/win32/wing32              # Synced to WineStaging-1.9.11
 reactos/dll/win32/winhttp             # Synced to WineStaging-1.9.16
 reactos/dll/win32/wininet             # Synced to WineStaging-1.9.16