Alex Villacís Lasso wrote:
This check is necessary until local codec loading is in CVS. Failure scenario fixed is: app instructs to load local ACM codec, fails, doesn't notice failure, requests codec info, fails, again doesn't notice failure, submits zeroed structure to PCM converter --> assertion failed.
Changelog:
- Check for nAvgBytesPerSec == 0 in PCM converter instead of allowing
assertion to fail.
Alex Villacís Lasso
--- wine-0.9.5-cvs/dlls/msacm/pcmconverter.c 2005-11-28 15:57:25.000000000 -0500 +++ wine-0.9.5-cvs-patch/dlls/msacm/pcmconverter.c 2006-01-09 21:17:07.000000000 -0500 @@ -945,12 +945,20 @@ switch (adss->fdwSize) { case ACM_STREAMSIZEF_DESTINATION: /* cbDstLength => cbSrcLength */
- if (!adsi->pwfxDst->nAvgBytesPerSec) {
ERR("adsi->pwfxDst->nAvgBytesPerSec == %lu\n", adsi->pwfxDst->nAvgBytesPerSec);
return MMSYSERR_INVALPARAM;
- } adss->cbSrcLength = PCM_round(adss->cbDstLength & dstMask, adsi->pwfxSrc->nAvgBytesPerSec, adsi->pwfxDst->nAvgBytesPerSec) & srcMask; break; case ACM_STREAMSIZEF_SOURCE: /* cbSrcLength => cbDstLength */
- if (!adsi->pwfxSrc->nAvgBytesPerSec) {
ERR("adsi->pwfxSrc->nAvgBytesPerSec == %lu\n", adsi->pwfxSrc->nAvgBytesPerSec);
return MMSYSERR_INVALPARAM;
- } adss->cbDstLength = PCM_round(adss->cbSrcLength & srcMask, adsi->pwfxDst->nAvgBytesPerSec, adsi->pwfxSrc->nAvgBytesPerSec) & dstMask;
Any comment on this patch?
Alex Villacís Lasso