From 321c494681de631e03d7c2c39f81f831043f3711 Mon Sep 17 00:00:00 2001 From: faiface Date: Fri, 14 Jul 2017 02:41:01 +0200 Subject: [PATCH] audio: wav: fix Stream for non 2 chans 2 bytes configurations --- audio/wav/decode.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/audio/wav/decode.go b/audio/wav/decode.go index dfbd0f4..eb0502d 100644 --- a/audio/wav/decode.go +++ b/audio/wav/decode.go @@ -123,18 +123,18 @@ func (s *decoder) Stream(samples [][2]float64) (n int, ok bool) { } switch { case s.h.BitsPerSample == 8 && s.h.NumChans == 1: - for i, j := 0, 0; i < n-bytesPerFrame; i, j = i+bytesPerFrame, j+1 { + for i, j := 0, 0; i <= n-bytesPerFrame; i, j = i+bytesPerFrame, j+1 { val := float64(p[i])/(1<<8-1)*2 - 1 samples[j][0] = val samples[j][1] = val } case s.h.BitsPerSample == 8 && s.h.NumChans >= 2: - for i, j := 0, 0; i < n-bytesPerFrame; i, j = i+bytesPerFrame, j+1 { + for i, j := 0, 0; i <= n-bytesPerFrame; i, j = i+bytesPerFrame, j+1 { samples[j][0] = float64(p[i+0])/(1<<8-1)*2 - 1 samples[j][1] = float64(p[i+1])/(1<<8-1)*2 - 1 } case s.h.BitsPerSample == 16 && s.h.NumChans == 1: - for i, j := 0, 0; i < n-bytesPerFrame; i, j = i+bytesPerFrame, j+1 { + for i, j := 0, 0; i <= n-bytesPerFrame; i, j = i+bytesPerFrame, j+1 { val := float64(int16(p[i+0])+int16(p[i+1])*(1<<8)) / (1<<15 - 1) samples[j][0] = val samples[j][1] = val