summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
e266d4e)
svn path=/trunk/; revision=70045
{
const unsigned char* in_src = src;
{
const unsigned char* in_src = src;
+ /* Catch a problem from Tomb Raider III (bug 21000) where it passes
+ * invalid data after a valid sequence of blocks */
+ if (*src > 6 || *(src + 1) > 6)
+ {
+ /* Recalculate the amount of used output buffer. We are not changing
+ * nsrc, let's assume the bad data was parsed */
+ *ndst -= nblock * nsamp_blk * adsi->pwfxDst->nBlockAlign;
+ WARN("Invalid ADPCM data, stopping conversion\n");
+ break;
+ }
coeffL = MSADPCM_CoeffSet[*src++];
coeffL = MSADPCM_CoeffSet[*src++];
coeffR = MSADPCM_CoeffSet[*src++];
ideltaL = R16(src); src += 2;
coeffR = MSADPCM_CoeffSet[*src++];
ideltaL = R16(src); src += 2;
if (ADPCM_GetFormatIndex(adfs->pwfxDst) == 0xFFFFFFFF) return ACMERR_NOTPOSSIBLE;
break;
case WAVE_FORMAT_ADPCM:
if (ADPCM_GetFormatIndex(adfs->pwfxDst) == 0xFFFFFFFF) return ACMERR_NOTPOSSIBLE;
break;
case WAVE_FORMAT_ADPCM:
+ if (adfs->cbwfxDst < sizeof(ADPCMWAVEFORMAT) + (7 - 1) * sizeof(ADPCMCOEFSET))
+ return ACMERR_NOTPOSSIBLE;
init_wfx_adpcm((ADPCMWAVEFORMAT*)adfs->pwfxDst);
/* check if result is ok */
if (ADPCM_GetFormatIndex(adfs->pwfxDst) == 0xFFFFFFFF) return ACMERR_NOTPOSSIBLE;
init_wfx_adpcm((ADPCMWAVEFORMAT*)adfs->pwfxDst);
/* check if result is ok */
if (ADPCM_GetFormatIndex(adfs->pwfxDst) == 0xFFFFFFFF) return ACMERR_NOTPOSSIBLE;
reactos/dll/win32/mprapi # 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.55
reactos/dll/win32/mprapi # 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.55
-reactos/dll/win32/msadp32.acm # Synced to WineStaging-1.7.47
+reactos/dll/win32/msadp32.acm # Synced to WineStaging-1.7.55
reactos/dll/win32/mscat32 # Synced to WineStaging-1.7.47
reactos/dll/win32/mscms # Synced to WineStaging-1.7.47
reactos/dll/win32/mscoree # Synced to Wine-1.5.4
reactos/dll/win32/mscat32 # Synced to WineStaging-1.7.47
reactos/dll/win32/mscms # Synced to WineStaging-1.7.47
reactos/dll/win32/mscoree # Synced to Wine-1.5.4