diff options
-rw-r--r-- | src/audio_format.h | 5 | ||||
-rw-r--r-- | src/decode.c | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/audio_format.h b/src/audio_format.h index ba22b3bf6..a6e97e046 100644 --- a/src/audio_format.h +++ b/src/audio_format.h @@ -27,6 +27,11 @@ typedef struct _AudioFormat { volatile mpd_sint8 bits; } AudioFormat; +static inline double audio_format_time_to_size(const AudioFormat * af) +{ + return af->sampleRate * af->bits * af->channels / 8.0; +} + static inline double audioFormatSizeToTime(const AudioFormat * af) { return 8.0 / af->bits / af->channels / af->sampleRate; diff --git a/src/decode.c b/src/decode.c index da649ecea..f0c13f70c 100644 --- a/src/decode.c +++ b/src/decode.c @@ -78,7 +78,7 @@ static unsigned calculateCrossFadeChunks(AudioFormat * af, assert(af->channels > 0); assert(af->sampleRate > 0); - chunks = (af->sampleRate * af->bits * af->channels / 8.0 / CHUNK_SIZE); + chunks = audio_format_time_to_size(af) / CHUNK_SIZE; chunks = (chunks * pc.crossFade + 0.5); if (chunks > max_chunks) |