Alex Villacís Lasso wrote:
This was found while digging for the source of the mp3 jittering
problem. Both native L3CODECA.ACM and winemp3 trigger this
division-by-zero exception with ACMAPP.EXE demonstration program from
MSDN when using the Player! menu item with a MP3-encoded .WAV file
unless this patch is applied.
Changelog:
* Prevent division-by-zero exception on codecs that do not report
bits-per-sample.
Alex Villacís Lasso
------------------------------------------------------------------------
diff -ur wine-0.9.7-cvs/dlls/winmm/mciwave/mciwave.c
wine-0.9.7-cvs-patch/dlls/winmm/mciwave/mciwave.c
--- wine-0.9.7-cvs/dlls/winmm/mciwave/mciwave.c 2005-12-06 16:28:17.000000000
-0500
+++ wine-0.9.7-cvs-patch/dlls/winmm/mciwave/mciwave.c 2006-02-12
11:52:25.000000000 -0500
@@ -205,7 +205,7 @@
ret = val;
break;
case MCI_FORMAT_SAMPLES: /* FIXME: is this correct ? */
- ret = (val * 8) / wmw->lpWaveFormat->wBitsPerSample;
+ ret = (val * 8) / (wmw->lpWaveFormat->wBitsPerSample ?
wmw->lpWaveFormat->wBitsPerSample : 1);
break;
I think the overall fix is wrong. The computation is correct for PCM
files, not for MP3 (and any other non linear compression format).
You should check how native mciavi32 behaves here.
A+
--
Eric Pouech