From 0f78def92f82de3c045ae484d1363610058f8118 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Thu, 17 Nov 2016 23:24:47 +0000 Subject: [PATCH] [WINEMP3.ACM] Sync with Wine Staging 1.9.23. CORE-12409 svn path=/trunk/; revision=73305 --- reactos/dll/win32/winemp3.acm/mpegl3.c | 15 ++++++++++++++- reactos/media/doc/README.WINE | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/reactos/dll/win32/winemp3.acm/mpegl3.c b/reactos/dll/win32/winemp3.acm/mpegl3.c index 6acc6647004..5d779a5e10d 100644 --- a/reactos/dll/win32/winemp3.acm/mpegl3.c +++ b/reactos/dll/win32/winemp3.acm/mpegl3.c @@ -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; } /*********************************************************************** diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index 01cceedf887..2dd2850b1ea 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -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