[IMAADP32.ACM] Sync with Wine Staging 2.16. CORE-13762

0f0fb98 imaadp32.acm: Fix nibble ordering.
2a1c1a4 imaadp32.acm: Fix block size calculations.

svn path=/trunk/; revision=75879
This commit is contained in:
Amine Khaldi 2017-09-17 22:54:07 +00:00
parent d848cc9cc3
commit 6a84c2d5cb
2 changed files with 6 additions and 13 deletions

View file

@ -156,7 +156,7 @@ static void init_wfx_ima_adpcm(IMAADPCMWAVEFORMAT* awfx/*, DWORD nba*/)
} }
pwfx->cbSize = sizeof(WORD); pwfx->cbSize = sizeof(WORD);
awfx->wSamplesPerBlock = (pwfx->nBlockAlign - (4 * pwfx->nChannels) * 2) / pwfx->nChannels + 1; awfx->wSamplesPerBlock = (pwfx->nBlockAlign - (4 * pwfx->nChannels)) * (2 / pwfx->nChannels) + 1;
pwfx->nAvgBytesPerSec = (pwfx->nSamplesPerSec * pwfx->nBlockAlign) / awfx->wSamplesPerBlock; pwfx->nAvgBytesPerSec = (pwfx->nSamplesPerSec * pwfx->nBlockAlign) / awfx->wSamplesPerBlock;
} }
@ -447,7 +447,7 @@ static void cvtSS16imaK(PACMDRVSTREAMINSTANCE adsi,
&stepIndexL, &sampleL); &stepIndexL, &sampleL);
code2 = generate_nibble(R16(src + (4 * i + 2) * 2), code2 = generate_nibble(R16(src + (4 * i + 2) * 2),
&stepIndexL, &sampleL); &stepIndexL, &sampleL);
*dst++ = (code1 << 4) | code2; *dst++ = (code2 << 4) | code1;
} }
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
@ -455,7 +455,7 @@ static void cvtSS16imaK(PACMDRVSTREAMINSTANCE adsi,
&stepIndexR, &sampleR); &stepIndexR, &sampleR);
code2 = generate_nibble(R16(src + (4 * i + 3) * 2), code2 = generate_nibble(R16(src + (4 * i + 3) * 2),
&stepIndexR, &sampleR); &stepIndexR, &sampleR);
*dst++ = (code1 << 4) | code2; *dst++ = (code2 << 4) | code1;
} }
src += 32; src += 32;
} }
@ -511,7 +511,7 @@ static void cvtMM16imaK(PACMDRVSTREAMINSTANCE adsi,
src += 2; src += 2;
code2 = generate_nibble(R16(src), &stepIndex, &sample); code2 = generate_nibble(R16(src), &stepIndex, &sample);
src += 2; src += 2;
*dst++ = (code1 << 4) | code2; *dst++ = (code2 << 4) | code1;
} }
dst = in_dst + adsi->pwfxDst->nBlockAlign; dst = in_dst + adsi->pwfxDst->nBlockAlign;
} }
@ -633,14 +633,7 @@ static LRESULT ADPCM_FormatDetails(PACMFORMATDETAILSW afd, DWORD dwQuery)
afd->pwfx->nChannels = ADPCM_Formats[afd->dwFormatIndex].nChannels; afd->pwfx->nChannels = ADPCM_Formats[afd->dwFormatIndex].nChannels;
afd->pwfx->nSamplesPerSec = ADPCM_Formats[afd->dwFormatIndex].rate; afd->pwfx->nSamplesPerSec = ADPCM_Formats[afd->dwFormatIndex].rate;
afd->pwfx->wBitsPerSample = ADPCM_Formats[afd->dwFormatIndex].nBits; afd->pwfx->wBitsPerSample = ADPCM_Formats[afd->dwFormatIndex].nBits;
afd->pwfx->nBlockAlign = 1024; init_wfx_ima_adpcm((IMAADPCMWAVEFORMAT *)afd->pwfx);
/* we got 4 bits per sample */
afd->pwfx->nAvgBytesPerSec =
(afd->pwfx->nSamplesPerSec * 4) / 8;
if (afd->cbwfx >= sizeof(WAVEFORMATEX))
afd->pwfx->cbSize = sizeof(WORD);
if (afd->cbwfx >= sizeof(IMAADPCMWAVEFORMAT))
((IMAADPCMWAVEFORMAT*)afd->pwfx)->wSamplesPerBlock = (1024 - 4 * afd->pwfx->nChannels) * (2 / afd->pwfx->nChannels) + 1;
break; break;
default: default:
WARN("Unsupported tag %08x\n", afd->dwFormatTag); WARN("Unsupported tag %08x\n", afd->dwFormatTag);

View file

@ -75,7 +75,7 @@ reactos/dll/win32/hnetcfg # Synced to WineStaging-2.9
reactos/dll/win32/httpapi # Synced to WineStaging-2.9 reactos/dll/win32/httpapi # Synced to WineStaging-2.9
reactos/dll/win32/iccvid # Synced to WineStaging-2.9 reactos/dll/win32/iccvid # Synced to WineStaging-2.9
reactos/dll/win32/ieframe # Synced to WineStaging-2.9 reactos/dll/win32/ieframe # Synced to WineStaging-2.9
reactos/dll/win32/imaadp32.acm # Synced to WineStaging-2.9 reactos/dll/win32/imaadp32.acm # Synced to WineStaging-2.16
reactos/dll/win32/imagehlp # Synced to WineStaging-2.9 reactos/dll/win32/imagehlp # Synced to WineStaging-2.9
reactos/dll/win32/imm32 # Synced to Wine-1.7.27 reactos/dll/win32/imm32 # Synced to Wine-1.7.27
reactos/dll/win32/inetcomm # Synced to WineStaging-2.9 reactos/dll/win32/inetcomm # Synced to WineStaging-2.9