]> git.alsa-project.org Git - alsa-lib.git/commitdiff
Fixes S16 byte swapping with generic dmix code
authorJuergen Kreileder <jk@blackdown.de>
Mon, 20 Mar 2006 20:24:13 +0000 (20:24 +0000)
committerTakashi Iwai <tiwai@suse.de>
Mon, 20 Mar 2006 20:24:13 +0000 (20:24 +0000)
Here's a patch for generic dmix which fixes S16 byte swapping.

Tested on powerpc with snd-usb-audio.  (Without the patch I get crackling.)

Signed-off-by: Juergen Kreileder <jk@blackdown.de>
src/pcm/pcm_dmix_generic.c

index 4e45ba893a11862394c9b2bf829d51bfb1439648..3f39ba4d5dc95feaf19d03d9f008eb7a00a804c5 100644 (file)
@@ -194,7 +194,7 @@ static void mix_areas1_swap(unsigned int size,
        register signed int sample;
 
        for (;;) {
-               sample = bswap_16(*src);
+               sample = (signed short) bswap_16(*src);
                if (! *dst) {
                        *sum = sample;
                        *dst = *src;
@@ -205,7 +205,7 @@ static void mix_areas1_swap(unsigned int size,
                                sample = 0x7fff;
                        else if (sample < -0x8000)
                                sample = -0x8000;
-                       *dst = bswap_16((signed short)sample);
+                       *dst = (signed short) bswap_16((signed short) sample);
                }
                if (!--size)
                        return;