diff options
author | Max Kellermann <max@duempel.org> | 2008-10-30 08:44:51 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-10-30 08:44:51 +0100 |
commit | 0db07a920e237ce46bb1e0fa7da5d945967e7b62 (patch) | |
tree | 8f59dd4e200a8c6bdc70b03efeb317b9bf6f3e91 /src/decoder/mpc_plugin.c | |
parent | 6773dea5b01d884b942f9fa8400510f15ab77c26 (diff) | |
download | mpd-0db07a920e237ce46bb1e0fa7da5d945967e7b62.tar.gz mpd-0db07a920e237ce46bb1e0fa7da5d945967e7b62.tar.xz mpd-0db07a920e237ce46bb1e0fa7da5d945967e7b62.zip |
mpc: moved sample size into a constant
Don't hard-code the "16 bits" or "2 bytes" in multiple locations.
Diffstat (limited to 'src/decoder/mpc_plugin.c')
-rw-r--r-- | src/decoder/mpc_plugin.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/decoder/mpc_plugin.c b/src/decoder/mpc_plugin.c index 9deaa9780..009828718 100644 --- a/src/decoder/mpc_plugin.c +++ b/src/decoder/mpc_plugin.c @@ -68,18 +68,22 @@ static inline int16_t convertSample(MPC_SAMPLE_FORMAT sample) /* only doing 16-bit audio for now */ int32_t val; - const int clip_min = -1 << (16 - 1); - const int clip_max = (1 << (16 - 1)) - 1; + enum { + bits = 16, + }; + + const int clip_min = -1 << (bits - 1); + const int clip_max = (1 << (bits - 1)) - 1; #ifdef MPC_FIXED_POINT - const int shift = 16 - MPC_FIXED_POINT_SCALE_SHIFT; + const int shift = bits - MPC_FIXED_POINT_SCALE_SHIFT; if (shift < 0) val = sample << -shift; else val = sample << shift; #else - const int float_scale = 1 << (16 - 1); + const int float_scale = 1 << (bits - 1); val = sample * float_scale; #endif @@ -191,7 +195,7 @@ mpc_decode(struct decoder *mpd_decoder, struct input_stream *inStream) for (i = 0; i < ret; i++) { /* 16 bit audio again */ *dest++ = convertSample(sample_buffer[i]); - chunkpos += 2; + chunkpos += sizeof(*dest); if (chunkpos >= MPC_CHUNK_SIZE) { total_time = ((float)samplePos) / |