diff options
author | Max Kellermann <max@duempel.org> | 2008-08-26 08:27:13 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-08-26 08:27:13 +0200 |
commit | 7653ab434e0159ab87408f579666b40bc7e4b859 (patch) | |
tree | 766616f4853db809fb7fcd928123a9c1f1d3332b /src/inputPlugins/mp3_plugin.c | |
parent | 9c823d67a74e694c961faff0f1f35fb196e78887 (diff) | |
download | mpd-7653ab434e0159ab87408f579666b40bc7e4b859.tar.gz mpd-7653ab434e0159ab87408f579666b40bc7e4b859.tar.xz mpd-7653ab434e0159ab87408f579666b40bc7e4b859.zip |
mp3: audio_linear_dither() returns mpd_sint16
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.
Diffstat (limited to 'src/inputPlugins/mp3_plugin.c')
-rw-r--r-- | 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 2aa7798f1..f31a616c1 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; |