aboutsummaryrefslogtreecommitdiff
path: root/audio/wavaudio.c
diff options
context:
space:
mode:
Diffstat (limited to 'audio/wavaudio.c')
-rw-r--r--audio/wavaudio.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/audio/wavaudio.c b/audio/wavaudio.c
index 47efdc1b1e..e46d834bd3 100644
--- a/audio/wavaudio.c
+++ b/audio/wavaudio.c
@@ -43,14 +43,14 @@ static size_t wav_write_out(HWVoiceOut *hw, void *buf, size_t len)
{
WAVVoiceOut *wav = (WAVVoiceOut *) hw;
int64_t bytes = audio_rate_get_bytes(&hw->info, &wav->rate, len);
- assert(bytes >> hw->info.shift << hw->info.shift == bytes);
+ assert(bytes % hw->info.bytes_per_frame == 0);
if (bytes && fwrite(buf, bytes, 1, wav->f) != 1) {
dolog("wav_write_out: fwrite of %" PRId64 " bytes failed\nReason: %s\n",
bytes, strerror(errno));
}
- wav->total_samples += bytes >> hw->info.shift;
+ wav->total_samples += bytes / hw->info.bytes_per_frame;
return bytes;
}
@@ -134,7 +134,7 @@ static void wav_fini_out (HWVoiceOut *hw)
WAVVoiceOut *wav = (WAVVoiceOut *) hw;
uint8_t rlen[4];
uint8_t dlen[4];
- uint32_t datalen = wav->total_samples << hw->info.shift;
+ uint32_t datalen = wav->total_samples * hw->info.bytes_per_frame;
uint32_t rifflen = datalen + 36;
if (!wav->f) {