whoops fix scaling in s16le codec

This commit is contained in:
Hailey Somerville 2023-12-27 15:09:32 +11:00
parent 3efb29a5e2
commit 14ea8a74e0
2 changed files with 2 additions and 2 deletions

View file

@ -14,7 +14,7 @@ impl Decode for S16LEDecoder {
fn decode_packet(&mut self, bytes: &[u8], out: &mut SampleBuffer) -> Result<(), DecodeError> {
decode_packed(bytes, out, |bytes| {
let input = i16::from_le_bytes(bytes);
let scale = (u16::MIN as f32).abs();
let scale = i16::MAX as f32;
input as f32 / scale
})
}

View file

@ -19,7 +19,7 @@ impl Encode for S16LEEncoder {
fn encode_packet(&mut self, samples: &[f32], out: &mut [u8]) -> Result<usize, EncodeError> {
encode_packed(samples, out, |sample| {
let scale = (u16::MIN as f32).abs();
let scale = i16::MAX as f32;
let sample = sample.clamp(-1.0, 1.0) * scale;
i16::to_le_bytes(sample as i16)
})