The return value of audio_linear_dither() is always casted to
mpd_sint16.  Returning long does not make sense, and consumed 8 bytes
on a 64 bit platform.
---

 src/inputPlugins/mp3_plugin.c |   20 +++++++++-----------
 1 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/src/inputPlugins/mp3_plugin.c b/src/inputPlugins/mp3_plugin.c
index 2aa7798..f31a616 100644
--- a/src/inputPlugins/mp3_plugin.c
+++ b/src/inputPlugins/mp3_plugin.c
@@ -60,8 +60,8 @@ static unsigned long prng(unsigned long state)
        return (state * 0x0019660dL + 0x3c6ef35fL) & 0xffffffffL;
 }
 
-static signed long audio_linear_dither(unsigned int bits, mad_fixed_t sample,
-                                      struct audio_dither *dither)
+static mpd_sint16 audio_linear_dither(unsigned int bits, mad_fixed_t sample,
+                                     struct audio_dither *dither)
 {
        unsigned int scalebits;
        mad_fixed_t output, mask, rnd;
@@ -102,7 +102,7 @@ static signed long audio_linear_dither(unsigned int bits, 
mad_fixed_t sample,
 
        dither->error[0] = sample - output;
 
-       return output >> scalebits;
+       return (mpd_sint16)(output >> scalebits);
 }
 
 static unsigned dither_buffer(mpd_sint16 *dest0, const struct mad_synth *synth,
@@ -114,16 +114,14 @@ static unsigned dither_buffer(mpd_sint16 *dest0, const 
struct mad_synth *synth,
        unsigned int i;
 
        for (i = start; i < end; ++i) {
-               *dest++ = (mpd_sint16)
-                       audio_linear_dither(16,
-                                           synth->pcm.samples[0][i],
-                                           dither);
+               *dest++ = audio_linear_dither(16,
+                                             synth->pcm.samples[0][i],
+                                             dither);
 
                if (num_channels == 2)
-                       *dest++ = (mpd_sint16)
-                               audio_linear_dither(16,
-                                                   synth->pcm.samples[1][i],
-                                                   dither);
+                       *dest++ = audio_linear_dither(16,
+                                                     synth->pcm.samples[1][i],
+                                                     dither);
        }
 
        return dest - dest0;


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team

Reply via email to