Andrew Eikum : imaadpcm32: Fix source offsets when converting stereo PCM to IMAADPCM.

Alexandre Julliard julliard at winehq.org
Fri Dec 2 17:00:10 CST 2016


Module: wine
Branch: master
Commit: 1a6d3c15830cb69a756fdaeda64d1fd8f6cc89c7
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1a6d3c15830cb69a756fdaeda64d1fd8f6cc89c7

Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Fri Dec  2 08:09:01 2016 -0600

imaadpcm32: Fix source offsets when converting stereo PCM to IMAADPCM.

Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/imaadp32.acm/imaadp32.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/dlls/imaadp32.acm/imaadp32.c b/dlls/imaadp32.acm/imaadp32.c
index 4684f30..78a0ac4 100644
--- a/dlls/imaadp32.acm/imaadp32.c
+++ b/dlls/imaadp32.acm/imaadp32.c
@@ -431,29 +431,27 @@ static	void cvtSS16imaK(PACMDRVSTREAMINSTANCE adsi,
         /* generate header */
     	sampleL = R16(src);  src += 2;
 	W16(dst, sampleL); dst += 2;
-	*dst = (unsigned char)(unsigned)stepIndexL;
-	dst += 2;
+	W16(dst, stepIndexL); dst += 2;
 
     	sampleR = R16(src); src += 2;
 	W16(dst, sampleR); dst += 2;
-	*dst = (unsigned char)(unsigned)stepIndexR;
-	dst += 2;
+	W16(dst, stepIndexR); dst += 2;
 
 	for (nsamp = nsamp_blk; nsamp > 0; nsamp -= 8)
         {
             for (i = 0; i < 4; i++)
             {
-                code1 = generate_nibble(R16(src + (2 * i + 0) * 2 + 0),
+                code1 = generate_nibble(R16(src + (4 * i + 0) * 2),
                                         &stepIndexL, &sampleL);
-                code2 = generate_nibble(R16(src + (2 * i + 1) * 2 + 0),
+                code2 = generate_nibble(R16(src + (4 * i + 2) * 2),
                                         &stepIndexL, &sampleL);
                 *dst++ = (code1 << 4) | code2;
             }
             for (i = 0; i < 4; i++)
             {
-                code1 = generate_nibble(R16(src + (2 * i + 0) * 2 + 1),
+                code1 = generate_nibble(R16(src + (4 * i + 1) * 2),
                                         &stepIndexR, &sampleR);
-                code2 = generate_nibble(R16(src + (2 * i + 1) * 2 + 1),
+                code2 = generate_nibble(R16(src + (4 * i + 3) * 2),
                                         &stepIndexR, &sampleR);
                 *dst++ = (code1 << 4) | code2;
             }




More information about the wine-cvs mailing list