Commit 0db07a92 authored by Max Kellermann's avatar Max Kellermann

mpc: moved sample size into a constant

Don't hard-code the "16 bits" or "2 bytes" in multiple locations.
parent 6773dea5
...@@ -68,18 +68,22 @@ static inline int16_t convertSample(MPC_SAMPLE_FORMAT sample) ...@@ -68,18 +68,22 @@ static inline int16_t convertSample(MPC_SAMPLE_FORMAT sample)
/* only doing 16-bit audio for now */ /* only doing 16-bit audio for now */
int32_t val; int32_t val;
const int clip_min = -1 << (16 - 1); enum {
const int clip_max = (1 << (16 - 1)) - 1; bits = 16,
};
const int clip_min = -1 << (bits - 1);
const int clip_max = (1 << (bits - 1)) - 1;
#ifdef MPC_FIXED_POINT #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) if (shift < 0)
val = sample << -shift; val = sample << -shift;
else else
val = sample << shift; val = sample << shift;
#else #else
const int float_scale = 1 << (16 - 1); const int float_scale = 1 << (bits - 1);
val = sample * float_scale; val = sample * float_scale;
#endif #endif
...@@ -191,7 +195,7 @@ mpc_decode(struct decoder *mpd_decoder, struct input_stream *inStream) ...@@ -191,7 +195,7 @@ mpc_decode(struct decoder *mpd_decoder, struct input_stream *inStream)
for (i = 0; i < ret; i++) { for (i = 0; i < ret; i++) {
/* 16 bit audio again */ /* 16 bit audio again */
*dest++ = convertSample(sample_buffer[i]); *dest++ = convertSample(sample_buffer[i]);
chunkpos += 2; chunkpos += sizeof(*dest);
if (chunkpos >= MPC_CHUNK_SIZE) { if (chunkpos >= MPC_CHUNK_SIZE) {
total_time = ((float)samplePos) / total_time = ((float)samplePos) /
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment